X-Git-Url: http://git.meshlink.io/?p=catta;a=blobdiff_plain;f=src%2Fbrowse-domain.c;h=8ae99e49383c8bd14b9d5bee4754445fdac58b50;hp=097e5d5b60bd2a3e69f702fb75afe7a24b5f6ca8;hb=2c550daf4ac6a6aab7f21047c037b4dd53c57fa6;hpb=37d19f15523b6fe4d1fef2329abe421221b3d4b3 diff --git a/src/browse-domain.c b/src/browse-domain.c index 097e5d5..8ae99e4 100644 --- a/src/browse-domain.c +++ b/src/browse-domain.c @@ -1,18 +1,18 @@ /*** - This file is part of avahi. + This file is part of catta. - avahi is free software; you can redistribute it and/or modify it + catta is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. - avahi is distributed in the hope that it will be useful, but WITHOUT + catta is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public - License along with avahi; if not, write to the Free Software + License along with catta; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. ***/ @@ -23,32 +23,32 @@ #include -#include -#include -#include +#include +#include +#include #include "browse.h" -#include +#include -struct AvahiSDomainBrowser { +struct CattaSDomainBrowser { int ref; - AvahiServer *server; + CattaServer *server; - AvahiSRecordBrowser *record_browser; + CattaSRecordBrowser *record_browser; - AvahiDomainBrowserType type; - AvahiSDomainBrowserCallback callback; + CattaDomainBrowserType type; + CattaSDomainBrowserCallback callback; void* userdata; - AvahiTimeEvent *defer_event; + CattaTimeEvent *defer_event; int all_for_now_scheduled; - AVAHI_LLIST_FIELDS(AvahiSDomainBrowser, browser); + CATTA_LLIST_FIELDS(CattaSDomainBrowser, browser); }; -static void inc_ref(AvahiSDomainBrowser *b) { +static void inc_ref(CattaSDomainBrowser *b) { assert(b); assert(b->ref >= 1); @@ -56,21 +56,21 @@ static void inc_ref(AvahiSDomainBrowser *b) { } static void record_browser_callback( - AvahiSRecordBrowser*rr, - AvahiIfIndex interface, - AvahiProtocol protocol, - AvahiBrowserEvent event, - AvahiRecord *record, - AvahiLookupResultFlags flags, + CattaSRecordBrowser*rr, + CattaIfIndex interface, + CattaProtocol protocol, + CattaBrowserEvent event, + CattaRecord *record, + CattaLookupResultFlags flags, void* userdata) { - AvahiSDomainBrowser *b = userdata; + CattaSDomainBrowser *b = userdata; char *n = NULL; assert(rr); assert(b); - if (event == AVAHI_BROWSER_ALL_FOR_NOW && + if (event == CATTA_BROWSER_ALL_FOR_NOW && b->defer_event) { b->all_for_now_scheduled = 1; @@ -78,19 +78,19 @@ static void record_browser_callback( } /* Filter flags */ - flags &= AVAHI_LOOKUP_RESULT_CACHED | AVAHI_LOOKUP_RESULT_MULTICAST | AVAHI_LOOKUP_RESULT_WIDE_AREA; + flags &= CATTA_LOOKUP_RESULT_CACHED | CATTA_LOOKUP_RESULT_MULTICAST | CATTA_LOOKUP_RESULT_WIDE_AREA; if (record) { - assert(record->key->type == AVAHI_DNS_TYPE_PTR); + assert(record->key->type == CATTA_DNS_TYPE_PTR); n = record->data.ptr.name; - if (b->type == AVAHI_DOMAIN_BROWSER_BROWSE) { - AvahiStringList *l; + if (b->type == CATTA_DOMAIN_BROWSER_BROWSE) { + CattaStringList *l; /* Filter out entries defined statically */ for (l = b->server->config.browse_domains; l; l = l->next) - if (avahi_domain_equal((char*) l->text, n)) + if (catta_domain_equal((char*) l->text, n)) return; } @@ -99,16 +99,16 @@ static void record_browser_callback( b->callback(b, interface, protocol, event, n, flags, b->userdata); } -static void defer_callback(AvahiTimeEvent *e, void *userdata) { - AvahiSDomainBrowser *b = userdata; - AvahiStringList *l; +static void defer_callback(CattaTimeEvent *e, void *userdata) { + CattaSDomainBrowser *b = userdata; + CattaStringList *l; assert(e); assert(b); - assert(b->type == AVAHI_DOMAIN_BROWSER_BROWSE); + assert(b->type == CATTA_DOMAIN_BROWSER_BROWSE); - avahi_time_event_free(b->defer_event); + catta_time_event_free(b->defer_event); b->defer_event = NULL; /* Increase ref counter */ @@ -121,31 +121,31 @@ static void defer_callback(AvahiTimeEvent *e, void *userdata) { if (b->ref <= 1) break; - b->callback(b, AVAHI_IF_UNSPEC, AVAHI_PROTO_UNSPEC, AVAHI_BROWSER_NEW, (char*) l->text, AVAHI_LOOKUP_RESULT_STATIC, b->userdata); + b->callback(b, CATTA_IF_UNSPEC, CATTA_PROTO_UNSPEC, CATTA_BROWSER_NEW, (char*) l->text, CATTA_LOOKUP_RESULT_STATIC, b->userdata); } if (b->ref > 1) { /* If the ALL_FOR_NOW event has already been scheduled, execute it now */ if (b->all_for_now_scheduled) - b->callback(b, AVAHI_IF_UNSPEC, AVAHI_PROTO_UNSPEC, AVAHI_BROWSER_ALL_FOR_NOW, NULL, 0, b->userdata); + b->callback(b, CATTA_IF_UNSPEC, CATTA_PROTO_UNSPEC, CATTA_BROWSER_ALL_FOR_NOW, NULL, 0, b->userdata); } /* Decrease ref counter */ - avahi_s_domain_browser_free(b); + catta_s_domain_browser_free(b); } -AvahiSDomainBrowser *avahi_s_domain_browser_new( - AvahiServer *server, - AvahiIfIndex interface, - AvahiProtocol protocol, +CattaSDomainBrowser *catta_s_domain_browser_new( + CattaServer *server, + CattaIfIndex interface, + CattaProtocol protocol, const char *domain, - AvahiDomainBrowserType type, - AvahiLookupFlags flags, - AvahiSDomainBrowserCallback callback, + CattaDomainBrowserType type, + CattaLookupFlags flags, + CattaSDomainBrowserCallback callback, void* userdata) { - static const char * const type_table[AVAHI_DOMAIN_BROWSER_MAX] = { + static const char * const type_table[CATTA_DOMAIN_BROWSER_MAX] = { "b", "db", "r", @@ -153,30 +153,30 @@ AvahiSDomainBrowser *avahi_s_domain_browser_new( "lb" }; - AvahiSDomainBrowser *b; - AvahiKey *k = NULL; - char n[AVAHI_DOMAIN_NAME_MAX]; + CattaSDomainBrowser *b; + CattaKey *k = NULL; + char n[CATTA_DOMAIN_NAME_MAX]; int r; assert(server); assert(callback); - AVAHI_CHECK_VALIDITY_RETURN_NULL(server, AVAHI_IF_VALID(interface), AVAHI_ERR_INVALID_INTERFACE); - AVAHI_CHECK_VALIDITY_RETURN_NULL(server, AVAHI_PROTO_VALID(protocol), AVAHI_ERR_INVALID_PROTOCOL); - AVAHI_CHECK_VALIDITY_RETURN_NULL(server, type < AVAHI_DOMAIN_BROWSER_MAX, AVAHI_ERR_INVALID_FLAGS); - AVAHI_CHECK_VALIDITY_RETURN_NULL(server, !domain || avahi_is_valid_domain_name(domain), AVAHI_ERR_INVALID_DOMAIN_NAME); - AVAHI_CHECK_VALIDITY_RETURN_NULL(server, AVAHI_FLAGS_VALID(flags, AVAHI_LOOKUP_USE_WIDE_AREA|AVAHI_LOOKUP_USE_MULTICAST), AVAHI_ERR_INVALID_FLAGS); + CATTA_CHECK_VALIDITY_RETURN_NULL(server, CATTA_IF_VALID(interface), CATTA_ERR_INVALID_INTERFACE); + CATTA_CHECK_VALIDITY_RETURN_NULL(server, CATTA_PROTO_VALID(protocol), CATTA_ERR_INVALID_PROTOCOL); + CATTA_CHECK_VALIDITY_RETURN_NULL(server, type < CATTA_DOMAIN_BROWSER_MAX, CATTA_ERR_INVALID_FLAGS); + CATTA_CHECK_VALIDITY_RETURN_NULL(server, !domain || catta_is_valid_domain_name(domain), CATTA_ERR_INVALID_DOMAIN_NAME); + CATTA_CHECK_VALIDITY_RETURN_NULL(server, CATTA_FLAGS_VALID(flags, CATTA_LOOKUP_USE_WIDE_AREA|CATTA_LOOKUP_USE_MULTICAST), CATTA_ERR_INVALID_FLAGS); if (!domain) domain = server->domain_name; - if ((r = avahi_service_name_join(n, sizeof(n), type_table[type], "_dns-sd._udp", domain)) < 0) { - avahi_server_set_errno(server, r); + if ((r = catta_service_name_join(n, sizeof(n), type_table[type], "_dns-sd._udp", domain)) < 0) { + catta_server_set_errno(server, r); return NULL; } - if (!(b = avahi_new(AvahiSDomainBrowser, 1))) { - avahi_server_set_errno(server, AVAHI_ERR_NO_MEMORY); + if (!(b = catta_new(CattaSDomainBrowser, 1))) { + catta_server_set_errno(server, CATTA_ERR_NO_MEMORY); return NULL; } @@ -189,47 +189,47 @@ AvahiSDomainBrowser *avahi_s_domain_browser_new( b->all_for_now_scheduled = 0; b->defer_event = NULL; - AVAHI_LLIST_PREPEND(AvahiSDomainBrowser, browser, server->domain_browsers, b); + CATTA_LLIST_PREPEND(CattaSDomainBrowser, browser, server->domain_browsers, b); - if (!(k = avahi_key_new(n, AVAHI_DNS_CLASS_IN, AVAHI_DNS_TYPE_PTR))) { - avahi_server_set_errno(server, AVAHI_ERR_NO_MEMORY); + if (!(k = catta_key_new(n, CATTA_DNS_CLASS_IN, CATTA_DNS_TYPE_PTR))) { + catta_server_set_errno(server, CATTA_ERR_NO_MEMORY); goto fail; } - if (!(b->record_browser = avahi_s_record_browser_new(server, interface, protocol, k, flags, record_browser_callback, b))) + if (!(b->record_browser = catta_s_record_browser_new(server, interface, protocol, k, flags, record_browser_callback, b))) goto fail; - avahi_key_unref(k); + catta_key_unref(k); - if (type == AVAHI_DOMAIN_BROWSER_BROWSE && b->server->config.browse_domains) - b->defer_event = avahi_time_event_new(server->time_event_queue, NULL, defer_callback, b); + if (type == CATTA_DOMAIN_BROWSER_BROWSE && b->server->config.browse_domains) + b->defer_event = catta_time_event_new(server->time_event_queue, NULL, defer_callback, b); return b; fail: if (k) - avahi_key_unref(k); + catta_key_unref(k); - avahi_s_domain_browser_free(b); + catta_s_domain_browser_free(b); return NULL; } -void avahi_s_domain_browser_free(AvahiSDomainBrowser *b) { +void catta_s_domain_browser_free(CattaSDomainBrowser *b) { assert(b); assert(b->ref >= 1); if (--b->ref > 0) return; - AVAHI_LLIST_REMOVE(AvahiSDomainBrowser, browser, b->server->domain_browsers, b); + CATTA_LLIST_REMOVE(CattaSDomainBrowser, browser, b->server->domain_browsers, b); if (b->record_browser) - avahi_s_record_browser_free(b->record_browser); + catta_s_record_browser_free(b->record_browser); if (b->defer_event) - avahi_time_event_free(b->defer_event); + catta_time_event_free(b->defer_event); - avahi_free(b); + catta_free(b); }