svn commit: samba r4043 - in branches/SAMBA_3_0/source/smbd: .

jerry at samba.org jerry at samba.org
Thu Dec 2 17:11:19 GMT 2004


Author: jerry
Date: 2004-12-02 17:11:18 +0000 (Thu, 02 Dec 2004)
New Revision: 4043

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=4043

Log:
BUG 2091: don't remove statically defined printers in remove_stale_printers()
Modified:
   branches/SAMBA_3_0/source/smbd/service.c


Changeset:
Modified: branches/SAMBA_3_0/source/smbd/service.c
===================================================================
--- branches/SAMBA_3_0/source/smbd/service.c	2004-12-02 12:12:26 UTC (rev 4042)
+++ branches/SAMBA_3_0/source/smbd/service.c	2004-12-02 17:11:18 UTC (rev 4043)
@@ -152,10 +152,9 @@
 		int iPrinterService;
 
 		if ((iPrinterService = lp_servicenumber(PRINTERS_NAME)) >= 0) {
-			char *pszTemp;
+			const char *pszTemp = lp_printcapname();
 
 			DEBUG(3,("checking whether %s is a valid printer name...\n", service));
-			pszTemp = lp_printcapname();
 			if ((pszTemp != NULL) && pcap_printername_ok(service, pszTemp)) {
 				DEBUG(3,("%s is a valid printer name\n", service));
 				DEBUG(3,("adding %s as a printer service\n", service));
@@ -877,12 +876,21 @@
 	iNumServices = lp_numservices();
 	printersServiceNum = lp_servicenumber( PRINTERS_NAME);
 	for( snum = 0; snum < iNumServices; snum++) {
+
 		/* Never remove PRINTERS_NAME */
+
 		if ( snum == printersServiceNum)
 			continue;
 		pname = lp_printername( snum);
-		/* Is snum a print service and still in the printing subsystem? */
-		if ( lp_print_ok( snum) && !pcap_printername_ok( pname, NULL)) {
+
+		/* Is snum an autoloaded print service and still 
+		   in the printing subsystem? */
+
+		if ( lp_snum_ok(snum) 
+			&& lp_print_ok(snum) 
+			&& lp_autoloaded(snum)
+			&& !pcap_printername_ok( pname, NULL)) 
+		{
 			DEBUG( 3, ( "Removing printer: %s\n", pname));
 			lp_killservice( snum);
 		}



More information about the samba-cvs mailing list