]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
lib/param: introduce loadparm_substitution infrastructure
authorRalph Boehme <slow@samba.org>
Wed, 6 Nov 2019 15:25:00 +0000 (16:25 +0100)
committerStefan Metzmacher <metze@samba.org>
Wed, 27 Nov 2019 10:25:31 +0000 (10:25 +0000)
Pair-Programmed-With: Ralph Boehme <slow@samba.org>

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Signed-off-by: Ralph Boehme <slow@samba.org>
lib/param/loadparm.c
lib/param/loadparm.h

index 5334e9c4e5d0f3c2a6c2949d1b9310e86d940b0a..759a0a8ca4571dd6c1027245ec46dff29f8e8341 100644 (file)
@@ -61,6 +61,7 @@
 #include "system/network.h" /* needed for TCP_NODELAY */
 #include "../lib/util/dlinklist.h"
 #include "lib/param/param.h"
+#define LOADPARM_SUBSTITUTION_INTERNALS 1
 #include "lib/param/loadparm.h"
 #include "auth/gensec/gensec.h"
 #include "lib/param/s3_param.h"
@@ -3598,3 +3599,31 @@ bool lpcfg_lanman_auth(struct loadparm_context *lp_ctx)
                return false;
        }
 }
+
+static char *lpcfg_noop_substitution_fn(
+                       TALLOC_CTX *mem_ctx,
+                       const struct loadparm_substitution *lp_sub,
+                       const char *raw_value,
+                       void *private_data)
+{
+       return talloc_strdup(mem_ctx, raw_value);
+}
+
+static const struct loadparm_substitution global_noop_substitution = {
+       .substituted_string_fn = lpcfg_noop_substitution_fn,
+};
+
+const struct loadparm_substitution *lpcfg_noop_substitution(void)
+{
+       return &global_noop_substitution;
+}
+
+char *lpcfg_substituted_string(TALLOC_CTX *mem_ctx,
+                              const struct loadparm_substitution *lp_sub,
+                              const char *raw_value)
+{
+       return lp_sub->substituted_string_fn(mem_ctx,
+                                            lp_sub,
+                                            raw_value,
+                                            lp_sub->private_data);
+}
index d0ce3d312e14eb7687295a859378bad8ada0aaae..b2d4bd0fb6e5ce792ab29431a7a3bb0c72bfc9e4 100644 (file)
@@ -310,4 +310,21 @@ bool store_lp_set_cmdline(const char *pszParmName, const char *pszParmValue);
 
 int num_parameters(void);
 
+struct loadparm_substitution;
+#ifdef LOADPARM_SUBSTITUTION_INTERNALS
+struct loadparm_substitution {
+       char *(*substituted_string_fn)(
+                       TALLOC_CTX *mem_ctx,
+                       const struct loadparm_substitution *lp_sub,
+                       const char *raw_value,
+                       void *private_data);
+       void *private_data;
+};
+#endif /* LOADPARM_SUBSTITUTION_INTERNALS */
+
+const struct loadparm_substitution *lpcfg_noop_substitution(void);
+char *lpcfg_substituted_string(TALLOC_CTX *mem_ctx,
+                              const struct loadparm_substitution *lp_sub,
+                              const char *raw_value);
+
 #endif /* _LOADPARM_H */