[avahi] Published service still browseable in other machines even if network it's down

Robin Perkins robin.perkins at internode.on.net
Thu Nov 5 02:52:13 PST 2009


On 05/11/2009, at 6:16 PM, José Félix Ontañón wrote:

>
>
> 2009/11/5 Trent Lloyd <lathiat at bur.st>
> Hi Jose,
>
> On 05/11/2009, at 6:35 AM, José Félix Ontañón wrote:
>
> > Hi everyone!
> >
> > I'm a newbie playing with python-avahi trying to code some kind of
> > master-slave application for shutdown every machine at same time.
> > When the master it's ordered to shutdown, it sends the signal to the
> > slaves. The slaves publish/unpublish the service via avahi, and the
> > master
> > discover them via ItemNew/ItemRemove signals. Very strait-forward,
> > isn't?
> >
> > The avahi publish/unpublish/discover services it's gorgeous but i've
> > found that if a slave, that has published the service via avahi,
> > losts it
> > network (i.e. the wifi ap goes out of power), the master still
> > discovering it! and no ItemRemove signal it's raised at all. Is it
> > normal? Am i doing something wrong?
> >
> > To solve it, i've implemented some kind of "ping" to the slaves
> > service every Xseconds. When a new slave it's discovered, the
> > periodic ping starts.
> > When ping it's failing i know there be some problem with networking.
> >
> > I wonder if avahi itself provides a native workaround to avoid the
> > coding of those nasty "ping" cycles ...
>
> This is normal.. it will disappear after some time.
>
> The instant removal of an advertised service relies on the host
> sending a "gone away" message (more specifically, it updates the TTL
> of its record to expire in I think.. 1 second)
>
> This is because mDNS uses caching.. if it didn't use caching it would
> cause alot more network traffic and would hammer especially wireless
> networks.
>
>
>
> Having not really worked with it for a while.. I can't remember all
> the details but I suspect you can change the TTL in the Avahi API call
> to make these timeouts happen a little quicker, but you will increase
> network traffic by doing so.
>
> Really your application should not rely on Avahi for "service
> undiscovery".. it's meant generally for "unreliable service
> discovery".  You are best of actually having some protocol between the
> master and slave and just using avahi for the slave to find the master
> in the first instance.
>
> Regards,
> Trent
> _______________________________________________
> avahi mailing list
> avahi at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/avahi
>
>
> Ok, in this case i'll continue with my ping aproximation. It works  
> fairly well.
>
> Thanks Trent.
>

 From what I remember reading the docs, what is supposed to happen is  
when someone goes to try and use a service that is no longer there, it  
should fail and immediately flush that entry from the cache so that  
its no longer an option in the user interface.

Rob
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freedesktop.org/archives/avahi/attachments/20091105/daebc1ba/attachment.html 


More information about the avahi mailing list