param: use a single handle_include function between the two loadparms
authorGarming Sam <garming@catalyst.net.nz>
Fri, 21 Feb 2014 02:13:28 +0000 (15:13 +1300)
committerJeremy Allison <jra@samba.org>
Wed, 7 May 2014 17:49:16 +0000 (19:49 +0200)
Signed-off-by: Garming Sam <garming@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
lib/param/loadparm.c
lib/param/loadparm.h
lib/param/s3_param.h
source3/param/loadparm.c
source3/param/loadparm_ctx.c

index a707753a3e0762945b6659af0b512cdc261a1bc9..f4ee64973cb7d8ae0be16c9dc7daeeda0db8c783 100644 (file)
@@ -91,10 +91,6 @@ static bool defaults_saved = false;
 #define N_(x) x
 #endif
 
-/* prototypes for the special type handlers */
-static bool handle_include(struct loadparm_context *lp_ctx, int unused,
-                          const char *pszParmValue, char **ptr);
-
 #include "lib/param/param_table.c"
 
 /* local variables */
@@ -1105,10 +1101,16 @@ bool handle_realm(struct loadparm_context *lp_ctx, int unused,
  Handle the include operation.
 ***************************************************************************/
 
-static bool handle_include(struct loadparm_context *lp_ctx, int unused,
+bool handle_include(struct loadparm_context *lp_ctx, int unused,
                           const char *pszParmValue, char **ptr)
 {
-       char *fname = standard_sub_basic(lp_ctx, pszParmValue);
+       char *fname;
+
+       if (lp_ctx->s3_fns) {
+               return lp_ctx->s3_fns->lp_include(lp_ctx, unused, pszParmValue, ptr);
+       }
+
+       fname = standard_sub_basic(lp_ctx, pszParmValue);
 
        add_to_file_list(lp_ctx, &lp_ctx->file_lists, pszParmValue, fname);
 
index c9baed5c7c53fbdc2c3e746c5048c3bea3f0ab54..70443a97ead8c6230f1f51d0e8b3a6b5bd60ae8d 100644 (file)
@@ -263,6 +263,7 @@ struct loadparm_global * get_globals(void);
 char * lp_string(TALLOC_CTX *, const char *);
 bool lp_string_set(char **, const char *);
 int getservicebyname(const char *, struct loadparm_service *);
+bool lp_include(struct loadparm_context *, int, const char *, char **);
 
 /**
  * Check if two parameters are equal.
index 4ec922f07b6bdd050b8c43b0e81ed7667a7b6a6b..27ad192f7496485ed129f4e6298f70244e13117a 100644 (file)
@@ -16,6 +16,7 @@ struct loadparm_s3_helpers
        void (*dump)(FILE *f, bool show_defaults, int maxtoprint);
        char * (*lp_string)(TALLOC_CTX *ctx, const char *in);
        bool (*lp_string_set)(char **dest, const char *src);
+       bool (*lp_include)(struct loadparm_context*, int, const char *, char **);
        struct loadparm_global *globals;
 };
 
index 3f16b57b696ae03f6e5353e1b0c93081732e16c5..554106e25b7267fc2ea71426334129e9da828c26 100644 (file)
@@ -261,7 +261,6 @@ static struct file_lists *file_lists = NULL;
 #define NUMPARAMETERS (sizeof(parm_table) / sizeof(struct parm_struct))
 
 /* prototypes for the special type handlers */
-static bool handle_include(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);
@@ -2470,7 +2469,7 @@ static bool handle_netbios_aliases(struct loadparm_context *unused, int snum, co
 ***************************************************************************/
 static bool bAllowIncludeRegistry = true;
 
-static bool handle_include(struct loadparm_context *unused, int snum, const char *pszParmValue, char **ptr)
+bool lp_include(struct loadparm_context *unused, int snum, const char *pszParmValue, char **ptr)
 {
        char *fname;
 
index d13304ff210f19197a423fa5f60a6c03dce9edb7..b6e185e653a2ab24ecda06a28d768e60998f1537 100644 (file)
@@ -71,6 +71,7 @@ static struct loadparm_s3_helpers s3_fns =
        .dump = lp_dump,
        .lp_string = lp_string,
        .lp_string_set = lp_string_set,
+       .lp_include = lp_include,
 };
 
 const struct loadparm_s3_helpers *loadparm_s3_helpers(void)