[PATCH 17/37] param: remove unnecessary calls to do_parameter in s3

abartlet at samba.org abartlet at samba.org
Fri Jun 20 05:47:39 MDT 2014


From: Garming Sam <garming at catalyst.net.nz>

This aim of this is to try to factor out do_parameter.

Ideally, do_parameter should strictly be called from pm_process.

Change-Id: I990b53d0884e828f523a3b40e4ca72cc1596b06c
Signed-off-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
---
 source3/param/loadparm.c | 29 +++++++++++++++++++++++++----
 1 file changed, 25 insertions(+), 4 deletions(-)

diff --git a/source3/param/loadparm.c b/source3/param/loadparm.c
index 6b7ffe3..ef02791 100644
--- a/source3/param/loadparm.c
+++ b/source3/param/loadparm.c
@@ -2078,9 +2078,19 @@ static bool process_smbconf_service(struct smbconf_service *service)
 		return false;
 	}
 	for (count = 0; count < service->num_params; count++) {
-		ret = do_parameter(service->param_names[count],
-				   service->param_values[count],
-				   NULL);
+
+		if (!bInGlobalSection && bGlobalOnly) {
+			ret = true;
+		} else {
+			const char *pszParmName = service->param_names[count];
+			const char *pszParmValue = service->param_values[count];
+
+			DEBUGADD(4, ("doing parameter %s = %s\n", pszParmName, pszParmValue));
+
+			ret = lp_do_parameter(bInGlobalSection ? -2 : iServiceIndex,
+					      pszParmName, pszParmValue);
+		}
+
 		if (ret != true) {
 			return false;
 		}
@@ -2144,7 +2154,18 @@ static bool process_registry_globals(void)
 
 	add_to_file_list(NULL, &file_lists, INCLUDE_REGISTRY_NAME, INCLUDE_REGISTRY_NAME);
 
-	ret = do_parameter("registry shares", "yes", NULL);
+	if (!bInGlobalSection && bGlobalOnly) {
+		ret = true;
+	} else {
+		const char *pszParmName = "registry shares";
+		const char *pszParmValue = "yes";
+
+		DEBUGADD(4, ("doing parameter %s = %s\n", pszParmName, pszParmValue));
+
+		ret = lp_do_parameter(bInGlobalSection ? -2 : iServiceIndex,
+				      pszParmName, pszParmValue);
+	}
+
 	if (!ret) {
 		return ret;
 	}
-- 
1.9.3



More information about the samba-technical mailing list