[SCM] Samba Shared Repository - branch v3-3-test updated - release-3-2-0pre2-3243-g15920f8

Jeremy Allison jra at samba.org
Tue Jul 15 21:39:01 GMT 2008


The branch, v3-3-test has been updated
       via  15920f838835f5dbbac8712202267c2a99237686 (commit)
      from  507660706901a79544d436046127947e4baa7e52 (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-3-test


- Log -----------------------------------------------------------------
commit 15920f838835f5dbbac8712202267c2a99237686
Author: Jeremy Allison <jra at samba.org>
Date:   Tue Jul 15 14:37:48 2008 -0700

    Fix swat. Bug #5613.
    Jeremy

-----------------------------------------------------------------------

Summary of changes:
 source/include/proto.h  |    1 -
 source/param/loadparm.c |    9 ---------
 source/web/swat.c       |   31 ++++++++++++++++++-------------
 3 files changed, 18 insertions(+), 23 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source/include/proto.h b/source/include/proto.h
index 9958c91..f7f0836 100644
--- a/source/include/proto.h
+++ b/source/include/proto.h
@@ -6166,7 +6166,6 @@ bool lp_load_with_registry_shares(const char *pszFname,
 				  bool save_defaults,
 				  bool add_ipc,
 				  bool initialize_globals);
-void lp_resetnumservices(void);
 int lp_numservices(void);
 void lp_dump(FILE *f, bool show_defaults, int maxtoprint);
 void lp_dump_one(FILE * f, bool show_defaults, int snum);
diff --git a/source/param/loadparm.c b/source/param/loadparm.c
index b2cbbf1..18ca495 100644
--- a/source/param/loadparm.c
+++ b/source/param/loadparm.c
@@ -8903,15 +8903,6 @@ bool lp_load_with_registry_shares(const char *pszFname,
 }
 
 /***************************************************************************
- Reset the max number of services.
-***************************************************************************/
-
-void lp_resetnumservices(void)
-{
-	iNumServices = 0;
-}
-
-/***************************************************************************
  Return the max number of services.
 ***************************************************************************/
 
diff --git a/source/web/swat.c b/source/web/swat.c
index 373ab73..1502c5b 100644
--- a/source/web/swat.c
+++ b/source/web/swat.c
@@ -430,7 +430,6 @@ static void show_parameters(int snum, int allparameters, unsigned int parm_filte
 ****************************************************************************/
 static bool load_config(bool save_def)
 {
-	lp_resetnumservices();
 	return lp_load(get_dyn_CONFIGFILE(),False,save_def,False,True);
 }
 
@@ -740,12 +739,12 @@ static void wizard_page(void)
 
 			load_config(False);
 			lp_copy_service(GLOBAL_SECTION_SNUM, unix_share);
-			iNumNonAutoPrintServices = lp_numservices();
 			have_home = lp_servicenumber(HOMES_NAME);
 			lp_do_parameter( have_home, "read only", "No");
 			lp_do_parameter( have_home, "valid users", "%S");
 			lp_do_parameter( have_home, "browseable", "No");
 			commit_parameters(have_home);
+			save_reload(have_home);
 		}
 
 		/* Need to Delete Homes share? */
@@ -908,6 +907,7 @@ static void shares_page(void)
 	if (cgi_variable("Commit") && snum >= 0) {
 		commit_parameters(snum);
 		save_reload(0);
+		snum = lp_servicenumber(share);
 	}
 
 	if (cgi_variable("Delete") && snum >= 0) {
@@ -918,11 +918,14 @@ static void shares_page(void)
 	}
 
 	if (cgi_variable("createshare") && (share=cgi_variable("newshare"))) {
-		load_config(False);
-		lp_copy_service(GLOBAL_SECTION_SNUM, share);
-		iNumNonAutoPrintServices = lp_numservices();
-		save_reload(0);
 		snum = lp_servicenumber(share);
+		if (snum < 0) {
+			load_config(False);
+			lp_copy_service(GLOBAL_SECTION_SNUM, share);
+			snum = lp_servicenumber(share);
+			save_reload(snum);
+			snum = lp_servicenumber(share);
+		}
 	}
 
 	printf("<FORM name=\"swatform\" method=post>\n");
@@ -958,7 +961,6 @@ static void shares_page(void)
 			       (share && strcmp(share,s)==0)?"SELECTED":"",
 			       utf8_s, utf8_s);
 			SAFE_FREE(utf8_s);
-			
 		}
 	}
 	printf("</select></td>\n");
@@ -1261,6 +1263,7 @@ static void printers_page(void)
 		    save_reload(snum);
 		else
 		    save_reload(0);
+		snum = lp_servicenumber(share);
 	}
 
 	if (cgi_variable("Delete") && snum >= 0) {
@@ -1271,13 +1274,15 @@ static void printers_page(void)
 	}
 
 	if (cgi_variable("createshare") && (share=cgi_variable("newshare"))) {
-		load_config(False);
-		lp_copy_service(GLOBAL_SECTION_SNUM, share);
-		iNumNonAutoPrintServices = lp_numservices();
-		snum = lp_servicenumber(share);
-		lp_do_parameter(snum, "print ok", "Yes");
-		save_reload(0);
 		snum = lp_servicenumber(share);
+		if (snum < 0 || snum >= iNumNonAutoPrintServices) {
+			load_config(False);
+			lp_copy_service(GLOBAL_SECTION_SNUM, share);
+			snum = lp_servicenumber(share);
+			lp_do_parameter(snum, "print ok", "Yes");
+			save_reload(snum);
+			snum = lp_servicenumber(share);
+		}
 	}
 
 	printf("<FORM name=\"swatform\" method=post>\n");


-- 
Samba Shared Repository


More information about the samba-cvs mailing list