]> git.meshlink.io Git - catta/blobdiff - avahi-compat-libdns_sd/compat.c
compile python module even without gtk. It seems, that most parts of python are not...
[catta] / avahi-compat-libdns_sd / compat.c
index 9d8ff1c00e281bffbf161698880380a82ee9f0d7..7c2686a72c9a682727b6da5bc63a9b0c72ae5b87 100644 (file)
@@ -612,12 +612,10 @@ DNSServiceErrorType DNSSD_API DNSServiceBrowse(
     
     AVAHI_WARN_LINKAGE;
 
-    if (!ret_sdref)
+    if (!ret_sdref || !regtype)
         return kDNSServiceErr_BadParam;
     *ret_sdref = NULL;
 
-    assert(regtype);
-
     if (interface == kDNSServiceInterfaceIndexLocalOnly || flags != 0) {
         AVAHI_WARN_UNSUPPORTED;
         return kDNSServiceErr_Unsupported;
@@ -739,15 +737,10 @@ DNSServiceErrorType DNSSD_API DNSServiceResolve(
 
     AVAHI_WARN_LINKAGE;
 
-    if (!ret_sdref)
+    if (!ret_sdref || !name || !regtype || !domain || !callback)
         return kDNSServiceErr_BadParam;
     *ret_sdref = NULL;
 
-    assert(name);
-    assert(regtype);
-    assert(domain);
-    assert(callback);
-
     if (interface == kDNSServiceInterfaceIndexLocalOnly || flags != 0) {
         AVAHI_WARN_UNSUPPORTED;
         return kDNSServiceErr_Unsupported;
@@ -795,9 +788,8 @@ int DNSSD_API DNSServiceConstructFullName (
 
     AVAHI_WARN_LINKAGE;
 
-    assert(fullName);
-    assert(regtype);
-    assert(domain);
+    if (!fullName || !regtype || !domain)
+        return -1;
 
     if (avahi_service_name_join(fullName, kDNSServiceMaxDomainName, service, regtype, domain) < 0)
         return -1;
@@ -856,12 +848,10 @@ DNSServiceErrorType DNSSD_API DNSServiceEnumerateDomains(
 
     AVAHI_WARN_LINKAGE;
 
-    if (!ret_sdref)
+    if (!ret_sdref || !callback)
         return kDNSServiceErr_BadParam;
     *ret_sdref = NULL;
 
-    assert(callback);
-
     if (interface == kDNSServiceInterfaceIndexLocalOnly ||
         (flags != kDNSServiceFlagsBrowseDomains &&  flags != kDNSServiceFlagsRegistrationDomains)) {
         AVAHI_WARN_UNSUPPORTED;
@@ -1000,6 +990,16 @@ static void reg_client_callback(AvahiClient *s, AvahiClientState state, void* us
                     return;
                 }
             }
+
+            if (!sdref->service_name_chosen) {
+
+                assert(sdref->service_name);
+                
+                if (!(sdref->service_name_chosen = avahi_strdup(sdref->service_name))) {
+                    reg_report_error(sdref, kDNSServiceErr_NoMemory);
+                    return;
+                }
+            }
             
             /* Register the service */
 
@@ -1100,14 +1100,14 @@ DNSServiceErrorType DNSSD_API DNSServiceRegister (
 
     AVAHI_WARN_LINKAGE;
 
-    if (!ret_sdref)
+    if (!ret_sdref || !regtype)
         return kDNSServiceErr_BadParam;
     *ret_sdref = NULL;
     
-    if (!regtype)
-           return kDNSServiceErr_BadParam;
-       
-    assert(txtRecord || txtLen == 0);
+    if (!txtRecord) {
+        txtLen = 1;
+        txtRecord = "";
+    }
 
     if (interface == kDNSServiceInterfaceIndexLocalOnly || flags) {
         AVAHI_WARN_UNSUPPORTED;