diff options
author | Alexander Bokovoy <ab@samba.org> | 2012-05-15 16:28:44 +0300 |
---|---|---|
committer | Alexander Bokovoy <ab@samba.org> | 2012-05-23 17:51:49 +0300 |
commit | f32d43763d35fe386bfa1e9f7997b7eb1014b20c (patch) | |
tree | a8eca37805ecfd0f47acb57203328ad88422a6d7 | |
parent | 1feb31246d00cdadf7624925a324f7f591c26b82 (diff) | |
download | samba-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.c | 6 | ||||
-rw-r--r-- | source4/libcli/resolve/dns_ex.c | 2 |
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 */ |