#include "includes.h"
#include "libads/dns.h"
-#include "../librpc/ndr/libndr.h"
/* AIX resolv.h uses 'class' in struct ns_rr */
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);
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 */
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) {
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,