[avahi] Published service still browseable in other machines even if network it's down
José Félix Ontañón
felixonta at gmail.com
Thu Nov 5 00:16:46 PST 2009
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
> 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.
> avahi mailing list
> avahi at lists.freedesktop.org
Ok, in this case i'll continue with my ping aproximation. It works fairly
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the avahi