From cdd367cfc0022917cb8da130873a4a4e3199f06f Mon Sep 17 00:00:00 2001 From: Benjamin Coddington Date: Fri, 16 Apr 2010 14:47:11 -0400 Subject: [PATCH] Add param "realm preserve case" to override realm This parameter can be used instead of "realm" and samba will not uppercase the value so that mixed-case realm names can be used. --- docs-xml/smbdotconf/base/realmpreservecase.xml | 16 ++++++++++++++ source3/param/loadparm.c | 27 +++++++++++++++++++++++- 2 files changed, 42 insertions(+), 1 deletions(-) create mode 100644 docs-xml/smbdotconf/base/realmpreservecase.xml diff --git a/docs-xml/smbdotconf/base/realmpreservecase.xml b/docs-xml/smbdotconf/base/realmpreservecase.xml new file mode 100644 index 0000000..dc0cf68 --- /dev/null +++ b/docs-xml/smbdotconf/base/realmpreservecase.xml @@ -0,0 +1,16 @@ + + + Samba normally uses the upper cased realm value. This + option overrides the realm option and preserves the case of its value. + This rarely used option is only needed if you have case-sensitive + realm names. + + + + +mySambaBox.MyCompany.com + diff --git a/source3/param/loadparm.c b/source3/param/loadparm.c index 579f847..cab490a 100644 --- a/source3/param/loadparm.c +++ b/source3/param/loadparm.c @@ -147,6 +147,7 @@ struct global { char *szPasswordServer; char *szSocketOptions; char *szRealm; + char *szRealmPreserveCase; char *szAfsUsernameMap; int iAfsTokenLifetime; char *szLogNtTokenCommand; @@ -1002,6 +1003,15 @@ static struct parm_struct parm_table[] = { .enum_list = NULL, .flags = FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD, }, + { + .label = "realm preserve case", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szRealmPreserveCase, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD, + }, #endif { .label = "netbios name", @@ -5187,6 +5197,8 @@ static void init_globals(bool first_time_only) Globals.bUseSpnego = True; Globals.bClientUseSpnego = True; + Globals.szRealmPreserveCase = NULL; + Globals.client_signing = Auto; Globals.server_signing = False; @@ -5351,7 +5363,6 @@ FN_GLOBAL_STRING(lp_passwd_program, &Globals.szPasswdProgram) FN_GLOBAL_STRING(lp_passwd_chat, &Globals.szPasswdChat) FN_GLOBAL_STRING(lp_passwordserver, &Globals.szPasswordServer) FN_GLOBAL_STRING(lp_name_resolve_order, &Globals.szNameResolveOrder) -FN_GLOBAL_STRING(lp_realm, &Globals.szRealm) FN_GLOBAL_CONST_STRING(lp_afs_username_map, &Globals.szAfsUsernameMap) FN_GLOBAL_INTEGER(lp_afs_token_lifetime, &Globals.iAfsTokenLifetime) FN_GLOBAL_STRING(lp_log_nt_token_command, &Globals.szLogNtTokenCommand) @@ -9922,3 +9933,17 @@ bool lp_widelinks(int snum) return lp_widelinks_internal(snum); } + +/******************************************************************* + If realm preserve case is set, use that instead of realm +********************************************************************/ + +char *lp_realm() +{ + if (Globals.szRealmPreserveCase) { + return lp_string(Globals.szRealmPreserveCase); + } + + return lp_string(Globals.szRealm); +} + -- 1.6.4.4