summaryrefslogtreecommitdiff
path: root/source4/winbind/wb_sid2gid.c
diff options
context:
space:
mode:
authorKai Blin <kai@samba.org>2008-02-18 23:47:30 +0100
committerKai Blin <kai@samba.org>2008-02-21 11:22:15 +0100
commit99b311449f494c0318127dc9140c4a22bb932884 (patch)
treee0d222b9018eff5953e085c0d12127c76dd498e6 /source4/winbind/wb_sid2gid.c
parent705abe2cb3bc67f4e225ed38f32f77a2b433abc8 (diff)
downloadsamba-99b311449f494c0318127dc9140c4a22bb932884.tar.gz
samba-99b311449f494c0318127dc9140c4a22bb932884.tar.bz2
samba-99b311449f494c0318127dc9140c4a22bb932884.zip
idmap: Handle SID->gid
(This used to be commit 78d22a28eca4dd89f629dbe75287e9ac3940606b)
Diffstat (limited to 'source4/winbind/wb_sid2gid.c')
-rw-r--r--source4/winbind/wb_sid2gid.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/source4/winbind/wb_sid2gid.c b/source4/winbind/wb_sid2gid.c
index 8cb5608b2f..12129226be 100644
--- a/source4/winbind/wb_sid2gid.c
+++ b/source4/winbind/wb_sid2gid.c
@@ -25,6 +25,7 @@
#include "smbd/service_task.h"
#include "winbind/wb_helper.h"
#include "libcli/security/proto.h"
+#include "winbind/idmap.h"
struct sid2gid_state {
struct composite_context *ctx;
@@ -50,9 +51,13 @@ struct composite_context *wb_sid2gid_send(TALLOC_CTX *mem_ctx,
result->private_data = state;
state->service = service;
- /*FIXME: This is a stub so far. */
- state->ctx->status = dom_sid_split_rid(result, sid, NULL, &state->gid);
- if(!composite_is_ok(state->ctx)) return result;
+ state->ctx->status = idmap_sid_to_gid(service->idmap_ctx, state, sid,
+ &state->gid);
+ if (NT_STATUS_EQUAL(state->ctx->status, NT_STATUS_RETRY)) {
+ state->ctx->status = idmap_sid_to_gid(service->idmap_ctx, state,
+ sid, &state->gid);
+ }
+ if (!composite_is_ok(state->ctx)) return result;
composite_done(state->ctx);
return result;