#include <config.h>
#endif
+#include <stdlib.h>
+
#include <avahi-common/malloc.h>
+#include <avahi-common/timeval.h>
-#include "server.h"
+#include "internal.h"
#include "browse.h"
#include "socket.h"
#include "log.h"
#include "hashmap.h"
#include "multicast-lookup.h"
+#include "rr-util.h"
struct AvahiMulticastLookup {
AvahiMulticastLookupEngine *engine;
avahi_time_event_free(l->all_for_now_event);
l->all_for_now_event = NULL;
- l->callback(l->engine, l->interface, l->protocol, AVAHI_BROWSER_ALL_FOR_NOW, AVAHI_LOOKUP_CALLBACK_MULTICAST, NULL, l->userdata);
+ l->callback(l->engine, l->interface, l->protocol, AVAHI_BROWSER_ALL_FOR_NOW, AVAHI_LOOKUP_RESULT_MULTICAST, NULL, l->userdata);
}
AvahiMulticastLookup *avahi_multicast_lookup_new(
void *userdata) {
AvahiMulticastLookup *l, *t;
- struct timeval ctime;
+ struct timeval tv;
assert(e);
assert(AVAHI_IF_VALID(interface));
AVAHI_LLIST_PREPEND(AvahiMulticastLookup, lookups, e->lookups, l);
- avahi_querier_add_for_all(e->server, interface, protocol, l->key, &ctime);
+ avahi_querier_add_for_all(e->server, interface, protocol, l->key, &tv);
+ l->queriers_added = 1;
- /* add a second */
- avahi_timeval_add(&ctime, 1000000);
+ /* Add a second */
+ avahi_timeval_add(&tv, 1000000);
- l->all_for_now_event = avahi_time_event_new(e->server->time_event_queue, &ctime, all_for_now_callback, l);
+ /* Issue the ALL_FOR_NOW event one second after the querier was initially created */
+ l->all_for_now_event = avahi_time_event_new(e->server->time_event_queue, &tv, all_for_now_callback, l);
return l;
}
cbdata->interface->hardware->index,
cbdata->interface->protocol,
AVAHI_BROWSER_NEW,
- AVAHI_LOOKUP_CALLBACK_CACHED|AVAHI_LOOKUP_CALLBACK_MULTICAST,
+ AVAHI_LOOKUP_RESULT_CACHED|AVAHI_LOOKUP_RESULT_MULTICAST,
e->record,
cbdata->userdata);
continue;
if (avahi_interface_match(i, l->interface, l->protocol))
- l->callback(e, i->hardware->index, i->protocol, event, AVAHI_LOOKUP_CALLBACK_MULTICAST, record, l->userdata);
+ l->callback(e, i->hardware->index, i->protocol, event, AVAHI_LOOKUP_RESULT_MULTICAST, record, l->userdata);
}
if ((key = avahi_key_new_cname(l->key))) {
if (avahi_key_equal(record->key, key))
- l->callback(e, i->hardware->index, i->protocol, event, AVAHI_LOOKUP_CALLBACK_MULTICAST, record, l->userdata);
+ l->callback(e, i->hardware->index, i->protocol, event, AVAHI_LOOKUP_RESULT_MULTICAST, record, l->userdata);
avahi_key_unref(key);
}