]> git.ipfire.org Git - thirdparty/cups.git/blobdiff - scheduler/dirsvc.c
Fix regression in fix for rdar://40436080.
[thirdparty/cups.git] / scheduler / dirsvc.c
index 518418a32e677fe2bff40bfe2786f25996c1671b..ddd3701e07c29de2402d5f89cd702b815aef2a86 100644 (file)
@@ -1,10 +1,11 @@
 /*
  * Directory services routines for the CUPS scheduler.
  *
- * Copyright 2007-2017 by Apple Inc.
- * Copyright 1997-2007 by Easy Software Products, all rights reserved.
+ * 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.
+ * Licensed under Apache License v2.0.  See the file "LICENSE" for more
+ * information.
  */
 
 /*
@@ -694,20 +695,21 @@ dnssdDeregisterInstance(
 
   DNSServiceRefDeallocate(*srv);
 
+  *srv = NULL;
+
 #  else /* HAVE_AVAHI */
+  if (!from_callback)
+    avahi_threaded_poll_lock(DNSSDMaster);
+
   if (*srv)
   {
-    if (!from_callback)
-      avahi_threaded_poll_lock(DNSSDMaster);
-
     avahi_entry_group_free(*srv);
-
-    if (!from_callback)
-      avahi_threaded_poll_unlock(DNSSDMaster);
+    *srv = NULL;
   }
-#  endif /* HAVE_DNSSD */
 
-  *srv = NULL;
+  if (!from_callback)
+    avahi_threaded_poll_unlock(DNSSDMaster);
+#  endif /* HAVE_DNSSD */
 }
 
 
@@ -1463,9 +1465,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 +1485,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 +1535,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 +1550,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);
     }
   }