summaryrefslogtreecommitdiff
path: root/source3/winbindd/winbindd_dual_srv.c
diff options
context:
space:
mode:
authorVolker Lendecke <vl@samba.org>2009-08-04 15:23:13 -0400
committerVolker Lendecke <vl@samba.org>2009-08-05 03:21:22 -0400
commit7077492778dbda30e5f865ae1d0ab0237e00f54f (patch)
treea51af896169011db394654f703665673860442e7 /source3/winbindd/winbindd_dual_srv.c
parent360227a0feb443fbbcc420295d5666da5823685a (diff)
downloadsamba-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.c27
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;
+}