diff options
author | Günther Deschner <gd@samba.org> | 2008-01-29 14:20:20 +0100 |
---|---|---|
committer | Günther Deschner <gd@samba.org> | 2008-01-29 15:17:42 +0100 |
commit | 53c600992829a44b91d5be1cac7b1fe6ab31458e (patch) | |
tree | 39008e0ea5de6ac5dac1f13678b0d5648d49d3be /source3/winbindd | |
parent | 7cab0f5c0c3edc3eb74e3ae8fa5a649187dc99c1 (diff) | |
download | samba-53c600992829a44b91d5be1cac7b1fe6ab31458e.tar.gz samba-53c600992829a44b91d5be1cac7b1fe6ab31458e.tar.bz2 samba-53c600992829a44b91d5be1cac7b1fe6ab31458e.zip |
Use pidl generated call to enumerate ds trusted domains in winbindd.
Guenther
(This used to be commit 3a3c1aed9bfc681457aa06f706fc6fe2d9b2e903)
Diffstat (limited to 'source3/winbindd')
-rw-r--r-- | source3/winbindd/winbindd_cm.c | 31 |
1 files changed, 19 insertions, 12 deletions
diff --git a/source3/winbindd/winbindd_cm.c b/source3/winbindd/winbindd_cm.c index 94910072c3..c22022d79a 100644 --- a/source3/winbindd/winbindd_cm.c +++ b/source3/winbindd/winbindd_cm.c @@ -1716,8 +1716,7 @@ static bool set_dc_type_and_flags_trustinfo( struct winbindd_domain *domain ) { struct winbindd_domain *our_domain; NTSTATUS result = NT_STATUS_UNSUCCESSFUL; - struct ds_domain_trust *domains = NULL; - int count = 0; + struct netr_DomainTrustList trusts; int i; uint32 flags = (DS_DOMAIN_IN_FOREST | DS_DOMAIN_DIRECT_OUTBOUND | @@ -1763,19 +1762,27 @@ static bool set_dc_type_and_flags_trustinfo( struct winbindd_domain *domain ) return False; } - result = rpccli_ds_enum_domain_trusts(cli, mem_ctx, - cli->cli->desthost, - flags, &domains, - (unsigned int *)&count); + result = rpccli_netr_DsrEnumerateDomainTrusts(cli, mem_ctx, + cli->cli->desthost, + flags, + &trusts, + NULL); + if (!NT_STATUS_IS_OK(result)) { + DEBUG(0,("set_dc_type_and_flags_trustinfo: " + "failed to query trusted domain list: %s\n", + nt_errstr(result))); + talloc_destroy(mem_ctx); + return false; + } /* Now find the domain name and get the flags */ - for ( i=0; i<count; i++ ) { - if ( strequal( domain->name, domains[i].netbios_domain ) ) { - domain->domain_flags = domains[i].flags; - domain->domain_type = domains[i].trust_type; - domain->domain_trust_attribs = domains[i].trust_attributes; - + for ( i=0; i<trusts.count; i++ ) { + if ( strequal( domain->name, trusts.array[i].netbios_name) ) { + domain->domain_flags = trusts.array[i].trust_flags; + domain->domain_type = trusts.array[i].trust_type; + domain->domain_trust_attribs = trusts.array[i].trust_attributes; + if ( domain->domain_type == DS_DOMAIN_TRUST_TYPE_UPLEVEL ) domain->active_directory = True; |