From: Michael R Sweet Date: Sun, 21 Apr 2024 19:54:43 +0000 (-0400) Subject: Clean up mDNSResponder support. X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=96d6053c3f4828fa17792acdbb905fa0bf6ade48;p=thirdparty%2Fcups.git Clean up mDNSResponder support. --- diff --git a/cups/dnssd.c b/cups/dnssd.c index 9520f81f6f..dc0ed97fde 100644 --- a/cups/dnssd.c +++ b/cups/dnssd.c @@ -1686,12 +1686,26 @@ mdns_browse_cb( const char *domain, // I - Domain cups_dnssd_browse_t *browse) // I - Browse request { + char temp[256], // Temporary string + *tempptr; // Pointer into temporary string + + (void)ref; if (error != kDNSServiceErr_NoError) report_error(browse->dnssd, "DNS-SD browse error: %s", mdns_strerror(error)); - (browse->cb)(browse, browse->cb_data, mdns_to_cups(flags, error), if_index, name, regtype, domain); + // Strip trailing dot from registration/service type... + cupsCopyString(temp, regtype, sizeof(temp)); + if ((tempptr = temp + strlen(temp) - 1) >= temp && *tempptr == '.') + *tempptr = '\0'; + + // Strip leading dot from domain... + if (domain && *domain == '.') + domain ++; // Eliminate leading period + + // Call the browse callback... + (browse->cb)(browse, browse->cb_data, mdns_to_cups(flags, error), if_index, name, temp, domain); } diff --git a/cups/testdnssd.c b/cups/testdnssd.c index 821021e426..6b6fd5e226 100644 --- a/cups/testdnssd.c +++ b/cups/testdnssd.c @@ -318,7 +318,7 @@ browse_print_cb( // Test data - printf("%5u %s.%s%s\n", if_index, name, regtype, domain); + printf("%5u %s.%s.%s\n", if_index, name, regtype, domain); cupsMutexLock(&data->mutex); data->browse_dnssd_count ++;