#include <config.h>
#endif
-#include "resolve.h"
+#include "browse.h"
#include "util.h"
struct AvahiHostNameResolver {
avahi_record_browser_free(r->record_browser_aaaa);
r->record_browser_aaaa = NULL;
}
-
- avahi_time_event_queue_remove(r->server->time_event_queue, r->time_event);
- r->time_event = NULL;
+
+ if (r->time_event) {
+ avahi_time_event_queue_remove(r->server->time_event_queue, r->time_event);
+ r->time_event = NULL;
+ }
if (record) {
switch (record->key->type) {
r->callback = callback;
r->userdata = userdata;
+ r->record_browser_a = r->record_browser_aaaa = NULL;
+
+ avahi_elapse_time(&tv, 1000, 0);
+ r->time_event = avahi_time_event_queue_add(server->time_event_queue, &tv, time_event_callback, r);
+
+ AVAHI_LLIST_PREPEND(AvahiHostNameResolver, resolver, server->host_name_resolvers, r);
+
if (aprotocol == AF_INET || aprotocol == AF_UNSPEC) {
k = avahi_key_new(host_name, AVAHI_DNS_CLASS_IN, AVAHI_DNS_TYPE_A);
r->record_browser_a = avahi_record_browser_new(server, interface, protocol, k, record_browser_callback, r);
avahi_key_unref(k);
- } else
- r->record_browser_a = NULL;
+ }
if (aprotocol == AF_INET6 || aprotocol == AF_UNSPEC) {
k = avahi_key_new(host_name, AVAHI_DNS_CLASS_IN, AVAHI_DNS_TYPE_AAAA);
r->record_browser_aaaa = avahi_record_browser_new(server, interface, protocol, k, record_browser_callback, r);
avahi_key_unref(k);
- } else
- r->record_browser_aaaa = NULL;
-
- avahi_elapse_time(&tv, 1000, 0);
- r->time_event = avahi_time_event_queue_add(server->time_event_queue, &tv, time_event_callback, r);
-
- AVAHI_LLIST_PREPEND(AvahiHostNameResolver, resolver, server->host_name_resolvers, r);
+ }
return r;
}
if (r->record_browser_a)
avahi_record_browser_free(r->record_browser_a);
+
if (r->record_browser_aaaa)
avahi_record_browser_free(r->record_browser_aaaa);
+
+ if (r->time_event)
+ avahi_time_event_queue_remove(r->server->time_event_queue, r->time_event);
g_free(r->host_name);
g_free(r);