- avahi_interface_monitor_walk(b->server->monitor, b->interface, b->protocol, scan_interface_callback, b);
- b->scan_idle_source = (guint) -1;
+ if (!b->dead)
+ avahi_interface_monitor_walk(b->server->monitor, b->interface, b->protocol, scan_interface_callback, b);
+
+ if (b->scan_time_event) {
+ avahi_time_event_free(b->scan_time_event);
+ b->scan_time_event = NULL;
+ }
+}
+
+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);
+ }