summaryrefslogtreecommitdiff
path: root/source3
diff options
context:
space:
mode:
Diffstat (limited to 'source3')
-rw-r--r--source3/libads/dns.c12
-rw-r--r--source3/libads/dns.h2
-rw-r--r--source3/libsmb/dsgetdcname.c9
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,