X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=avahi-core%2Fbrowse.c;h=fa97c351b89d04072fb7aa91fb9b42c86c9fb007;hb=6fc2d9e75412ef168ef3b09c091e5821fc39b99a;hp=3fb22c833c362877977cda6c9487618d6b542378;hpb=8b5cd6ffd9137b14b7ed678f10a551e3911e4a40;p=catta diff --git a/avahi-core/browse.c b/avahi-core/browse.c index 3fb22c8..fa97c35 100644 --- a/avahi-core/browse.c +++ b/avahi-core/browse.c @@ -25,6 +25,7 @@ #include #include +#include #include "browse.h" #include "log.h" @@ -98,7 +99,10 @@ static void* scan_cache_callback(AvahiCache *c, AvahiKey *pattern, AvahiCacheEnt static void scan_interface_callback(AvahiInterfaceMonitor *m, AvahiInterface *i, void* userdata) { AvahiSRecordBrowser *b = userdata; - struct cbdata cbdata = { b, i }; + struct cbdata cbdata; + + cbdata.record_browser = b; + cbdata.interface = i; assert(m); assert(i); @@ -122,6 +126,17 @@ static void scan_callback(AvahiTimeEvent *e, void *userdata) { } } +void avahi_s_record_browser_restart(AvahiSRecordBrowser *b) { + assert(b); + + if (!b->scan_time_event) { + b->scan_time_event = avahi_time_event_new(b->server->time_event_queue, NULL, scan_callback, b); + assert(b->scan_time_event); + } + + avahi_server_post_query(b->server, b->interface, b->protocol, b->key); +} + AvahiSRecordBrowser *avahi_s_record_browser_new(AvahiServer *server, AvahiIfIndex interface, AvahiProtocol protocol, AvahiKey *key, AvahiSRecordBrowserCallback callback, void* userdata) { AvahiSRecordBrowser *b, *t; struct timeval tv;