summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Bokovoy <ab@samba.org>2012-05-15 16:28:44 +0300
committerAlexander Bokovoy <ab@samba.org>2012-05-23 17:51:49 +0300
commitf32d43763d35fe386bfa1e9f7997b7eb1014b20c (patch)
treea8eca37805ecfd0f47acb57203328ad88422a6d7
parent1feb31246d00cdadf7624925a324f7f591c26b82 (diff)
downloadsamba-f32d43763d35fe386bfa1e9f7997b7eb1014b20c.tar.gz
samba-f32d43763d35fe386bfa1e9f7997b7eb1014b20c.tar.bz2
samba-f32d43763d35fe386bfa1e9f7997b7eb1014b20c.zip
dns: fix comments and make s4/libcli/resolve dns resolver working
After migrating to use libaddns, reply_to_addrs() needed to change the way answers are iterated through. Originally libroken implementation gave all answers as separate records with last one being explicitly NULL. libaddns unmarshalling code gives all non-NULL answers and should be iterated with explicit reply->num_answers in use.
-rw-r--r--lib/addns/dnsquery.c6
-rw-r--r--source4/libcli/resolve/dns_ex.c2
2 files changed, 4 insertions, 4 deletions
diff --git a/lib/addns/dnsquery.c b/lib/addns/dnsquery.c
index 4b45722471..57ef8d92f4 100644
--- a/lib/addns/dnsquery.c
+++ b/lib/addns/dnsquery.c
@@ -316,7 +316,7 @@ static NTSTATUS dns_send_req( TALLOC_CTX *ctx, const char *name, int q_type,
NT_STATUS_EQUAL(last_dns_status,NT_STATUS_CONNECTION_REFUSED)) &&
(last_dns_check+DNS_FAILED_WAITTIME) > now )
{
- DEBUG(10,("last_dns_check: Returning cached status (%s)\n",
+ DEBUG(10,("dns_send_req: last dns check returning cached status (%s)\n",
nt_errstr(last_dns_status) ));
return last_dns_status;
}
@@ -331,7 +331,7 @@ static NTSTATUS dns_send_req( TALLOC_CTX *ctx, const char *name, int q_type,
if (buf_len) {
if ((buffer = talloc_array(ctx, uint8_t, buf_len))
== NULL ) {
- DEBUG(0,("ads_dns_lookup_srv: "
+ DEBUG(0,("dns_send_req: "
"talloc() failed!\n"));
last_dns_status = NT_STATUS_NO_MEMORY;
last_dns_check = time_mono(NULL);
@@ -341,7 +341,7 @@ static NTSTATUS dns_send_req( TALLOC_CTX *ctx, const char *name, int q_type,
if ((resp_len = res_query(name, C_IN, q_type, buffer, buf_len))
< 0 ) {
- DEBUG(3,("ads_dns_lookup_srv: "
+ DEBUG(3,("dns_send_req: "
"Failed to resolve %s (%s)\n",
name, strerror(errno)));
TALLOC_FREE( buffer );
diff --git a/source4/libcli/resolve/dns_ex.c b/source4/libcli/resolve/dns_ex.c
index 3b303d261f..7f5b84191a 100644
--- a/source4/libcli/resolve/dns_ex.c
+++ b/source4/libcli/resolve/dns_ex.c
@@ -98,7 +98,7 @@ static int reply_to_addrs(TALLOC_CTX *mem_ctx, uint32_t *a_num,
}
*cur_addrs = addrs;
- for (i = 0; reply->answers[i]; i++) {
+ for (i = 0; i < reply->num_answers; i++) {
rr = reply->answers[i];
/* we are only interested in the IN class */