<p class="MsoNormal"><span lang="EN-US">Hi all,</span></p><p class="MsoNormal"><span lang="EN-US">I&#39;m building a service publish/browser
application based on avahi. </span></p>



<p class="MsoNormal"><span lang="EN-US">For the publish app, it publishes a new
service and then update the service every 10 second with
avahi_entry_group_update_service_txt (in order to keep alive). In the browser
side, a ResolverCallback is set for this particular service. When there&#39;s a
service update, the ResolverCallback receive an AVAHI_RESOLVER_FOUND event and
the updated service will be handled.</span></p>





<p class="MsoNormal"><span lang="EN-US">When I did the testing, I tried to ifdown
the netif in the &quot;publish&quot; side, but keep the publish application running.
Then, in the &quot;browser&quot; side, after a while, an AVAHI_RESOLVER_FAILURE
event will be received in ResolverCallback. In my code,
avahi_service_resolver_free will be called at this moment to free the resolver.
Then, I did an ifup in the &quot;publish&quot; to resume the netif, which was
downed previously. The service broadcast was resumed. However, in the
&quot;browser&quot; side, because the resolver is already gone and no new event
can be caught. The browser will never be able to get the service anymore. <br></span></p>

<p class="MsoNormal"><span lang="EN-US">My questions is:</span></p><p class="MsoNormal"><span lang="EN-US"></span><span lang="EN-US">In this scenario - service unreachable and
then recovered, which is the right way to handle in browser side? Is it necessary
to call avahi_service_resolver_free when AVAHI_RESOLVER_FAILURE? I try to
remove that code and when the netif was recovered, the browser will be able t o
get the service again.</span></p>

Appreciate your help, thank in advance!<br><br>-Arhold<br>