summaryrefslogtreecommitdiffstats
path: root/source/smbd/uid.c
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2002-04-30 13:28:41 +0000
committerJeremy Allison <jra@samba.org>2002-04-30 13:28:41 +0000
commitd04b55f2186fb8af998cf61c576771a5f72f4892 (patch)
tree9ff8c3a7cf34cefc0ee9a550a3bb1236a9e77595 /source/smbd/uid.c
parent73267ca42d9eddabb71b31b4c5068ebbe7bc9f7c (diff)
downloadsamba-d04b55f2186fb8af998cf61c576771a5f72f4892.tar.gz
samba-d04b55f2186fb8af998cf61c576771a5f72f4892.tar.xz
samba-d04b55f2186fb8af998cf61c576771a5f72f4892.zip
Start of merge to 2_2_RELEASE branch for release.
Jeremy.
Diffstat (limited to 'source/smbd/uid.c')
-rw-r--r--source/smbd/uid.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/source/smbd/uid.c b/source/smbd/uid.c
index 5204f36ad6e..89d89b33c36 100644
--- a/source/smbd/uid.c
+++ b/source/smbd/uid.c
@@ -116,7 +116,6 @@ BOOL change_to_user(connection_struct *conn, uint16 vuid)
(vuser != 0) && (current_user.vuid == vuid) &&
(current_user.uid == vuser->uid)) {
DEBUG(4,("change_to_user: Skipping user change - already user\n"));
- return(True);
}
snum = SNUM(conn);
@@ -450,7 +449,7 @@ BOOL lookup_name(const char *name, DOM_SID *psid, enum SID_NAME_USE *name_type)
*name_type = SID_NAME_UNKNOWN;
- if (!winbind_lookup_name(name, psid, name_type) || (*name_type != SID_NAME_USER) ) {
+ if (!winbind_lookup_name(NULL, name, psid, name_type) || (*name_type != SID_NAME_USER) ) {
BOOL ret = False;
DEBUG(10, ("lookup_name: winbind lookup for %s failed - trying local\n", name));
@@ -611,6 +610,11 @@ BOOL sid_to_uid(DOM_SID *psid, uid_t *puid, enum SID_NAME_USE *sidtype)
fstring dom_name, name, sid_str;
enum SID_NAME_USE name_type;
+
+ /* if we know its local then don't try winbindd */
+ if (sid_compare_domain(&global_sam_sid, psid) == 0)
+ return local_sid_to_uid(puid, psid, sidtype);
+
*sidtype = SID_NAME_UNKNOWN;
/*
@@ -643,7 +647,7 @@ BOOL sid_to_uid(DOM_SID *psid, uid_t *puid, enum SID_NAME_USE *sidtype)
if (!winbind_sid_to_uid(puid, psid)) {
DEBUG(10,("sid_to_uid: winbind lookup for sid %s failed.\n",
sid_to_string(sid_str, psid) ));
- return False;
+ return local_sid_to_uid(puid, psid, sidtype);;
}
DEBUG(10,("sid_to_uid: winbindd %s -> %u\n",