diff options
author | Volker Lendecke <vl@samba.org> | 2008-07-13 12:07:40 +0200 |
---|---|---|
committer | Volker Lendecke <vl@samba.org> | 2008-08-12 11:28:29 +0200 |
commit | 340ab6a256802a22c11b7f707748397249075b65 (patch) | |
tree | 20d297829eb3e27c6c80ad537712627ae845a4ef /source3/winbindd/winbindd_sid.c | |
parent | 8d4bd2d960ebf11bc85891210c6f72a371e08417 (diff) | |
download | samba-340ab6a256802a22c11b7f707748397249075b65.tar.gz samba-340ab6a256802a22c11b7f707748397249075b65.tar.bz2 samba-340ab6a256802a22c11b7f707748397249075b65.zip |
idmap rewrite
(This used to be commit 30a180f2fce8cf6a3e5548f6bba453272ba70b33)
Diffstat (limited to 'source3/winbindd/winbindd_sid.c')
-rw-r--r-- | source3/winbindd/winbindd_sid.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/source3/winbindd/winbindd_sid.c b/source3/winbindd/winbindd_sid.c index 5f5972fb05..274786fa63 100644 --- a/source3/winbindd/winbindd_sid.c +++ b/source3/winbindd/winbindd_sid.c @@ -166,12 +166,10 @@ static void sid2uid_recv(void *private_data, bool success, uid_t uid) if (!success) { DEBUG(5, ("Could not convert sid %s\n", state->request.data.sid)); - idmap_cache_set_sid2uid(&sid, -1); request_error(state); return; } - idmap_cache_set_sid2uid(&sid, uid); state->response.data.uid = uid; request_ok(state); } @@ -209,6 +207,10 @@ static void sid2uid_lookupsid_recv( void *private_data, bool success, return; fail: + /* + * We have to set the cache ourselves here, the child which is + * normally responsible was not queried yet. + */ idmap_cache_set_sid2uid(&sid, -1); request_error(state); return; @@ -273,12 +275,10 @@ static void sid2gid_recv(void *private_data, bool success, gid_t gid) if (!success) { DEBUG(5, ("Could not convert sid %s\n", state->request.data.sid)); - idmap_cache_set_sid2gid(&sid, -1); request_error(state); return; } - idmap_cache_set_sid2gid(&sid, gid); state->response.data.gid = gid; request_ok(state); } @@ -319,6 +319,10 @@ static void sid2gid_lookupsid_recv( void *private_data, bool success, return; fail: + /* + * We have to set the cache ourselves here, the child which is + * normally responsible was not queried yet. + */ idmap_cache_set_sid2gid(&sid, -1); request_error(state); return; @@ -516,7 +520,7 @@ static void gid2sid_recv(void *private_data, bool success, const char *sidstr) return; } DEBUG(10,("gid2sid: gid %lu has sid %s\n", - (unsigned long)(state->request.data.gid), sid)); + (unsigned long)(state->request.data.gid), sidstr)); idmap_cache_set_sid2gid(&sid, state->request.data.gid); fstrcpy(state->response.data.sid.sid, sidstr); |