[PATCH 25/31] resolver: Log reason for DNS resolution failure
Ian Jackson
ijackson at chiark.greenend.org.uk
Sat Sep 20 01:32:20 BST 2014
Signed-off-by: Ian Jackson <ijackson at chiark.greenend.org.uk>
---
resolver.c | 8 ++++----
secnet.h | 2 +-
site.c | 4 ++--
3 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/resolver.c b/resolver.c
index 6477777..f2023fa 100644
--- a/resolver.c
+++ b/resolver.c
@@ -48,9 +48,9 @@ static bool_t resolve_request(void *sst, cstring_t name,
ca.ia.sin.sin_family=AF_INET;
ca.ia.sin.sin_port=htons(port);
if (inet_aton(trimmed,&ca.ia.sin.sin_addr))
- cb(cst,&ca,1);
+ cb(cst,&ca,1,0);
else
- cb(cst,0,0);
+ cb(cst,0,0,"invalid IP address");
return True;
}
@@ -96,7 +96,7 @@ static void resolver_afterpoll(void *sst, struct pollfd *fds, int nfds)
if (rv==0) {
q=qp;
if (ans->status!=adns_s_ok) {
- q->answer(q->cst,NULL,0); /* Failure */
+ q->answer(q->cst,NULL,0,adns_strerror(ans->status));
free(q);
free(ans);
} else {
@@ -132,7 +132,7 @@ static void resolver_afterpoll(void *sst, struct pollfd *fds, int nfds)
break;
}
}
- q->answer(q->cst,ca_buf,wslot);
+ q->answer(q->cst,ca_buf,wslot,0);
free(q);
free(ans);
}
diff --git a/secnet.h b/secnet.h
index 433e6e9..1fc342d 100644
--- a/secnet.h
+++ b/secnet.h
@@ -290,7 +290,7 @@ struct buffer_if;
will be freed once resolve_answer_fn returns. It is in network byte
order. */
typedef void resolve_answer_fn(void *st, const struct comm_addr *addrs,
- int naddrs);
+ int naddrs, const char *failwhy);
typedef bool_t resolve_request_fn(void *st, cstring_t name,
int remoteport, struct comm_if *comm,
resolve_answer_fn *cb, void *cst);
diff --git a/site.c b/site.c
index 56b0710..8de8fa9 100644
--- a/site.c
+++ b/site.c
@@ -1193,7 +1193,7 @@ static bool_t send_msg(struct site *st)
}
static void site_resolve_callback(void *sst, const struct comm_addr *addrs,
- int naddrs)
+ int naddrs, const char *failwhy)
{
struct site *st=sst;
@@ -1203,7 +1203,7 @@ static void site_resolve_callback(void *sst, const struct comm_addr *addrs,
slog(st,LOG_STATE,"resolution of %s completed, %d addrs, eg: %s",
st->address, naddrs, comm_addr_to_string(&addrs[0]));;
} else {
- slog(st,LOG_ERROR,"resolution of %s failed",st->address);
+ slog(st,LOG_ERROR,"resolution of %s failed: %s",st->address,failwhy);
}
switch (st->state) {
--
1.7.10.4
More information about the sgo-software-discuss
mailing list