X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=avahi-compat-libdns_sd%2Fcompat.c;h=e09099d6b6f4f3afd0f03318a2795201c4c641a9;hb=69af4f4f5a3718d8ed4ff597daf68de87bbb39f3;hp=373a980f0ccefbc987ba3dffe3c0d6d8c78e58de;hpb=26ff12dc7f06b0031050938d297e6ef94931e8bf;p=catta diff --git a/avahi-compat-libdns_sd/compat.c b/avahi-compat-libdns_sd/compat.c index 373a980..e09099d 100644 --- a/avahi-compat-libdns_sd/compat.c +++ b/avahi-compat-libdns_sd/compat.c @@ -99,6 +99,7 @@ static DNSServiceErrorType map_error(int error) { case AVAHI_ERR_INVALID_PORT: case AVAHI_ERR_INVALID_KEY: case AVAHI_ERR_INVALID_ADDRESS: + case AVAHI_ERR_INVALID_SERVICE_SUBTYPE: return kDNSServiceErr_BadParam; @@ -509,8 +510,10 @@ DNSServiceErrorType DNSSD_API DNSServiceBrowse( assert(domain); assert(callback); - if (interface == kDNSServiceInterfaceIndexLocalOnly || flags != 0) + if (interface == kDNSServiceInterfaceIndexLocalOnly || flags != 0) { + AVAHI_WARN_UNSUPPORTED; return kDNSServiceErr_Unsupported; + } if (!(sdref = sdref_new())) return kDNSServiceErr_Unknown; @@ -580,7 +583,7 @@ static void service_resolver_callback( if ((p = avahi_new0(char, (l = avahi_string_list_serialize(txt, NULL, 0))+1))) avahi_string_list_serialize(txt, p, l); - ret = avahi_service_name_snprint(full_name, sizeof(full_name), name, type, domain); + ret = avahi_service_name_join(full_name, sizeof(full_name), name, type, domain); assert(ret == AVAHI_OK); strcat(full_name, "."); @@ -625,8 +628,10 @@ DNSServiceErrorType DNSSD_API DNSServiceResolve( assert(domain); assert(callback); - if (interface == kDNSServiceInterfaceIndexLocalOnly || flags != 0) + if (interface == kDNSServiceInterfaceIndexLocalOnly || flags != 0) { + AVAHI_WARN_UNSUPPORTED; return kDNSServiceErr_Unsupported; + } if (!(sdref = sdref_new())) return kDNSServiceErr_Unknown; @@ -674,7 +679,7 @@ int DNSSD_API DNSServiceConstructFullName ( assert(regtype); assert(domain); - if (avahi_service_name_snprint(fullName, kDNSServiceMaxDomainName, service, regtype, domain) < 0) + if (avahi_service_name_join(fullName, kDNSServiceMaxDomainName, service, regtype, domain) < 0) return -1; return 0; @@ -739,8 +744,10 @@ DNSServiceErrorType DNSSD_API DNSServiceEnumerateDomains( assert(callback); if (interface == kDNSServiceInterfaceIndexLocalOnly || - (flags != kDNSServiceFlagsBrowseDomains && flags != kDNSServiceFlagsRegistrationDomains)) + (flags != kDNSServiceFlagsBrowseDomains && flags != kDNSServiceFlagsRegistrationDomains)) { + AVAHI_WARN_UNSUPPORTED; return kDNSServiceErr_Unsupported; + } if (!(sdref = sdref_new())) return kDNSServiceErr_Unknown; @@ -757,7 +764,7 @@ DNSServiceErrorType DNSSD_API DNSServiceEnumerateDomains( ifindex = interface == kDNSServiceInterfaceIndexAny ? AVAHI_IF_UNSPEC : (AvahiIfIndex) interface; - if (!(sdref->domain_browser = avahi_domain_browser_new(sdref->client, ifindex, AVAHI_PROTO_UNSPEC, NULL, + if (!(sdref->domain_browser = avahi_domain_browser_new(sdref->client, ifindex, AVAHI_PROTO_UNSPEC, "local", flags == kDNSServiceFlagsRegistrationDomains ? AVAHI_DOMAIN_BROWSER_REGISTER : AVAHI_DOMAIN_BROWSER_BROWSE, 0, domain_browser_callback, sdref))) { ret = map_error(avahi_client_errno(sdref->client)); @@ -952,8 +959,10 @@ DNSServiceErrorType DNSSD_API DNSServiceRegister ( assert(callback); assert(regtype); - if (interface == kDNSServiceInterfaceIndexLocalOnly || flags) + if (interface == kDNSServiceInterfaceIndexLocalOnly || flags) { + AVAHI_WARN_UNSUPPORTED; return kDNSServiceErr_Unsupported; + } if (!(sdref = sdref_new())) return kDNSServiceErr_Unknown; @@ -962,9 +971,9 @@ DNSServiceErrorType DNSSD_API DNSServiceRegister ( sdref->service_register_callback = callback; sdref->service_name = avahi_strdup(name); - sdref->service_regtype = regtype ? avahi_normalize_name(regtype) : NULL; - sdref->service_domain = domain ? avahi_normalize_name(domain) : NULL; - sdref->service_host = host ? avahi_normalize_name(host) : NULL; + sdref->service_regtype = regtype ? avahi_normalize_name_strdup(regtype) : NULL; + sdref->service_domain = domain ? avahi_normalize_name_strdup(domain) : NULL; + sdref->service_host = host ? avahi_normalize_name_strdup(host) : NULL; sdref->service_interface = interface == kDNSServiceInterfaceIndexAny ? AVAHI_IF_UNSPEC : (AvahiIfIndex) interface; sdref->service_port = ntohs(port); sdref->service_txt = txtRecord ? avahi_string_list_parse(txtRecord, txtLen) : NULL;