void NetworkServicesProviderAvahi::avahiClientCallback(AvahiClient* client, AvahiClientState state, void* userdata) { NetworkServicesProviderAvahi* p = static_cast<NetworkServicesProviderAvahi*>(userdata); switch (state) { case AVAHI_CLIENT_FAILURE: break; case AVAHI_CLIENT_S_REGISTERING: case AVAHI_CLIENT_S_RUNNING: case AVAHI_CLIENT_S_COLLISION: p->m_avahiBrowser = avahi_service_type_browser_new( client, AVAHI_IF_UNSPEC, AVAHI_PROTO_UNSPEC, 0, (AvahiLookupFlags)0, serviceTypeBrowserCallback, userdata); p->m_allForNow++; break; case AVAHI_CLIENT_CONNECTING: break; } }
static void browse_all(Config *c) { AvahiServiceTypeBrowser *b; assert(c); if (!(b = avahi_service_type_browser_new( client, AVAHI_IF_UNSPEC, AVAHI_PROTO_UNSPEC, c->domain, 0, service_type_browser_callback, c))) { fprintf(stderr, ("avahi_service_type_browser_new() failed: %s\n"), avahi_strerror(avahi_client_errno(client))); avahi_simple_poll_quit(simple_poll); } n_cache_exhausted++; n_all_for_now++; }