s3-printing: fix BUG 7280 - auto printers not loading with registry config
[samba.git] / source3 / printing / load.c
index f8aba3996d47ec00de09f7d02d10a298994775ac..874f7f25215560a5717905baed1f5810fea4e208 100644 (file)
@@ -28,6 +28,11 @@ static void add_auto_printers(void)
        const char *p;
        int pnum = lp_servicenumber(PRINTERS_NAME);
        char *str;
+       char *saveptr;
+
+       if (pnum < 0)
+               if (process_registry_service(PRINTERS_NAME))
+                       pnum = lp_servicenumber(PRINTERS_NAME);
 
        if (pnum < 0)
                return;
@@ -35,7 +40,8 @@ static void add_auto_printers(void)
        if ((str = SMB_STRDUP(lp_auto_services())) == NULL)
                return;
 
-       for (p = strtok(str, LIST_SEP); p; p = strtok(NULL, LIST_SEP)) {
+       for (p = strtok_r(str, LIST_SEP, &saveptr); p;
+            p = strtok_r(NULL, LIST_SEP, &saveptr)) {
                if (lp_servicenumber(p) >= 0)
                        continue;
                
@@ -58,5 +64,5 @@ void load_printers(void)
 
        /* load all printcap printers */
        if (lp_load_printers() && lp_servicenumber(PRINTERS_NAME) >= 0)
-               pcap_printer_fn(lp_add_one_printer);
+               pcap_printer_fn(lp_add_one_printer, NULL);
 }