]> git.meshlink.io Git - catta/blobdiff - avahi-core/resolve-service.c
Rename some server side objects/symbols so that they do not conflict with the same...
[catta] / avahi-core / resolve-service.c
index 135543f8a920be3b799ff2be23de133bd62985e3..4a19942da7dbb0d6d893c4b12ad8a3c69d9d4d89 100644 (file)
 #endif
 
 #include <string.h>
+#include <stdio.h>
+
+#include <avahi-common/domain.h>
+#include <avahi-common/timeval.h>
+#include <avahi-common/malloc.h>
 
 #include "browse.h"
-#include "util.h"
 
-struct AvahiServiceResolver {
+struct AvahiSServiceResolver {
     AvahiServer *server;
-    gchar *service_name;
-    gchar *service_type;
-    gchar *domain_name;
+    char *service_name;
+    char *service_type;
+    char *domain_name;
     AvahiProtocol address_protocol;
 
     AvahiIfIndex interface;
     AvahiProtocol protocol;
 
-    AvahiRecordBrowser *record_browser_srv;
-    AvahiRecordBrowser *record_browser_txt;
-    AvahiRecordBrowser *record_browser_a;
-    AvahiRecordBrowser *record_browser_aaaa;
+    AvahiSRecordBrowser *record_browser_srv;
+    AvahiSRecordBrowser *record_browser_txt;
+    AvahiSRecordBrowser *record_browser_a;
+    AvahiSRecordBrowser *record_browser_aaaa;
 
     AvahiRecord *srv_record, *txt_record, *address_record;
     
-    AvahiServiceResolverCallback callback;
-    gpointer userdata;
+    AvahiSServiceResolverCallback callback;
+    void* userdata;
 
     AvahiTimeEvent *time_event;
 
-    AVAHI_LLIST_FIELDS(AvahiServiceResolver, resolver);
+    AVAHI_LLIST_FIELDS(AvahiSServiceResolver, resolver);
 };
 
-static void finish(AvahiServiceResolver *r, AvahiResolverEvent event) {
-    g_assert(r);
+static void finish(AvahiSServiceResolver *r, AvahiResolverEvent event) {
+    assert(r);
 
     if (r->record_browser_a) {
-        avahi_record_browser_free(r->record_browser_a);
+        avahi_s_record_browser_free(r->record_browser_a);
         r->record_browser_a = NULL;
     }
 
     if (r->record_browser_aaaa) {
-        avahi_record_browser_free(r->record_browser_aaaa);
+        avahi_s_record_browser_free(r->record_browser_aaaa);
         r->record_browser_aaaa = NULL;
     }
 
     if (r->record_browser_srv) {
-        avahi_record_browser_free(r->record_browser_srv);
+        avahi_s_record_browser_free(r->record_browser_srv);
         r->record_browser_srv = NULL;
     }
 
     if (r->record_browser_txt) {
-        avahi_record_browser_free(r->record_browser_txt);
+        avahi_s_record_browser_free(r->record_browser_txt);
         r->record_browser_txt = NULL;
     }
 
     if (r->time_event) {
-        avahi_time_event_queue_remove(r->server->time_event_queue, r->time_event);
+        avahi_time_event_free(r->time_event);
         r->time_event = NULL;
     }
 
@@ -85,12 +89,12 @@ static void finish(AvahiServiceResolver *r, AvahiResolverEvent event) {
         r->callback(r, r->interface, r->protocol, event, r->service_name, r->service_type, r->domain_name, NULL, NULL, 0, NULL, r->userdata);
     else {
         AvahiAddress a;
-        gchar sn[256], st[256];
+        char sn[256], st[256];
         size_t i;
         
-        g_assert(r->srv_record);
-        g_assert(r->txt_record);
-        g_assert(r->address_record);
+        assert(r->srv_record);
+        assert(r->txt_record);
+        assert(r->address_record);
         
         switch (r->address_record->key->type) {
             case AVAHI_DNS_TYPE_A:
@@ -104,11 +108,11 @@ static void finish(AvahiServiceResolver *r, AvahiResolverEvent event) {
                 break;
                 
             default:
-                g_assert(FALSE);
+                assert(0);
         }
 
-        g_snprintf(sn, sizeof(sn), r->service_name);
-        g_snprintf(st, sizeof(st), r->service_type);
+        snprintf(sn, sizeof(sn), r->service_name);
+        snprintf(st, sizeof(st), r->service_type);
 
         if ((i = strlen(sn)) > 0 && sn[i-1] == '.')
             sn[i-1] = 0;
@@ -121,12 +125,12 @@ static void finish(AvahiServiceResolver *r, AvahiResolverEvent event) {
     }
 }
 
-static void record_browser_callback(AvahiRecordBrowser*rr, AvahiIfIndex interface, AvahiProtocol protocol, AvahiBrowserEvent event, AvahiRecord *record, gpointer userdata) {
-    AvahiServiceResolver *r = userdata;
+static void record_browser_callback(AvahiSRecordBrowser*rr, AvahiIfIndex interface, AvahiProtocol protocol, AvahiBrowserEvent event, AvahiRecord *record, void* userdata) {
+    AvahiSServiceResolver *r = userdata;
 
-    g_assert(rr);
-    g_assert(record);
-    g_assert(r);
+    assert(rr);
+    assert(record);
+    assert(r);
 
     if (!(event == AVAHI_BROWSER_NEW))
         return;
@@ -148,17 +152,17 @@ static void record_browser_callback(AvahiRecordBrowser*rr, AvahiIfIndex interfac
             if (!r->srv_record) {
                 r->srv_record = avahi_record_ref(record);
 
-                g_assert(!r->record_browser_a && !r->record_browser_aaaa);
+                assert(!r->record_browser_a && !r->record_browser_aaaa);
                 
                 if (r->address_protocol == AVAHI_PROTO_INET || r->address_protocol == AVAHI_PROTO_UNSPEC) {
                     AvahiKey *k = avahi_key_new(r->srv_record->data.srv.name, AVAHI_DNS_CLASS_IN, AVAHI_DNS_TYPE_A);
-                    r->record_browser_a = avahi_record_browser_new(r->server, r->interface, r->protocol, k, record_browser_callback, r);
+                    r->record_browser_a = avahi_s_record_browser_new(r->server, r->interface, r->protocol, k, record_browser_callback, r);
                     avahi_key_unref(k);
                 } 
                 
                 if (r->address_protocol == AVAHI_PROTO_INET6 || r->address_protocol == AVAHI_PROTO_UNSPEC) {
                     AvahiKey *k = avahi_key_new(r->srv_record->data.srv.name, AVAHI_DNS_CLASS_IN, AVAHI_DNS_TYPE_AAAA);
-                    r->record_browser_aaaa = avahi_record_browser_new(r->server, r->interface, r->protocol, k, record_browser_callback, r);
+                    r->record_browser_aaaa = avahi_s_record_browser_new(r->server, r->interface, r->protocol, k, record_browser_callback, r);
                     avahi_key_unref(k);
                 }
             }
@@ -176,7 +180,7 @@ static void record_browser_callback(AvahiRecordBrowser*rr, AvahiIfIndex interfac
             break;
             
         default:
-            g_assert(FALSE);
+            assert(0);
     }
 
     if (r->txt_record && r->srv_record && r->address_record)
@@ -184,46 +188,50 @@ static void record_browser_callback(AvahiRecordBrowser*rr, AvahiIfIndex interfac
 }
 
 static void time_event_callback(AvahiTimeEvent *e, void *userdata) {
-    AvahiServiceResolver *r = userdata;
+    AvahiSServiceResolver *r = userdata;
     
-    g_assert(e);
-    g_assert(r);
+    assert(e);
+    assert(r);
 
     finish(r, AVAHI_RESOLVER_TIMEOUT);
 }
 
-AvahiServiceResolver *avahi_service_resolver_new(AvahiServer *server, AvahiIfIndex interface, AvahiProtocol protocol, const gchar *name, const gchar *type, const gchar *domain, AvahiProtocol aprotocol, AvahiServiceResolverCallback callback, gpointer userdata) {
-    AvahiServiceResolver *r;
+AvahiSServiceResolver *avahi_s_service_resolver_new(AvahiServer *server, AvahiIfIndex interface, AvahiProtocol protocol, const char *name, const char *type, const char *domain, AvahiProtocol aprotocol, AvahiSServiceResolverCallback callback, void* userdata) {
+    AvahiSServiceResolver *r;
     AvahiKey *k;
     struct timeval tv;
-    gchar t[256], *n;
+    char t[256], *n;
     size_t l;
     
-    g_assert(server);
-    g_assert(name);
-    g_assert(type);
-    g_assert(callback);
+    assert(server);
+    assert(name);
+    assert(type);
+    assert(callback);
 
-    g_assert(aprotocol == AVAHI_PROTO_UNSPEC || aprotocol == AVAHI_PROTO_INET || aprotocol == AVAHI_PROTO_INET6);
+    assert(aprotocol == AVAHI_PROTO_UNSPEC || aprotocol == AVAHI_PROTO_INET || aprotocol == AVAHI_PROTO_INET6);
 
-    if (!avahi_valid_service_name(name)) {
+    if (!avahi_is_valid_service_name(name)) {
         avahi_server_set_errno(server, AVAHI_ERR_INVALID_SERVICE_NAME);
         return NULL;
     }
 
-    if (!avahi_valid_service_type(type)) {
+    if (!avahi_is_valid_service_type(type)) {
         avahi_server_set_errno(server, AVAHI_ERR_INVALID_SERVICE_TYPE);
         return NULL;
     }
 
-    if (!avahi_valid_domain_name(domain)) {
+    if (!avahi_is_valid_domain_name(domain)) {
         avahi_server_set_errno(server, AVAHI_ERR_INVALID_DOMAIN_NAME);
         return NULL;
     }
     
-    r = g_new(AvahiServiceResolver, 1);
+    if (!(r = avahi_new(AvahiSServiceResolver, 1))) {
+        avahi_server_set_errno(server, AVAHI_ERR_NO_MEMORY);
+        return NULL;
+    }
+    
     r->server = server;
-    r->service_name = g_strdup(name);
+    r->service_name = avahi_strdup(name);
     r->service_type = avahi_normalize_name(type);
     r->domain_name = avahi_normalize_name(domain);
     r->callback = callback;
@@ -235,53 +243,53 @@ AvahiServiceResolver *avahi_service_resolver_new(AvahiServer *server, AvahiIfInd
     
     n = t;
     l = sizeof(t);
-    avahi_escape_label((const guint8*) name, strlen(name), &n, &l);
-    g_snprintf(n, l, ".%s.%s", r->service_type, r->domain_name);
+    avahi_escape_label((const uint8_t*) name, strlen(name), &n, &l);
+    snprintf(n, l, ".%s.%s", r->service_type, r->domain_name);
 
     avahi_elapse_time(&tv, 1000, 0);
-    r->time_event = avahi_time_event_queue_add(server->time_event_queue, &tv, time_event_callback, r);
+    r->time_event = avahi_time_event_new(server->time_event_queue, &tv, time_event_callback, r);
     
-    AVAHI_LLIST_PREPEND(AvahiServiceResolver, resolver, server->service_resolvers, r);
+    AVAHI_LLIST_PREPEND(AvahiSServiceResolver, resolver, server->service_resolvers, r);
 
     r->record_browser_a = r->record_browser_aaaa = r->record_browser_srv = r->record_browser_txt = NULL;
     
     k = avahi_key_new(t, AVAHI_DNS_CLASS_IN, AVAHI_DNS_TYPE_SRV);
-    r->record_browser_srv = avahi_record_browser_new(server, interface, protocol, k, record_browser_callback, r);
+    r->record_browser_srv = avahi_s_record_browser_new(server, interface, protocol, k, record_browser_callback, r);
     avahi_key_unref(k);
 
     if (!r->record_browser_srv) {
-        avahi_service_resolver_free(r);
+        avahi_s_service_resolver_free(r);
         return NULL;
     }
     
     k = avahi_key_new(t, AVAHI_DNS_CLASS_IN, AVAHI_DNS_TYPE_TXT);
-    r->record_browser_txt = avahi_record_browser_new(server, interface, protocol, k, record_browser_callback, r);
+    r->record_browser_txt = avahi_s_record_browser_new(server, interface, protocol, k, record_browser_callback, r);
     avahi_key_unref(k);
 
     if (!r->record_browser_txt) {
-        avahi_service_resolver_free(r);
+        avahi_s_service_resolver_free(r);
         return NULL;
     }
 
     return r;
 }
 
-void avahi_service_resolver_free(AvahiServiceResolver *r) {
-    g_assert(r);
+void avahi_s_service_resolver_free(AvahiSServiceResolver *r) {
+    assert(r);
 
-    AVAHI_LLIST_REMOVE(AvahiServiceResolver, resolver, r->server->service_resolvers, r);
+    AVAHI_LLIST_REMOVE(AvahiSServiceResolver, resolver, r->server->service_resolvers, r);
 
     if (r->time_event)
-        avahi_time_event_queue_remove(r->server->time_event_queue, r->time_event);
+        avahi_time_event_free(r->time_event);
     
     if (r->record_browser_srv)
-        avahi_record_browser_free(r->record_browser_srv);
+        avahi_s_record_browser_free(r->record_browser_srv);
     if (r->record_browser_txt)
-        avahi_record_browser_free(r->record_browser_txt);
+        avahi_s_record_browser_free(r->record_browser_txt);
     if (r->record_browser_a)
-        avahi_record_browser_free(r->record_browser_a);
+        avahi_s_record_browser_free(r->record_browser_a);
     if (r->record_browser_aaaa)
-        avahi_record_browser_free(r->record_browser_aaaa);
+        avahi_s_record_browser_free(r->record_browser_aaaa);
 
     if (r->srv_record)
         avahi_record_unref(r->srv_record);
@@ -290,8 +298,8 @@ void avahi_service_resolver_free(AvahiServiceResolver *r) {
     if (r->address_record)
         avahi_record_unref(r->address_record);
     
-    g_free(r->service_name);
-    g_free(r->service_type);
-    g_free(r->domain_name);
-    g_free(r);
+    avahi_free(r->service_name);
+    avahi_free(r->service_type);
+    avahi_free(r->domain_name);
+    avahi_free(r);
 }