param: Merge struct parm_struct definitions
authorAndrew Bartlett <abartlet@samba.org>
Wed, 29 Jun 2011 03:18:57 +0000 (13:18 +1000)
committerAndrew Bartlett <abartlet@samba.org>
Wed, 29 Jun 2011 05:44:08 +0000 (15:44 +1000)
This will allow the parameter tables to be shared between source3 and
source4.

Andrew Bartlett

source3/include/smb.h
source3/param/loadparm.c
source4/param/loadparm.c
source4/param/loadparm.h

index 25e3bacc729a80117c85f13216b20a0a89ebcf71..152db48db542f6dd33d0487de11b8b7343c67243 100644 (file)
@@ -726,13 +726,15 @@ struct enum_list {
 };
 
 struct loadparm_service;
+struct loadparm_context;
 
 struct parm_struct {
        const char *label;
        parm_type type;
        parm_class p_class;
        offset_t offset;
-       bool (*special)(int snum, const char *, char **);
+       bool (*special)(struct loadparm_context *lpcfg_ctx,
+                       int snum, const char *, char **);
        const struct enum_list *enum_list;
        unsigned flags;
        union {
index 430c2de5ac76f6834d52177004ee83b646e888a8..3c213420ae32ba08d17f71f3647a6bc5c1b2e628 100644 (file)
@@ -698,18 +698,18 @@ static int default_server_announce;
 #define NUMPARAMETERS (sizeof(parm_table) / sizeof(struct parm_struct))
 
 /* prototypes for the special type handlers */
-static bool handle_include( int snum, const char *pszParmValue, char **ptr);
-static bool handle_copy( int snum, const char *pszParmValue, char **ptr);
-static bool handle_idmap_backend(int snum, const char *pszParmValue, char **ptr);
-static bool handle_idmap_uid( int snum, const char *pszParmValue, char **ptr);
-static bool handle_idmap_gid( int snum, const char *pszParmValue, char **ptr);
-static bool handle_debug_list( int snum, const char *pszParmValue, char **ptr );
-static bool handle_realm( int snum, const char *pszParmValue, char **ptr );
-static bool handle_netbios_aliases( int snum, const char *pszParmValue, char **ptr );
-static bool handle_charset( int snum, const char *pszParmValue, char **ptr );
-static bool handle_dos_charset( int snum, const char *pszParmValue, char **ptr );
-static bool handle_printing( int snum, const char *pszParmValue, char **ptr);
-static bool handle_ldap_debug_level( int snum, const char *pszParmValue, char **ptr);
+static bool handle_include(struct loadparm_context *unused, int snum, const char *pszParmValue, char **ptr);
+static bool handle_copy(struct loadparm_context *unused, int snum, const char *pszParmValue, char **ptr);
+static bool handle_idmap_backend(struct loadparm_context *unused, int snum, const char *pszParmValue, char **ptr);
+static bool handle_idmap_uid(struct loadparm_context *unused, int snum, const char *pszParmValue, char **ptr);
+static bool handle_idmap_gid(struct loadparm_context *unused, int snum, const char *pszParmValue, char **ptr);
+static bool handle_debug_list(struct loadparm_context *unused, int snum, const char *pszParmValue, char **ptr );
+static bool handle_realm(struct loadparm_context *unused, int snum, const char *pszParmValue, char **ptr );
+static bool handle_netbios_aliases(struct loadparm_context *unused, int snum, const char *pszParmValue, char **ptr );
+static bool handle_charset(struct loadparm_context *unused, int snum, const char *pszParmValue, char **ptr );
+static bool handle_dos_charset(struct loadparm_context *unused, int snum, const char *pszParmValue, char **ptr );
+static bool handle_printing(struct loadparm_context *unused, int snum, const char *pszParmValue, char **ptr);
+static bool handle_ldap_debug_level(struct loadparm_context *unused, int snum, const char *pszParmValue, char **ptr);
 
 static void set_default_server_announce_type(void);
 static void set_allowed_client_auth(void);
@@ -7388,7 +7388,7 @@ static void init_iconv(void)
                                                      true, global_iconv_handle);
 }
 
-static bool handle_charset(int snum, const char *pszParmValue, char **ptr)
+static bool handle_charset(struct loadparm_context *unused, int snum, const char *pszParmValue, char **ptr)
 {
        if (strcmp(*ptr, pszParmValue) != 0) {
                string_set(ptr, pszParmValue);
@@ -7397,7 +7397,7 @@ static bool handle_charset(int snum, const char *pszParmValue, char **ptr)
        return True;
 }
 
-static bool handle_dos_charset(int snum, const char *pszParmValue, char **ptr)
+static bool handle_dos_charset(struct loadparm_context *unused, int snum, const char *pszParmValue, char **ptr)
 {
        bool is_utf8 = false;
        size_t len = strlen(pszParmValue);
@@ -7434,7 +7434,7 @@ static bool handle_dos_charset(int snum, const char *pszParmValue, char **ptr)
        return true;
 }
 
-static bool handle_realm(int snum, const char *pszParmValue, char **ptr)
+static bool handle_realm(struct loadparm_context *unused, int snum, const char *pszParmValue, char **ptr)
 {
        bool ret = true;
        char *realm = strupper_talloc(talloc_tos(), pszParmValue);
@@ -7449,7 +7449,7 @@ static bool handle_realm(int snum, const char *pszParmValue, char **ptr)
        return ret;
 }
 
-static bool handle_netbios_aliases(int snum, const char *pszParmValue, char **ptr)
+static bool handle_netbios_aliases(struct loadparm_context *unused, int snum, const char *pszParmValue, char **ptr)
 {
        TALLOC_FREE(Globals.szNetbiosAliases);
        Globals.szNetbiosAliases = str_list_make_v3(NULL, pszParmValue, NULL);
@@ -7461,7 +7461,7 @@ static bool handle_netbios_aliases(int snum, const char *pszParmValue, char **pt
 ***************************************************************************/
 static bool bAllowIncludeRegistry = true;
 
-static bool handle_include(int snum, const char *pszParmValue, char **ptr)
+static bool handle_include(struct loadparm_context *unused, int snum, const char *pszParmValue, char **ptr)
 {
        char *fname;
 
@@ -7514,7 +7514,7 @@ static bool handle_include(int snum, const char *pszParmValue, char **ptr)
  Handle the interpretation of the copy parameter.
 ***************************************************************************/
 
-static bool handle_copy(int snum, const char *pszParmValue, char **ptr)
+static bool handle_copy(struct loadparm_context *unused, int snum, const char *pszParmValue, char **ptr)
 {
        bool bRetval;
        int iTemp;
@@ -7546,7 +7546,7 @@ static bool handle_copy(int snum, const char *pszParmValue, char **ptr)
        return (bRetval);
 }
 
-static bool handle_ldap_debug_level(int snum, const char *pszParmValue, char **ptr)
+static bool handle_ldap_debug_level(struct loadparm_context *unused, int snum, const char *pszParmValue, char **ptr)
 {
        Globals.ldap_debug_level = lp_int(pszParmValue);
        init_ldap_debugging();
@@ -7600,7 +7600,7 @@ bool lp_idmap_gid(gid_t *low, gid_t *high)
         return True;
 }
 
-static bool handle_idmap_backend(int snum, const char *pszParmValue, char **ptr)
+static bool handle_idmap_backend(struct loadparm_context *unused, int snum, const char *pszParmValue, char **ptr)
 {
        lp_do_parameter(snum, "idmap config * : backend", pszParmValue);
 
@@ -7609,14 +7609,14 @@ static bool handle_idmap_backend(int snum, const char *pszParmValue, char **ptr)
 
 /* Do some simple checks on "idmap [ug]id" parameter values */
 
-static bool handle_idmap_uid(int snum, const char *pszParmValue, char **ptr)
+static bool handle_idmap_uid(struct loadparm_context *unused, int snum, const char *pszParmValue, char **ptr)
 {
        lp_do_parameter(snum, "idmap config * : range", pszParmValue);
 
        return True;
 }
 
-static bool handle_idmap_gid(int snum, const char *pszParmValue, char **ptr)
+static bool handle_idmap_gid(struct loadparm_context *unused, int snum, const char *pszParmValue, char **ptr)
 {
        lp_do_parameter(snum, "idmap config * : range", pszParmValue);
 
@@ -7627,7 +7627,7 @@ static bool handle_idmap_gid(int snum, const char *pszParmValue, char **ptr)
  Handle the DEBUG level list.
 ***************************************************************************/
 
-static bool handle_debug_list( int snum, const char *pszParmValueIn, char **ptr )
+static bool handle_debug_list(struct loadparm_context *unused, int snum, const char *pszParmValueIn, char **ptr )
 {
        string_set(ptr, pszParmValueIn);
        return debug_parse_levels(pszParmValueIn);
@@ -7706,7 +7706,7 @@ static void lp_set_enum_parm( struct parm_struct *parm, const char *pszParmValue
 /***************************************************************************
 ***************************************************************************/
 
-static bool handle_printing(int snum, const char *pszParmValue, char **ptr)
+static bool handle_printing(struct loadparm_context *unused, int snum, const char *pszParmValue, char **ptr)
 {
        static int parm_num = -1;
        struct loadparm_service *s;
@@ -7840,7 +7840,7 @@ bool lp_do_parameter(int snum, const char *pszParmName, const char *pszParmValue
 
        /* if it is a special case then go ahead */
        if (parm_table[parmnum].special) {
-               return parm_table[parmnum].special(snum, pszParmValue,
+               return parm_table[parmnum].special(NULL, snum, pszParmValue,
                                                   (char **)parm_ptr);
        }
 
index b95a400b34db49a431e3519d05cb74e9d0d9cfae..b1e3a00f4c6d88fca4d72fe1fa04e7cfa58a8b75 100644 (file)
@@ -106,15 +106,15 @@ static bool defaults_saved = false;
 
 
 /* prototypes for the special type handlers */
-static bool handle_include(struct loadparm_context *lp_ctx,
+static bool handle_include(struct loadparm_context *lp_ctx, int unused,
                           const char *pszParmValue, char **ptr);
-static bool handle_realm(struct loadparm_context *lp_ctx,
+static bool handle_realm(struct loadparm_context *lp_ctx, int unused,
                         const char *pszParmValue, char **ptr);
-static bool handle_copy(struct loadparm_context *lp_ctx,
+static bool handle_copy(struct loadparm_context *lp_ctx, int unused,
                        const char *pszParmValue, char **ptr);
-static bool handle_debuglevel(struct loadparm_context *lp_ctx,
+static bool handle_debuglevel(struct loadparm_context *lp_ctx, int unused,
                              const char *pszParmValue, char **ptr);
-static bool handle_logfile(struct loadparm_context *lp_ctx,
+static bool handle_logfile(struct loadparm_context *lp_ctx, int unused,
                           const char *pszParmValue, char **ptr);
 
 static const struct enum_list enum_protocol[] = {
@@ -1367,7 +1367,7 @@ bool lpcfg_file_list_changed(struct loadparm_context *lp_ctx)
  Handle the "realm" parameter
 ***************************************************************************/
 
-static bool handle_realm(struct loadparm_context *lp_ctx,
+static bool handle_realm(struct loadparm_context *lp_ctx, int unused,
                         const char *pszParmValue, char **ptr)
 {
        string_set(lp_ctx, ptr, pszParmValue);
@@ -1385,7 +1385,7 @@ static bool handle_realm(struct loadparm_context *lp_ctx,
  Handle the include operation.
 ***************************************************************************/
 
-static bool handle_include(struct loadparm_context *lp_ctx,
+static bool handle_include(struct loadparm_context *lp_ctx, int unused,
                           const char *pszParmValue, char **ptr)
 {
        char *fname = standard_sub_basic(lp_ctx, pszParmValue);
@@ -1406,7 +1406,7 @@ static bool handle_include(struct loadparm_context *lp_ctx,
  Handle the interpretation of the copy parameter.
 ***************************************************************************/
 
-static bool handle_copy(struct loadparm_context *lp_ctx,
+static bool handle_copy(struct loadparm_context *lp_ctx, int unused,
                        const char *pszParmValue, char **ptr)
 {
        bool bRetval;
@@ -1436,7 +1436,7 @@ static bool handle_copy(struct loadparm_context *lp_ctx,
        return bRetval;
 }
 
-static bool handle_debuglevel(struct loadparm_context *lp_ctx,
+static bool handle_debuglevel(struct loadparm_context *lp_ctx, int unused,
                        const char *pszParmValue, char **ptr)
 {
 
@@ -1447,7 +1447,7 @@ static bool handle_debuglevel(struct loadparm_context *lp_ctx,
        return true;
 }
 
-static bool handle_logfile(struct loadparm_context *lp_ctx,
+static bool handle_logfile(struct loadparm_context *lp_ctx, int unused,
                        const char *pszParmValue, char **ptr)
 {
        debug_set_logfile(pszParmValue);
@@ -1547,7 +1547,7 @@ static bool set_variable(TALLOC_CTX *mem_ctx, int parmnum, void *parm_ptr,
        /* if it is a special case then go ahead */
        if (parm_table[parmnum].special) {
                bool ret;
-               ret = parm_table[parmnum].special(lp_ctx, pszParmValue,
+               ret = parm_table[parmnum].special(lp_ctx, -1, pszParmValue,
                                                  (char **)parm_ptr);
                if (!ret) {
                        return false;
index 7a76321b06e09c8d40dff9223f4f02b5f38398a4..4fc28e7f0534bfdf6eb28298276a3031cd097e69 100644 (file)
@@ -48,7 +48,8 @@ struct parm_struct {
        parm_type type;
        parm_class pclass;
        int offset;
-       bool (*special)(struct loadparm_context *, const char *, char **);
+       bool (*special)(struct loadparm_context *lpcfg_ctx,
+                       int snum, const char *, char **);
        const struct enum_list *enum_list;
        union {
                int bvalue;