-static void scan_interface_callback(AvahiInterfaceMonitor *m, AvahiInterface *i, gpointer userdata) {
- AvahiRecordBrowser *s = userdata;
- struct cbdata cbdata = { s, i };
+static void scan_interface_callback(AvahiInterfaceMonitor *m, AvahiInterface *i, void* userdata) {
+ AvahiSRecordBrowser *b = userdata;
+ struct cbdata cbdata;
+
+ cbdata.record_browser = b;
+ cbdata.interface = i;
+
+ assert(m);
+ assert(i);
+ assert(b);
+
+ if (!b->dead)
+ avahi_cache_walk(i->cache, b->key, scan_cache_callback, &cbdata);
+}
+
+static void scan_callback(AvahiTimeEvent *e, void *userdata) {
+ AvahiSRecordBrowser *b = userdata;
+ assert(b);