X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=avahi-core%2Fbrowse.c;h=5885cb4fb2152161969e8f7ddab5724abda1c012;hb=88a99a094e561b6c87404f4999e61e7b9ed754f6;hp=d9da80cf2fa0d156635f339f996d792769096be7;hpb=f93c4009fd022577c8fe989343172b849e792aa2;p=catta diff --git a/avahi-core/browse.c b/avahi-core/browse.c index d9da80c..5885cb4 100644 --- a/avahi-core/browse.c +++ b/avahi-core/browse.c @@ -25,14 +25,15 @@ #include "browse.h" #include "util.h" +#include "log.h" struct AvahiRecordBrowser { gboolean dead; AvahiServer *server; AvahiKey *key; - gint interface; - guchar protocol; + AvahiIfIndex interface; + AvahiProtocol protocol; guint sec_delay; AvahiTimeEvent *time_event; @@ -48,7 +49,7 @@ struct AvahiRecordBrowser { static void elapse(AvahiTimeEvent *e, void *userdata) { AvahiRecordBrowser *s = userdata; GTimeVal tv; -/* gchar *t; */ +/* gchar *t; */ g_assert(s); @@ -58,9 +59,9 @@ static void elapse(AvahiTimeEvent *e, void *userdata) { if (s->sec_delay >= 60*60) /* 1h */ s->sec_delay = 60*60; - -/* avahi_log_debug("%i. Continuous querying for %s", s->n_query, t = avahi_key_to_string(s->key)); */ -/* g_free(t); */ + +/* avahi_log_debug("Continuous querying for %s (%i)", t = avahi_key_to_string(s->key), s->sec_delay); */ +/* g_free(t); */ avahi_elapse_time(&tv, s->sec_delay*1000, 0); avahi_time_event_queue_update(s->server->time_event_queue, s->time_event, &tv); @@ -104,7 +105,7 @@ static void scan_interface_callback(AvahiInterfaceMonitor *m, AvahiInterface *i, avahi_cache_walk(i->cache, s->key, scan_cache_callback, &cbdata); } -gboolean scan_idle_callback(gpointer data) { +static gboolean scan_idle_callback(gpointer data) { AvahiRecordBrowser *b = data; g_assert(b); @@ -115,7 +116,7 @@ gboolean scan_idle_callback(gpointer data) { return FALSE; } -AvahiRecordBrowser *avahi_record_browser_new(AvahiServer *server, gint interface, guchar protocol, AvahiKey *key, AvahiRecordBrowserCallback callback, gpointer userdata) { +AvahiRecordBrowser *avahi_record_browser_new(AvahiServer *server, AvahiIfIndex interface, AvahiProtocol protocol, AvahiKey *key, AvahiRecordBrowserCallback callback, gpointer userdata) { AvahiRecordBrowser *b, *t; GTimeVal tv; @@ -123,7 +124,15 @@ AvahiRecordBrowser *avahi_record_browser_new(AvahiServer *server, gint interface g_assert(key); g_assert(callback); - g_assert(!avahi_key_is_pattern(key)); + if (avahi_key_is_pattern(key)) { + avahi_server_set_errno(server, AVAHI_ERR_IS_PATTERN); + return NULL; + } + + if (!avahi_key_valid(key)) { + avahi_server_set_errno(server, AVAHI_ERR_INVALID_KEY); + return NULL; + } b = g_new(AvahiRecordBrowser, 1); b->dead = FALSE;