]> git.ipfire.org Git - thirdparty/cups.git/blobdiff - scheduler/dirsvc.c
Import CUPS 1.4svn-r7356.
[thirdparty/cups.git] / scheduler / dirsvc.c
index a1d8fe1c9b12fcb44ab2c9a86397dc3893cbf84a..507ecf2803c913be6f8311bca9c24d96fa04f990 100644 (file)
@@ -2448,10 +2448,12 @@ dnssdRegisterCallback(
     const char         *domain,        /* I - Domain. ".local" for now */
     void               *context)       /* I - User-defined context */
 {
-  (void)context;
+  cupsd_printer_t *p = (cupsd_printer_t *)context;
+                                       /* Current printer */
+
 
-  cupsdLogMessage(CUPSD_LOG_DEBUG2, 
-                 "dnssdRegisterCallback(%s, %s)", name, regtype);
+  cupsdLogMessage(CUPSD_LOG_DEBUG2, "dnssdRegisterCallback(%s, %s) for %s",
+                  name, regtype, p->name);
 
   if (errorCode)
   {
@@ -2459,6 +2461,14 @@ dnssdRegisterCallback(
                    "DNSServiceRegister failed with error %d", (int)errorCode);
     return;
   }
+  else if (strcasecmp(name, p->reg_name))
+  {
+    cupsdLogMessage(CUPSD_LOG_INFO, "Using service name \"%s\" for \"%s\"",
+                    name, p->name);
+
+    cupsdSetString(&p->reg_name, name);
+    LastEvent |= CUPSD_EVENT_PRINTER_MODIFIED;
+  }
 }
 
 
@@ -2607,8 +2617,8 @@ dnssdRegisterPrinter(cupsd_printer_t *p)/* I - Printer */
 
 
     cupsdLogMessage(CUPSD_LOG_DEBUG, 
-               "dnssdRegisterPrinter(%s) type, domain is \"%s\", \"%s\"",
-               p->name, regtype, domain ? domain : "(null)");
+                   "dnssdRegisterPrinter(%s) type, domain is \"%s\", \"%s\"",
+                   p->name, regtype, domain ? domain : "(null)");
 
     se = DNSServiceRegister(&p->dnssd_ipp_ref, 0, 0, name, regtype, 
                            domain, NULL, htons(port), txt_len, txt_record,
@@ -3683,7 +3693,7 @@ update_cups_browse(void)
       * Access from localhost (127.0.0.1) is always allowed...
       */
 
-      auth = AUTH_ALLOW;
+      auth = CUPSD_AUTH_ALLOW;
     }
     else
     {
@@ -3694,39 +3704,39 @@ update_cups_browse(void)
       switch (BrowseACL->order_type)
       {
         default :
-           auth = AUTH_DENY;   /* anti-compiler-warning-code */
+           auth = CUPSD_AUTH_DENY;     /* anti-compiler-warning-code */
            break;
 
-       case AUTH_ALLOW : /* Order Deny,Allow */
-            auth = AUTH_ALLOW;
+       case CUPSD_AUTH_ALLOW : /* Order Deny,Allow */
+            auth = CUPSD_AUTH_ALLOW;
 
             if (cupsdCheckAuth(address, srcname, len,
                          BrowseACL->num_deny, BrowseACL->deny))
-             auth = AUTH_DENY;
+             auth = CUPSD_AUTH_DENY;
 
             if (cupsdCheckAuth(address, srcname, len,
                          BrowseACL->num_allow, BrowseACL->allow))
-             auth = AUTH_ALLOW;
+             auth = CUPSD_AUTH_ALLOW;
            break;
 
-       case AUTH_DENY : /* Order Allow,Deny */
-            auth = AUTH_DENY;
+       case CUPSD_AUTH_DENY : /* Order Allow,Deny */
+            auth = CUPSD_AUTH_DENY;
 
             if (cupsdCheckAuth(address, srcname, len,
                          BrowseACL->num_allow, BrowseACL->allow))
-             auth = AUTH_ALLOW;
+             auth = CUPSD_AUTH_ALLOW;
 
             if (cupsdCheckAuth(address, srcname, len,
                          BrowseACL->num_deny, BrowseACL->deny))
-             auth = AUTH_DENY;
+             auth = CUPSD_AUTH_DENY;
            break;
       }
     }
   }
   else
-    auth = AUTH_ALLOW;
+    auth = CUPSD_AUTH_ALLOW;
 
-  if (auth == AUTH_DENY)
+  if (auth == CUPSD_AUTH_DENY)
   {
     cupsdLogMessage(CUPSD_LOG_DEBUG,
                     "update_cups_browse: Refused %d bytes from %s", bytes,
@@ -3902,16 +3912,15 @@ update_lpd(int onoff)                   /* - 1 = turn on, 0 = turn off */
         snprintf(line, sizeof(line), "\tdisable = %s",
                 onoff ? "no" : "yes");
       }
-      else if (strstr(line, "disable ="))
-        continue;
-
-      cupsFilePrintf(nfp, "%s\n", line);
+      else if (!strstr(line, "disable ="))
+        cupsFilePrintf(nfp, "%s\n", line);
     }
 
     cupsFileClose(nfp);
     cupsFileClose(ofp);
     rename(newfile, LPDConfigFile + 9);
   }
+#ifdef __APPLE__
   else if (!strncmp(LPDConfigFile, "launchd:///", 11))
   {
    /*
@@ -3933,6 +3942,9 @@ update_lpd(int onoff)                     /* - 1 = turn on, 0 = turn off */
     cupsdStartProcess("/bin/launchctl", argv, envp, -1, -1, -1, -1, -1, 1,
                       NULL, &pid);
   }
+#endif /* __APPLE__ */
+  else
+    cupsdLogMessage(CUPSD_LOG_INFO, "Unknown LPDConfigFile scheme!");
 }
 
 
@@ -4028,27 +4040,8 @@ update_smb(int onoff)                    /* I - 1 = turn on, 0 = turn off */
     cupsFileClose(ofp);
     rename(newfile, SMBConfigFile + 8);
   }
-  else if (!strncmp(SMBConfigFile, "launchd:///", 11))
-  {
-   /*
-    * Enable/disable SMB via the launchctl command...
-    */
-
-    char       *argv[5],               /* Arguments for command */
-               *envp[MAX_ENV];         /* Environment for command */
-    int                pid;                    /* Process ID */
-
-
-    cupsdLoadEnv(envp, (int)(sizeof(envp) / sizeof(envp[0])));
-    argv[0] = (char *)"launchctl";
-    argv[1] = (char *)(onoff ? "load" : "unload");
-    argv[2] = (char *)"-w";
-    argv[3] = SMBConfigFile + 10;
-    argv[4] = NULL;
-
-    cupsdStartProcess("/bin/launchctl", argv, envp, -1, -1, -1, -1, -1, 1,
-                      NULL, &pid);
-  }
+  else
+    cupsdLogMessage(CUPSD_LOG_INFO, "Unknown SMBConfigFile scheme!");
 }