X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=avahi-compat-libdns_sd%2Fcompat.c;h=7c2686a72c9a682727b6da5bc63a9b0c72ae5b87;hb=7289ee4063da05f276bce22685312baa83f0f117;hp=9d8ff1c00e281bffbf161698880380a82ee9f0d7;hpb=5b7e4f49787da905b9ec7d01eaf76462ca3a6e28;p=catta diff --git a/avahi-compat-libdns_sd/compat.c b/avahi-compat-libdns_sd/compat.c index 9d8ff1c..7c2686a 100644 --- a/avahi-compat-libdns_sd/compat.c +++ b/avahi-compat-libdns_sd/compat.c @@ -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;