diff options
author | Garming Sam <garming@catalyst.net.nz> | 2014-02-18 09:41:39 +1300 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2014-05-07 19:49:14 +0200 |
commit | 29cdb716d0283d1cb67713f4bb6eb08e28dd98d5 (patch) | |
tree | 393b3ba79c8e3d8c73a8f57b12d2b4f7748dc7fd /lib/param/loadparm.c | |
parent | a39d56933660e72742d9b438ae9c6b4c513c1449 (diff) | |
download | samba-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>
Diffstat (limited to 'lib/param/loadparm.c')
-rw-r--r-- | lib/param/loadparm.c | 32 |
1 files changed, 23 insertions, 9 deletions
diff --git a/lib/param/loadparm.c b/lib/param/loadparm.c index 5a6b361d9e5..636c41bd201 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; } |