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