diff options
author | Volker Lendecke <vl@samba.org> | 2009-08-04 15:23:13 -0400 |
---|---|---|
committer | Volker Lendecke <vl@samba.org> | 2009-08-05 03:21:22 -0400 |
commit | 7077492778dbda30e5f865ae1d0ab0237e00f54f (patch) | |
tree | a51af896169011db394654f703665673860442e7 /source3/winbindd/winbindd_dual_srv.c | |
parent | 360227a0feb443fbbcc420295d5666da5823685a (diff) | |
download | samba-7077492778dbda30e5f865ae1d0ab0237e00f54f.tar.gz samba-7077492778dbda30e5f865ae1d0ab0237e00f54f.tar.bz2 samba-7077492778dbda30e5f865ae1d0ab0237e00f54f.zip |
s3:winbind: Add async wb_queryuser
Diffstat (limited to 'source3/winbindd/winbindd_dual_srv.c')
-rw-r--r-- | source3/winbindd/winbindd_dual_srv.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/source3/winbindd/winbindd_dual_srv.c b/source3/winbindd/winbindd_dual_srv.c index 35fecbd08e..202cca4434 100644 --- a/source3/winbindd/winbindd_dual_srv.c +++ b/source3/winbindd/winbindd_dual_srv.c @@ -117,3 +117,30 @@ NTSTATUS _wbint_Gid2Sid(pipes_struct *p, struct wbint_Gid2Sid *r) } return NT_STATUS_OK; } + +NTSTATUS _wbint_QueryUser(pipes_struct *p, struct wbint_QueryUser *r) +{ + struct winbindd_domain *domain = wb_child_domain(); + WINBIND_USERINFO uinfo; + NTSTATUS status; + + if (domain == NULL) { + return NT_STATUS_REQUEST_NOT_ACCEPTED; + } + + status = domain->methods->query_user(domain, p->mem_ctx, r->in.sid, + &uinfo); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + + r->out.info->acct_name = uinfo.acct_name; + r->out.info->full_name = uinfo.full_name; + r->out.info->homedir = uinfo.homedir; + r->out.info->shell = uinfo.shell; + r->out.info->primary_gid = uinfo.primary_gid; + sid_copy(&r->out.info->user_sid, &uinfo.user_sid); + sid_copy(&r->out.info->group_sid, &uinfo.group_sid); + + return NT_STATUS_OK; +} |