diff options
author | Simo Sorce <idra@samba.org> | 2012-05-04 22:32:47 -0400 |
---|---|---|
committer | Alexander Bokovoy <ab@samba.org> | 2012-05-23 17:51:48 +0300 |
commit | cc3321c9ffee9e1688af724b7286fe548ff28793 (patch) | |
tree | 734c70eb921e5986dba3a8526fad85a39f7ba65a | |
parent | a7e94fce3f86b99c328669d45dd685fc70026378 (diff) | |
download | samba-cc3321c9ffee9e1688af724b7286fe548ff28793.tar.gz samba-cc3321c9ffee9e1688af724b7286fe548ff28793.tar.bz2 samba-cc3321c9ffee9e1688af724b7286fe548ff28793.zip |
s3-ads-dns: Avoid unnecessary dependencies
-rw-r--r-- | source3/libads/dns.c | 12 | ||||
-rw-r--r-- | source3/libads/dns.h | 2 | ||||
-rw-r--r-- | source3/libsmb/dsgetdcname.c | 9 |
3 files changed, 11 insertions, 12 deletions
diff --git a/source3/libads/dns.c b/source3/libads/dns.c index f62837e0fe..6f846fa780 100644 --- a/source3/libads/dns.c +++ b/source3/libads/dns.c @@ -20,7 +20,6 @@ #include "includes.h" #include "libads/dns.h" -#include "../librpc/ndr/libndr.h" /* AIX resolv.h uses 'class' in struct ns_rr */ @@ -890,26 +889,19 @@ NTSTATUS ads_dns_query_pdc(TALLOC_CTX *ctx, NTSTATUS ads_dns_query_dcs_guid(TALLOC_CTX *ctx, const char *dns_hosts_file, const char *dns_forest_name, - const struct GUID *domain_guid, + const char *domain_guid, struct dns_rr_srv **dclist, int *numdcs ) { /*_ldap._tcp.DomainGuid.domains._msdcs.DnsForestName */ const char *domains; - char *guid_string; - - guid_string = GUID_string(ctx, domain_guid); - if (!guid_string) { - return NT_STATUS_NO_MEMORY; - } /* little hack */ - domains = talloc_asprintf(ctx, "%s.domains", guid_string); + domains = talloc_asprintf(ctx, "%s.domains", domain_guid); if (!domains) { return NT_STATUS_NO_MEMORY; } - TALLOC_FREE(guid_string); return ads_dns_query_internal(ctx, dns_hosts_file, "_ldap", domains, dns_forest_name, NULL, dclist, numdcs); diff --git a/source3/libads/dns.h b/source3/libads/dns.h index d57239d20c..a3ea47a04e 100644 --- a/source3/libads/dns.h +++ b/source3/libads/dns.h @@ -55,7 +55,7 @@ NTSTATUS ads_dns_query_pdc(TALLOC_CTX *ctx, NTSTATUS ads_dns_query_dcs_guid(TALLOC_CTX *ctx, const char *dns_hosts_file, const char *dns_forest_name, - const struct GUID *domain_guid, + const char *domain_guid, struct dns_rr_srv **dclist, int *numdcs ); #endif /* _ADS_DNS_H */ diff --git a/source3/libsmb/dsgetdcname.c b/source3/libsmb/dsgetdcname.c index a690ab49c1..7b4b68195a 100644 --- a/source3/libsmb/dsgetdcname.c +++ b/source3/libsmb/dsgetdcname.c @@ -547,6 +547,7 @@ static NTSTATUS discover_dc_dns(TALLOC_CTX *mem_ctx, struct ip_service_name *dclist = NULL; int count = 0; const char *dns_hosts_file; + char *guid_string; dns_hosts_file = lp_parm_const_string(-1, "resolv", "host file", NULL); if (flags & DS_PDC_REQUIRED) { @@ -565,9 +566,15 @@ static NTSTATUS discover_dc_dns(TALLOC_CTX *mem_ctx, domain_name, site_name, &dcs, &numdcs); } else if (domain_guid) { + guid_string = GUID_string(mem_ctx, domain_guid); + if (!guid_string) { + return NT_STATUS_NO_MEMORY; + } + status = ads_dns_query_dcs_guid(mem_ctx, dns_hosts_file, - domain_name, domain_guid, + domain_name, guid_string, &dcs, &numdcs); + TALLOC_FREE(guid_string); } else { status = ads_dns_query_dcs(mem_ctx, dns_hosts_file, domain_name, site_name, |