From 0d6acfe19a6bf09305ba9727a4f967199dfa29a1 Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Wed, 21 Apr 2004 15:04:05 +0000 Subject: r316: Fix split_domain_name. This defaulted to get_myname() instead of get_global_sam_name(). Error case: Adding a domain user to a XP local group did a lsalookupname on the user without domain prefix, and this then failed. Jerry: This is a must-fix before 3.0.3. Volker (This used to be commit f35e353454b6825da1de138a3f0d8106787e938b) --- source3/lib/util_sid.c | 22 ++++++++++++++-------- source3/passdb/passdb.c | 13 ------------- 2 files changed, 14 insertions(+), 21 deletions(-) diff --git a/source3/lib/util_sid.c b/source3/lib/util_sid.c index e4043c4e92..6b27fc84dd 100644 --- a/source3/lib/util_sid.c +++ b/source3/lib/util_sid.c @@ -174,6 +174,19 @@ NT_USER_TOKEN *get_system_token(void) return &system_token; } +/****************************************************************** + get the default domain/netbios name to be used when dealing + with our passdb list of accounts +******************************************************************/ + +const char *get_global_sam_name(void) +{ + if ((lp_server_role() == ROLE_DOMAIN_PDC) || (lp_server_role() == ROLE_DOMAIN_BDC)) { + return lp_workgroup(); + } + return global_myname(); +} + /************************************************************************** Splits a name of format \DOMAIN\name or name into its two components. Sets the DOMAIN name to global_myname() if it has not been specified. @@ -201,14 +214,7 @@ void split_domain_name(const char *fullname, char *domain, char *name) fstrcpy(domain, full_name); fstrcpy(name, p+1); } else { - if(!lp_domain_logons()) { - fstrcpy(domain, global_myname()); - fstrcpy(name, full_name); - } else { - fstrcpy(domain, lp_workgroup()); - fstrcpy(name, full_name); - } - fstrcpy(domain, global_myname()); + fstrcpy(domain, get_global_sam_name()); fstrcpy(name, full_name); } diff --git a/source3/passdb/passdb.c b/source3/passdb/passdb.c index 04e41b7970..7ccb35c3f4 100644 --- a/source3/passdb/passdb.c +++ b/source3/passdb/passdb.c @@ -46,19 +46,6 @@ const char *get_default_sam_name(void) return lp_workgroup(); } -/****************************************************************** - get the default domain/netbios name to be used when dealing - with our passdb list of accounts -******************************************************************/ - -const char *get_global_sam_name(void) -{ - if ((lp_server_role() == ROLE_DOMAIN_PDC) || (lp_server_role() == ROLE_DOMAIN_BDC)) { - return lp_workgroup(); - } - return global_myname(); -} - /************************************************************ Fill the SAM_ACCOUNT with default values. ***********************************************************/ -- cgit