[SCM] Samba Shared Repository - branch master updated

Michael Adam obnox at samba.org
Wed Jan 29 19:32:04 MST 2014


The branch, master has been updated
       via  c2b8d31 param: Do not check defaults_saved in is_default
       via  54f3807 lib/param: Do not check defaults_saved in is_default
       via  ebb04f4 param: Remove unused lp_is_default (once used by SWAT)
       via  02d60cd param: Remove unused lp_next_parameter (once used by SWAT)
       via  0f119aa lib/param: Remove unused lpcfg_next_parameter (once used by SWAT)
       via  c813e91 param: remove unused bPreferredMaster from s3 loadparm in LOADPARM_EXTRA_GLOBALS
       via  b13a160 lib/param: Make and use lpcfg_equal_parameter in common
       via  7eecd7c lib/param: Make and use common lpcfg_map_parameter
       via  d2782ac s3-param: Use lpcfg_dump_a_parameter in dump_a_parameter
       via  0d506d2 s3-param: Make dump_a_parameter use lp_paramater() rather than an open-coded loop
       via  36c88ca lib/param: Make lpcfg_print_parameter() common
       via  5c2aac0 param: pad permissions to 3 digits and update docs to be consistent
      from  c7790d6 lib/param: Fix copy_service to handle BOOLREV

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit c2b8d31b133ac1d1e18eae5e52188b2b0b7ea008
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Mon Jan 27 15:14:38 2014 +1300

    param: Do not check defaults_saved in is_default
    
    We only call is_default if defaults_saved == true, so this static variable
    reference is not required.
    
    Andrew Bartlett
    
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Michael Adam <obnox at samba.org>
    
    Autobuild-User(master): Michael Adam <obnox at samba.org>
    Autobuild-Date(master): Thu Jan 30 03:31:29 CET 2014 on sn-devel-104

commit 54f380744a36ec5d91364029af8a0cec2e46438f
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Mon Jan 27 15:13:49 2014 +1300

    lib/param: Do not check defaults_saved in is_default
    
    We only call is_default if defaults_saved == true, so this static variable
    reference is not required.
    
    Andrew Bartlett
    
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Michael Adam <obnox at samba.org>

commit ebb04f4037cc80df7a71c4d08184f8e9a8c60cdc
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Mon Jan 27 15:00:02 2014 +1300

    param: Remove unused lp_is_default (once used by SWAT)
    
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Michael Adam <obnox at samba.org>

commit 02d60cd028e2d33b591056b8b07b2fc9b9c262b1
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Mon Jan 27 14:58:21 2014 +1300

    param: Remove unused lp_next_parameter (once used by SWAT)
    
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Michael Adam <obnox at samba.org>

commit 0f119aa9c182b0e3be0808b924cf47f73c812ea6
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Mon Jan 27 14:58:14 2014 +1300

    lib/param: Remove unused lpcfg_next_parameter (once used by SWAT)
    
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Michael Adam <obnox at samba.org>

commit c813e91171b0a73ed79d4954563ed21d34baae8b
Author: Garming Sam <garming at catalyst.net.nz>
Date:   Fri Jan 10 14:47:25 2014 +1300

    param: remove unused bPreferredMaster from s3 loadparm in LOADPARM_EXTRA_GLOBALS
    
    Signed-off-by: Garming Sam <garming at catalyst.net.nz>
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Michael Adam <obnox at samba.org>

commit b13a160666acd0ad11ec91d701a3a1a4504eec93
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Wed Jan 15 15:56:34 2014 +1300

    lib/param: Make and use lpcfg_equal_parameter in common
    
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Michael Adam <obnox at samba.org>

commit 7eecd7c7764684cb7c273cdf6365262924d8020d
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Wed Jan 15 14:19:21 2014 +1300

    lib/param: Make and use common lpcfg_map_parameter
    
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Michael Adam <obnox at samba.org>

commit d2782aceb3574c5f6d472c52f05fd7e4d6ef541f
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Wed Jan 15 13:48:22 2014 +1300

    s3-param: Use lpcfg_dump_a_parameter in dump_a_parameter
    
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Michael Adam <obnox at samba.org>

commit 0d506d26fc6a3af1bfd77ad358a9c90ae497f8ab
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Wed Jan 15 13:42:55 2014 +1300

    s3-param: Make dump_a_parameter use lp_paramater() rather than an open-coded loop
    
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Michael Adam <obnox at samba.org>

commit 36c88ca9c194d49f51894bc00d3a1778d3800690
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Wed Jan 15 13:39:14 2014 +1300

    lib/param: Make lpcfg_print_parameter() common
    
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Michael Adam <obnox at samba.org>

commit 5c2aac0f8e52e097965d9e2aaeb305b28c0feef0
Author: Garming Sam <garming at catalyst.net.nz>
Date:   Fri Jan 3 12:22:19 2014 +1300

    param: pad permissions to 3 digits and update docs to be consistent
    
    Signed-off-by: Garming Sam <garming at catalyst.net.nz>
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Michael Adam <obnox at samba.org>

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

Summary of changes:
 docs-xml/smbdotconf/security/forcecreatemode.xml   |    2 +-
 .../smbdotconf/security/forcedirectorymode.xml     |    2 +-
 lib/param/loadparm.c                               |   89 ++-----
 lib/param/loadparm.h                               |    6 +
 lib/param/param.h                                  |    7 -
 source3/include/proto.h                            |    2 -
 source3/param/loadparm.c                           |  289 ++------------------
 7 files changed, 52 insertions(+), 345 deletions(-)


Changeset truncated at 500 lines:

diff --git a/docs-xml/smbdotconf/security/forcecreatemode.xml b/docs-xml/smbdotconf/security/forcecreatemode.xml
index 5655cd4..2b7f1bb 100644
--- a/docs-xml/smbdotconf/security/forcecreatemode.xml
+++ b/docs-xml/smbdotconf/security/forcecreatemode.xml
@@ -20,6 +20,6 @@
 <related>create mask</related>
 <related>inherit permissions</related>
 
-<value type="default">000</value>
+<value type="default">0000</value>
 <value type="example">0755</value>
 </samba:parameter>
diff --git a/docs-xml/smbdotconf/security/forcedirectorymode.xml b/docs-xml/smbdotconf/security/forcedirectorymode.xml
index 7effc0e..211ea4c 100644
--- a/docs-xml/smbdotconf/security/forcedirectorymode.xml
+++ b/docs-xml/smbdotconf/security/forcedirectorymode.xml
@@ -17,7 +17,7 @@
     read/write/execute bits set for the 'user'.</para>
 </description>
 
-<value type="default">000</value>
+<value type="default">0000</value>
 <value type="example">0755</value>
 
 <related>directory mask</related>
diff --git a/lib/param/loadparm.c b/lib/param/loadparm.c
index cf7af34..933afcb 100644
--- a/lib/param/loadparm.c
+++ b/lib/param/loadparm.c
@@ -327,7 +327,6 @@ FN_GLOBAL_CONST_STRING(cachedir, szCacheDir)
 FN_GLOBAL_CONST_STRING(statedir, szStateDir)
 
 /* local prototypes */
-static int map_parameter(const char *pszParmName);
 static struct loadparm_service *getservicebyname(struct loadparm_context *lp_ctx,
 					const char *pszServiceName);
 static void copy_service(struct loadparm_service *pserviceDest,
@@ -802,7 +801,7 @@ bool lpcfg_add_printer(struct loadparm_context *lp_ctx,
  * Returns False if the parameter string is not recognised, else TRUE.
  */
 
-static int map_parameter(const char *pszParmName)
+int lpcfg_map_parameter(const char *pszParmName)
 {
 	int iIndex;
 
@@ -831,7 +830,7 @@ struct parm_struct *lpcfg_parm_struct(struct loadparm_context *lp_ctx, const cha
 		return lp_ctx->s3_fns->get_parm_struct(name);
 	}
 
-	parmnum = map_parameter(name);
+	parmnum = lpcfg_map_parameter(name);
 	if (parmnum == -1) return NULL;
 	return &parm_table[parmnum];
 }
@@ -872,7 +871,7 @@ bool lpcfg_parm_is_cmdline(struct loadparm_context *lp_ctx, const char *name)
 		return false;
 	}
 
-	parmnum = map_parameter(name);
+	parmnum = lpcfg_map_parameter(name);
 	if (parmnum == -1) return false;
 
 	return lp_ctx->flags[parmnum] & FLAG_CMDLINE;
@@ -1431,7 +1430,7 @@ mark_non_default:
 bool lpcfg_do_global_parameter(struct loadparm_context *lp_ctx,
 			       const char *pszParmName, const char *pszParmValue)
 {
-	int parmnum = map_parameter(pszParmName);
+	int parmnum = lpcfg_map_parameter(pszParmName);
 	void *parm_ptr;
 
 	if (parmnum < 0) {
@@ -1460,7 +1459,7 @@ bool lpcfg_do_service_parameter(struct loadparm_context *lp_ctx,
 {
 	void *parm_ptr;
 	int i;
-	int parmnum = map_parameter(pszParmName);
+	int parmnum = lpcfg_map_parameter(pszParmName);
 
 	if (parmnum < 0) {
 		if (strchr(pszParmName, ':')) {
@@ -1550,7 +1549,7 @@ bool lpcfg_set_cmdline(struct loadparm_context *lp_ctx, const char *pszParmName,
 		return lp_ctx->s3_fns->set_cmdline(pszParmName, pszParmValue);
 	}
 
-	parmnum = map_parameter(pszParmName);
+	parmnum = lpcfg_map_parameter(pszParmName);
 
 	while (isspace((unsigned char)*pszParmValue)) pszParmValue++;
 
@@ -1626,7 +1625,7 @@ bool lpcfg_set_option(struct loadparm_context *lp_ctx, const char *option)
  * Print a parameter of the specified type.
  */
 
-static void print_parameter(struct parm_struct *p, void *ptr, FILE * f)
+void lpcfg_print_parameter(struct parm_struct *p, void *ptr, FILE * f)
 {
 	/* For the seperation of lists values that we print below */
 	const char *list_sep = ", ";
@@ -1665,7 +1664,7 @@ static void print_parameter(struct parm_struct *p, void *ptr, FILE * f)
 			if (val == -1) {
 				fprintf(f, "-1");
 			} else {
-				fprintf(f, "0%o", val);
+				fprintf(f, "0%03o", val);
 			}
 			break;
 		}
@@ -1706,7 +1705,7 @@ static void print_parameter(struct parm_struct *p, void *ptr, FILE * f)
  * Check if two parameters are equal.
  */
 
-static bool equal_parameter(parm_type type, void *ptr1, void *ptr2)
+ bool lpcfg_equal_parameter(parm_type type, void *ptr1, void *ptr2)
 {
 	switch (type) {
 		case P_BOOL:
@@ -1798,8 +1797,6 @@ static bool do_section(const char *pszSectionName, void *userdata)
 static bool is_default(struct loadparm_service *sDefault, int i)
 {
 	void *def_ptr = ((char *)sDefault) + parm_table[i].offset;
-	if (!defaults_saved)
-		return false;
 	switch (parm_table[i].type) {
 		case P_CMDLIST:
 		case P_LIST:
@@ -1844,7 +1841,7 @@ static void dump_globals(struct loadparm_context *lp_ctx, FILE *f,
 			if (!show_defaults && (lp_ctx->flags[i] & FLAG_DEFAULT))
 				continue;
 			fprintf(f, "\t%s = ", parm_table[i].label);
-			print_parameter(&parm_table[i], lpcfg_parm_ptr(lp_ctx, NULL, &parm_table[i]), f);
+			lpcfg_print_parameter(&parm_table[i], lpcfg_parm_ptr(lp_ctx, NULL, &parm_table[i]), f);
 			fprintf(f, "\n");
 	}
 	if (lp_ctx->globals->param_opt != NULL) {
@@ -1887,16 +1884,16 @@ static void dump_a_service(struct loadparm_service * pService, struct loadparm_s
 					}
 				}
 			} else {
-				if (equal_parameter(parm_table[i].type,
-						    ((char *)pService) +
-						    parm_table[i].offset,
-						    ((char *)sDefault) +
-						    parm_table[i].offset))
+				if (lpcfg_equal_parameter(parm_table[i].type,
+							  ((char *)pService) +
+							  parm_table[i].offset,
+							  ((char *)sDefault) +
+							  parm_table[i].offset))
 					continue;
 			}
 
 			fprintf(f, "\t%s = ", parm_table[i].label);
-			print_parameter(&parm_table[i],
+			lpcfg_print_parameter(&parm_table[i],
 					((char *)pService) + parm_table[i].offset, f);
 			fprintf(f, "\n");
 		}
@@ -1926,64 +1923,12 @@ bool lpcfg_dump_a_parameter(struct loadparm_context *lp_ctx,
 
 	ptr = lpcfg_parm_ptr(lp_ctx, service,parm);
 
-	print_parameter(parm, ptr, f);
+	lpcfg_print_parameter(parm, ptr, f);
 	fprintf(f, "\n");
 	return true;
 }
 
 /**
- * Return info about the next parameter in a service.
- * snum==-1 gives the globals.
- * Return NULL when out of parameters.
- */
-
-
-struct parm_struct *lpcfg_next_parameter(struct loadparm_context *lp_ctx, int snum, int *i,
-					 int allparameters)
-{
-	if (snum == -1) {
-		/* do the globals */
-		for (; parm_table[*i].label; (*i)++) {
-			if ((*parm_table[*i].label == '-'))
-				continue;
-
-			if ((*i) > 0
-			    && (parm_table[*i].offset ==
-				parm_table[(*i) - 1].offset)
-			    && (parm_table[*i].p_class ==
-				parm_table[(*i) - 1].p_class))
-				continue;
-
-			return &parm_table[(*i)++];
-		}
-	} else {
-		struct loadparm_service *pService = lp_ctx->services[snum];
-
-		for (; parm_table[*i].label; (*i)++) {
-			if (parm_table[*i].p_class == P_LOCAL &&
-			    (*parm_table[*i].label != '-') &&
-			    ((*i) == 0 ||
-			     (parm_table[*i].offset !=
-			      parm_table[(*i) - 1].offset)))
-			{
-				if (allparameters ||
-				    !equal_parameter(parm_table[*i].type,
-						     ((char *)pService) +
-						     parm_table[*i].offset,
-						     ((char *)lp_ctx->sDefault) +
-						     parm_table[*i].offset))
-				{
-					return &parm_table[(*i)++];
-				}
-			}
-		}
-	}
-
-	return NULL;
-}
-
-
-/**
  * Auto-load some home services.
  */
 static void lpcfg_add_auto_services(struct loadparm_context *lp_ctx,
diff --git a/lib/param/loadparm.h b/lib/param/loadparm.h
index 0f0e90f..fffdee2 100644
--- a/lib/param/loadparm.h
+++ b/lib/param/loadparm.h
@@ -229,4 +229,10 @@ int lp_find_server_role(int server_role, int security, int domain_logons, int do
 int lp_find_security(int server_role, int security);
 bool lp_is_security_and_server_role_valid(int server_role, int security);
 
+/**
+ * Check if two parameters are equal.
+ */
+
+bool lpcfg_equal_parameter(parm_type type, void *ptr1, void *ptr2);
+
 #endif /* _LOADPARM_H */
diff --git a/lib/param/param.h b/lib/param/param.h
index 7e73dd0..77c3c77 100644
--- a/lib/param/param.h
+++ b/lib/param/param.h
@@ -141,13 +141,6 @@ bool lpcfg_dump_a_parameter(struct loadparm_context *lp_ctx,
 			 const char *parm_name, FILE * f);
 
 /**
- * Return info about the next service  in a service. snum==-1 gives the globals.
- * Return NULL when out of parameters.
- */
-struct parm_struct *lpcfg_next_parameter(struct loadparm_context *lp_ctx, int snum, int *i,
-				      int allparameters);
-
-/**
  * Unload unused services.
  */
 void lpcfg_killunused(struct loadparm_context *lp_ctx,
diff --git a/source3/include/proto.h b/source3/include/proto.h
index ceaa902..9024f6b 100644
--- a/source3/include/proto.h
+++ b/source3/include/proto.h
@@ -1050,10 +1050,8 @@ void *lp_local_ptr_by_snum(int snum, struct parm_struct *parm);
 bool lp_do_parameter(int snum, const char *pszParmName, const char *pszParmValue);
 bool lp_set_cmdline(const char *pszParmName, const char *pszParmValue);
 bool lp_set_option(const char *option);
-bool lp_is_default(int snum, struct parm_struct *parm);
 bool dump_a_parameter(int snum, char *parm_name, FILE * f, bool isGlobal);
 struct parm_struct *lp_get_parameter(const char *param_name);
-struct parm_struct *lp_next_parameter(int snum, int *i, int allparameters);
 bool lp_snum_ok(int iService);
 void lp_add_one_printer(const char *name, const char *comment,
 			const char *location, void *pdata);
diff --git a/source3/param/loadparm.c b/source3/param/loadparm.c
index 489a21f..4a9e0d7 100644
--- a/source3/param/loadparm.c
+++ b/source3/param/loadparm.c
@@ -57,6 +57,7 @@
 #include "system/filesys.h"
 #include "util_tdb.h"
 #include "lib/param/loadparm.h"
+#include "lib/param/param.h"
 #include "printing.h"
 #include "lib/smbconf/smbconf.h"
 #include "lib/smbconf/smbconf_init.h"
@@ -131,8 +132,7 @@ static bool defaults_saved = false;
 	char *tls_certfile;						\
 	char *tls_cafile;						\
 	char *tls_crlfile;						\
-	char *tls_dhpfile;						\
-	int bPreferredMaster;
+	char *tls_dhpfile;
 
 #include "param/param_global.h"
 
@@ -633,8 +633,6 @@ static void free_global_parameters(void)
 	TALLOC_FREE(Globals.ctx);
 }
 
-static int map_parameter(const char *pszParmName);
-
 struct lp_stored_option {
 	struct lp_stored_option *prev, *next;
 	const char *label;
@@ -1854,7 +1852,7 @@ bool lp_add_printer(const char *pszPrintername, int iDefaultService)
 
 bool lp_parameter_is_valid(const char *pszParmName)
 {
-	return ((map_parameter(pszParmName) != -1) ||
+	return ((lpcfg_map_parameter(pszParmName) != -1) ||
 		(strchr(pszParmName, ':') != NULL));
 }
 
@@ -1867,7 +1865,7 @@ bool lp_parameter_is_valid(const char *pszParmName)
 
 bool lp_parameter_is_global(const char *pszParmName)
 {
-	int num = map_parameter(pszParmName);
+	int num = lpcfg_map_parameter(pszParmName);
 
 	if (num >= 0) {
 		return (parm_table[num].p_class == P_GLOBAL);
@@ -1888,7 +1886,7 @@ bool lp_parameter_is_canonical(const char *parm_name)
 		return false;
 	}
 
-	return (map_parameter(parm_name) ==
+	return (lpcfg_map_parameter(parm_name) ==
 		map_parameter_canonical(parm_name, NULL));
 }
 
@@ -1966,28 +1964,6 @@ bool lp_canonicalize_parameter_with_value(const char *parm_name,
 }
 
 /***************************************************************************
- Map a parameter's string representation to something we can use. 
- Returns false if the parameter string is not recognised, else TRUE.
-***************************************************************************/
-
-static int map_parameter(const char *pszParmName)
-{
-	int iIndex;
-
-	for (iIndex = 0; parm_table[iIndex].label; iIndex++)
-		if (strwicmp(parm_table[iIndex].label, pszParmName) == 0)
-			return (iIndex);
-
-	/* Warn only if it isn't parametric option */
-	if (strchr(pszParmName, ':') == NULL)
-		DEBUG(1, ("Unknown parameter encountered: \"%s\"\n", pszParmName));
-	/* We do return 'fail' for parametric options as well because they are
-	   stored in different storage
-	 */
-	return (-1);
-}
-
-/***************************************************************************
  Map a parameter's string representation to the index of the canonical
  form of the parameter (it might be a synonym).
  Returns -1 if the parameter string is not recognised.
@@ -1998,7 +1974,7 @@ static int map_parameter_canonical(const char *pszParmName, bool *inverse)
 	int parm_num, canon_num;
 	bool loc_inverse = false;
 
-	parm_num = map_parameter(pszParmName);
+	parm_num = lpcfg_map_parameter(pszParmName);
 	if ((parm_num < 0) || !(parm_table[parm_num].flags & FLAG_HIDE)) {
 		/* invalid, parametric or no canidate for synonyms ... */
 		goto done;
@@ -3107,7 +3083,7 @@ static bool handle_printing(struct loadparm_context *unused, int snum, const cha
 	struct loadparm_service *s;
 
 	if ( parm_num == -1 )
-		parm_num = map_parameter( "printing" );
+		parm_num = lpcfg_map_parameter( "printing" );
 
 	lp_set_enum_parm( &parm_table[parm_num], pszParmValue, (int*)ptr );
 
@@ -3178,7 +3154,7 @@ bool lp_do_parameter(int snum, const char *pszParmName, const char *pszParmValue
 	void *parm_ptr = NULL;	/* where we are going to store the result */
 	struct parmlist_entry **opt_list;
 
-	parmnum = map_parameter(pszParmName);
+	parmnum = lpcfg_map_parameter(pszParmName);
 
 	if (parmnum < 0) {
 		if (strchr(pszParmName, ':') == NULL) {
@@ -3320,7 +3296,7 @@ FLAG_CMDLINE won't be overridden by loads from smb.conf.
 static bool lp_set_cmdline_helper(const char *pszParmName, const char *pszParmValue, bool store_values)
 {
 	int parmnum, i;
-	parmnum = map_parameter(pszParmName);
+	parmnum = lpcfg_map_parameter(pszParmName);
 	if (parmnum >= 0) {
 		parm_table[parmnum].flags &= ~FLAG_CMDLINE;
 		if (!lp_do_parameter(-1, pszParmName, pszParmValue)) {
@@ -3413,126 +3389,6 @@ bool lp_set_option(const char *option)
 	return ret;
 }
 
-/**************************************************************************
- Print a parameter of the specified type.
-***************************************************************************/
-
-static void print_parameter(struct parm_struct *p, void *ptr, FILE * f)
-{
-	/* For the seperation of lists values that we print below */
-	const char *list_sep = ", ";
-	int i;
-	switch (p->type)
-	{
-		case P_ENUM:
-			for (i = 0; p->enum_list[i].name; i++) {
-				if (*(int *)ptr == p->enum_list[i].value) {
-					fprintf(f, "%s",
-						p->enum_list[i].name);
-					break;
-				}
-			}
-			break;
-
-		case P_BOOL:
-			fprintf(f, "%s", BOOLSTR(*(bool *)ptr));
-			break;
-
-		case P_BOOLREV:
-			fprintf(f, "%s", BOOLSTR(!*(bool *)ptr));
-			break;
-
-		case P_INTEGER:
-		case P_BYTES:
-			fprintf(f, "%d", *(int *)ptr);
-			break;
-
-		case P_CHAR:
-			fprintf(f, "%c", *(char *)ptr);
-			break;
-
-		case P_OCTAL: {
-			int val = *(int *)ptr; 
-			if (val == -1) {
-				fprintf(f, "-1");
-			} else {
-				fprintf(f, "0%o", val);
-			}
-			break;
-		}
-
-		case P_CMDLIST:
-			list_sep = " ";
-			/* fall through */
-		case P_LIST:
-			if ((char ***)ptr && *(char ***)ptr) {
-				char **list = *(char ***)ptr;
-				for (; *list; list++) {
-					/* surround strings with whitespace in double quotes */
-					if (*(list+1) == NULL) {
-						/* last item, no extra separator */
-						list_sep = "";
-					}
-					if ( strchr_m( *list, ' ' ) ) {
-						fprintf(f, "\"%s\"%s", *list, list_sep);
-					} else {
-						fprintf(f, "%s%s", *list, list_sep);
-					}
-				}
-			}
-			break;
-
-		case P_STRING:
-		case P_USTRING:
-			if (*(char **)ptr) {
-				fprintf(f, "%s", *(char **)ptr);
-			}
-			break;
-		case P_SEP:
-			break;
-	}
-}
-
-/***************************************************************************
- Check if two parameters are equal.
-***************************************************************************/
-
-static bool equal_parameter(parm_type type, void *ptr1, void *ptr2)
-{
-	switch (type) {
-		case P_BOOL:
-		case P_BOOLREV:
-			return (*((bool *)ptr1) == *((bool *)ptr2));
-
-		case P_INTEGER:
-		case P_ENUM:
-		case P_OCTAL:
-		case P_BYTES:
-			return (*((int *)ptr1) == *((int *)ptr2));
-
-		case P_CHAR:
-			return (*((char *)ptr1) == *((char *)ptr2));
-


-- 
Samba Shared Repository


More information about the samba-cvs mailing list