summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGarming Sam <garming@catalyst.net.nz>2014-02-18 09:41:39 +1300
committerJeremy Allison <jra@samba.org>2014-05-07 19:49:14 +0200
commit29cdb716d0283d1cb67713f4bb6eb08e28dd98d5 (patch)
tree393b3ba79c8e3d8c73a8f57b12d2b4f7748dc7fd
parenta39d56933660e72742d9b438ae9c6b4c513c1449 (diff)
downloadsamba-29cdb716d0283d1cb67713f4bb6eb08e28dd98d5.tar.gz
samba-29cdb716d0283d1cb67713f4bb6eb08e28dd98d5.tar.xz
samba-29cdb716d0283d1cb67713f4bb6eb08e28dd98d5.zip
param: consolidate handle_realm between the two loadparms
Signed-off-by: Garming Sam <garming@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abartlet@samba.org> Reviewed-on: https://gerrit.samba.org/105 Reviewed-by: Andreas Schneider <asn@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
-rw-r--r--lib/param/loadparm.c32
-rw-r--r--source3/param/loadparm.c16
2 files changed, 23 insertions, 25 deletions
diff --git a/lib/param/loadparm.c b/lib/param/loadparm.c
index 5a6b361d9e..636c41bd20 100644
--- a/lib/param/loadparm.c
+++ b/lib/param/loadparm.c
@@ -98,8 +98,6 @@ static bool defaults_saved = false;
/* prototypes for the special type handlers */
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, int unused,
- const char *pszParmValue, char **ptr);
static bool handle_copy(struct loadparm_context *lp_ctx, int unused,
const char *pszParmValue, char **ptr);
@@ -1063,16 +1061,32 @@ bool lpcfg_file_list_changed(struct loadparm_context *lp_ctx)
Handle the "realm" parameter
***************************************************************************/
-static bool handle_realm(struct loadparm_context *lp_ctx, int unused,
- const char *pszParmValue, char **ptr)
+bool handle_realm(struct loadparm_context *lp_ctx, int unused,
+ const char *pszParmValue, char **ptr)
{
- lpcfg_string_set(lp_ctx, ptr, pszParmValue);
+ char *upper;
+ char *lower;
+
+ upper = strupper_talloc(lp_ctx, pszParmValue);
+ if (upper == NULL) {
+ return false;
+ }
- talloc_free(lp_ctx->globals->realm);
- talloc_free(lp_ctx->globals->dnsdomain);
+ lower = strlower_talloc(lp_ctx, pszParmValue);
+ if (lower == NULL) {
+ TALLOC_FREE(upper);
+ return false;
+ }
- lp_ctx->globals->realm = strupper_talloc(lp_ctx, pszParmValue);
- lp_ctx->globals->dnsdomain = strlower_talloc(lp_ctx, pszParmValue);
+ if (lp_ctx->s3_fns != NULL) {
+ lp_ctx->s3_fns->lp_string_set(ptr, pszParmValue);
+ lp_ctx->s3_fns->lp_string_set(&lp_ctx->globals->realm, upper);
+ lp_ctx->s3_fns->lp_string_set(&lp_ctx->globals->dnsdomain, lower);
+ } else {
+ lpcfg_string_set(lp_ctx, ptr, pszParmValue);
+ lpcfg_string_set(lp_ctx, &lp_ctx->globals->realm, upper);
+ lpcfg_string_set(lp_ctx, &lp_ctx->globals->dnsdomain, lower);
+ }
return true;
}
diff --git a/source3/param/loadparm.c b/source3/param/loadparm.c
index bbb2144cf6..efaa93b237 100644
--- a/source3/param/loadparm.c
+++ b/source3/param/loadparm.c
@@ -265,7 +265,6 @@ static bool handle_copy(struct loadparm_context *unused, int snum, const char *p
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_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 );
@@ -2726,21 +2725,6 @@ static bool handle_dos_charset(struct loadparm_context *unused, int snum, const
return true;
}
-static bool handle_realm(struct loadparm_context *unused, int snum, const char *pszParmValue, char **ptr)
-{
- bool ret = true;
- TALLOC_CTX *frame = talloc_stackframe();
- char *realm = strupper_talloc(frame, pszParmValue);
- char *dnsdomain = strlower_talloc(realm, pszParmValue);
-
- ret &= string_set(Globals.ctx, &Globals.realm_original, pszParmValue);
- ret &= string_set(Globals.ctx, &Globals.realm, realm);
- ret &= string_set(Globals.ctx, &Globals.dnsdomain, dnsdomain);
- TALLOC_FREE(frame);
-
- return ret;
-}
-
static bool handle_netbios_aliases(struct loadparm_context *unused, int snum, const char *pszParmValue, char **ptr)
{
TALLOC_FREE(Globals.netbios_aliases);