From c4faa907bcd4e0e192e6b89e738c67478768321c Mon Sep 17 00:00:00 2001 From: Michael Sweet Date: Wed, 10 Jan 2018 10:49:48 -0500 Subject: [PATCH] Fix DNS-SD host name for shared printers on macOS. --- CHANGES.md | 4 +++- scheduler/dirsvc.c | 22 ++++++++++++++++------ 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 47730d678..4eee28fed 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,4 +1,4 @@ -CHANGES - 2.3b2 - 2018-01-09 +CHANGES - 2.3b2 - 2018-01-10 ============================ @@ -10,6 +10,8 @@ Changes in CUPS v2.3b2 - The `cupsGetDests` and `cupsEnumDests` functions no longer filter out local print services like IPP USB devices (Issue #5206) - The `ppdInstallableConflict` tested too many constraints (Issue #5213) +- The scheduler did not add ".local" to the default DNS-SD host name when + needed. Changes in CUPS v2.3b1 diff --git a/scheduler/dirsvc.c b/scheduler/dirsvc.c index 518418a32..d01170fc7 100644 --- a/scheduler/dirsvc.c +++ b/scheduler/dirsvc.c @@ -1,7 +1,7 @@ /* * Directory services routines for the CUPS scheduler. * - * Copyright 2007-2017 by Apple Inc. + * Copyright 2007-2018 by Apple Inc. * Copyright 1997-2007 by Easy Software Products, all rights reserved. * * Licensed under Apache License v2.0. See the file "LICENSE" for more information. @@ -1463,9 +1463,14 @@ dnssdUpdateDNSSDName(int from_callback) /* I - Called from callback? */ if (CFStringGetCString(nameRef, nameBuffer, sizeof(nameBuffer), kCFStringEncodingUTF8)) { - cupsdLogMessage(CUPSD_LOG_DEBUG, - "Dynamic store host name is \"%s\".", nameBuffer); - cupsdSetString(&DNSSDHostName, nameBuffer); + cupsdLogMessage(CUPSD_LOG_DEBUG, "Dynamic store host name is \"%s\".", nameBuffer); + + if (strchr(nameBuffer, '.')) + cupsdSetString(&DNSSDHostName, nameBuffer); + else + cupsdSetStringf(&DNSSDHostName, "%s.local", nameBuffer); + + cupsdLogMessage(CUPSD_LOG_INFO, "Defaulting to \"DNSSDHostName %s\".", DNSSDHostName); } CFRelease(nameRef); @@ -1478,9 +1483,10 @@ dnssdUpdateDNSSDName(int from_callback) /* I - Called from callback? */ * Use the ServerName instead... */ - cupsdLogMessage(CUPSD_LOG_DEBUG, - "Using ServerName \"%s\" as host name.", ServerName); + cupsdLogMessage(CUPSD_LOG_DEBUG, "Using ServerName \"%s\" as host name.", ServerName); cupsdSetString(&DNSSDHostName, ServerName); + + cupsdLogMessage(CUPSD_LOG_INFO, "Defaulting to \"DNSSDHostName %s\".", DNSSDHostName); } /* @@ -1527,6 +1533,8 @@ dnssdUpdateDNSSDName(int from_callback) /* I - Called from callback? */ cupsdSetString(&DNSSDHostName, ServerName); else cupsdSetStringf(&DNSSDHostName, "%s.local", ServerName); + + cupsdLogMessage(CUPSD_LOG_INFO, "Defaulting to \"DNSSDHostName %s\".", DNSSDHostName); } } else @@ -1540,6 +1548,8 @@ dnssdUpdateDNSSDName(int from_callback) /* I - Called from callback? */ cupsdSetString(&DNSSDHostName, ServerName); else cupsdSetStringf(&DNSSDHostName, "%s.local", ServerName); + + cupsdLogMessage(CUPSD_LOG_INFO, "Defaulting to \"DNSSDHostName %s\".", DNSSDHostName); } } -- 2.39.2