From 5e7655fa27f7b2c9c54edfc25f86974dbdb23ea4 Mon Sep 17 00:00:00 2001 From: Simo Sorce Date: Sun, 17 Aug 2008 19:54:41 -0400 Subject: Split lookup_name() and create a new functiong called lookup_domain_name(). This new function accept separated strings for domain and name. (This used to be commit 8594edf666c29fd4ddf1780da842683dd81483b6) --- source3/winbindd/winbindd_passdb.c | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) (limited to 'source3/winbindd/winbindd_passdb.c') diff --git a/source3/winbindd/winbindd_passdb.c b/source3/winbindd/winbindd_passdb.c index 5677c01be1..fbe4a27abf 100644 --- a/source3/winbindd/winbindd_passdb.c +++ b/source3/winbindd/winbindd_passdb.c @@ -94,8 +94,8 @@ static NTSTATUS name_to_sid(struct winbindd_domain *domain, DOM_SID *sid, enum lsa_SidType *type) { - const char *fullname; uint32 flags = LOOKUP_NAME_ALL; + bool res; switch ( original_cmd ) { case WINBINDD_LOOKUPNAME: @@ -107,28 +107,26 @@ static NTSTATUS name_to_sid(struct winbindd_domain *domain, DEBUG(10,("winbindd_passdb: limiting name_to_sid() to explicit mappings\n")); break; } - - if (domain_name && domain_name[0] && strchr_m(name, '\\') == NULL) { - fullname = talloc_asprintf(mem_ctx, "%s\\%s", - domain_name, name); - if (fullname == NULL) { - return NT_STATUS_NO_MEMORY; - } + + DEBUG(10, ("looking up name [%s\\%s] (domain\\name) \n", + domain_name?domain_name:"(NULL)", name)); + + if (strchr_m(name, '\\')) { + res = lookup_name(mem_ctx, name, flags, NULL, NULL, sid, type); } else { - fullname = name; + res = lookup_domain_name(mem_ctx, domain_name, name, flags, + NULL, NULL, sid, type); } - DEBUG(10, ("Finding fullname %s\n", fullname)); - - if ( !lookup_name( mem_ctx, fullname, flags, NULL, NULL, sid, type ) ) { + if (!res) { return NT_STATUS_NONE_MAPPED; } - DEBUG(10, ("name_to_sid for %s returned %s (%s)\n", - fullname, + DEBUG(10, ("name_to_sid for [%s\\%s] returned %s (%s)\n", + domain_name?domain_name:"(NULL)", name, sid_string_dbg(sid), sid_type_lookup((uint32)*type))); - + return NT_STATUS_OK; } -- cgit