diff options
author | Gerald Carter <jerry@samba.org> | 2003-08-10 22:01:11 +0000 |
---|---|---|
committer | Gerald Carter <jerry@samba.org> | 2003-08-10 22:01:11 +0000 |
commit | d5d9055b9be3960864ae479d52e587865648cbf0 (patch) | |
tree | 9e9e92f88c1e9cb52fb02bef45622f5776681bdf /source3/nsswitch/winbindd_user.c | |
parent | ce7d025b20bd444f2aace6f7ad719ac2702223a0 (diff) | |
download | samba-d5d9055b9be3960864ae479d52e587865648cbf0.tar.gz samba-d5d9055b9be3960864ae479d52e587865648cbf0.tar.bz2 samba-d5d9055b9be3960864ae479d52e587865648cbf0.zip |
add --domain=DOMAINNAME to wbinfo
Add support for geting the sequence number, list of users, and list
of groups for a specific domain (assuming on reported back by
wbinfo -m)
wbinfo -u --domain=DOA
(This used to be commit 34fc6e1bf97d514d3b1763a808d08d730191e03b)
Diffstat (limited to 'source3/nsswitch/winbindd_user.c')
-rw-r--r-- | source3/nsswitch/winbindd_user.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/source3/nsswitch/winbindd_user.c b/source3/nsswitch/winbindd_user.c index c0b0d94167..eab88c842e 100644 --- a/source3/nsswitch/winbindd_user.c +++ b/source3/nsswitch/winbindd_user.c @@ -575,6 +575,7 @@ enum winbindd_result winbindd_list_users(struct winbindd_cli_state *state) { struct winbindd_domain *domain; WINBIND_USERINFO *info; + const char *which_domain; uint32 num_entries = 0, total_entries = 0; char *ted, *extra_data = NULL; int extra_data_len = 0; @@ -586,13 +587,24 @@ enum winbindd_result winbindd_list_users(struct winbindd_cli_state *state) if (!(mem_ctx = talloc_init("winbindd_list_users"))) return WINBINDD_ERROR; + /* Ensure null termination */ + state->request.domain_name[sizeof(state->request.domain_name)-1]='\0'; + which_domain = state->request.domain_name; + /* Enumerate over trusted domains */ for (domain = domain_list(); domain; domain = domain->next) { NTSTATUS status; struct winbindd_methods *methods; unsigned int i; - + + /* if we have a domain name restricting the request and this + one in the list doesn't match, then just bypass the remainder + of the loop */ + + if ( *which_domain && !strequal(which_domain, domain->name) ) + continue; + methods = domain->methods; /* Query display info */ |