diff options
author | Herb Lewis <herb@samba.org> | 2007-02-16 19:49:12 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 12:18:02 -0500 |
commit | 7acc9421b0643cb04bff1f1d98ecb899f9b09601 (patch) | |
tree | 22318301d387fc37f3fa8025999821c29c337802 /source/nsswitch/wbinfo.c | |
parent | 155b9e7c74d1a623e018fc2f8ca2e32e4aa3f213 (diff) | |
download | samba-7acc9421b0643cb04bff1f1d98ecb899f9b09601.tar.gz samba-7acc9421b0643cb04bff1f1d98ecb899f9b09601.tar.xz samba-7acc9421b0643cb04bff1f1d98ecb899f9b09601.zip |
r21396: fix wbinfo --lookup-rids command
allow detection of libbiconv if all others fail - need for FreeBSD
Diffstat (limited to 'source/nsswitch/wbinfo.c')
-rw-r--r-- | source/nsswitch/wbinfo.c | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/source/nsswitch/wbinfo.c b/source/nsswitch/wbinfo.c index cabf995042a..826b4fc0404 100644 --- a/source/nsswitch/wbinfo.c +++ b/source/nsswitch/wbinfo.c @@ -638,7 +638,7 @@ static BOOL wbinfo_lookupsid(char *sid) /* Lookup a list of RIDs */ -static BOOL wbinfo_lookuprids(char *domain_sid, char *arg) +static BOOL wbinfo_lookuprids(char *domain, char *arg) { size_t i; DOM_SID sid; @@ -650,9 +650,24 @@ static BOOL wbinfo_lookuprids(char *domain_sid, char *arg) enum lsa_SidType *types; const char *domain_name; TALLOC_CTX *mem_ctx; + struct winbindd_request request; + struct winbindd_response response; + + if ((domain == NULL) || (strequal(domain, ".")) || (domain[0] == '\0')) + fstrcpy(request.domain_name, get_winbind_domain()); + else + fstrcpy(request.domain_name, domain); + + /* Send request */ + + if (winbindd_request_response(WINBINDD_DOMAIN_INFO, &request, &response) != + NSS_STATUS_SUCCESS) { + d_printf("Could not get domain sid for %s\n", request.domain_name); + return False; + } - if (!string_to_sid(&sid, domain_sid)) { - d_printf("Could not convert %s to sid\n", domain_sid); + if (!string_to_sid(&sid, response.data.domain_info.sid)) { + d_printf("Could not convert %s to sid\n", response.data.domain_info.sid); return False; } |