X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=avahi-core%2Fbrowse.c;h=5885cb4fb2152161969e8f7ddab5724abda1c012;hb=88a99a094e561b6c87404f4999e61e7b9ed754f6;hp=2d14c90477899fc899be37c2fc5604b2b415932d;hpb=83fa43badc59a54641b0c2319a8a8e4d0f9d9b85;p=catta diff --git a/avahi-core/browse.c b/avahi-core/browse.c index 2d14c90..5885cb4 100644 --- a/avahi-core/browse.c +++ b/avahi-core/browse.c @@ -32,8 +32,8 @@ struct AvahiRecordBrowser { AvahiServer *server; AvahiKey *key; - gint interface; - guchar protocol; + AvahiIfIndex interface; + AvahiProtocol protocol; guint sec_delay; AvahiTimeEvent *time_event; @@ -105,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); @@ -116,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; @@ -124,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;