aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLaurent Ghigonis <laurent@p1sec.com>2012-12-15 05:48:16 +0100
committerLaurent Ghigonis <laurent@p1sec.com>2012-12-15 05:48:16 +0100
commit546990e129df1e3d339b003903380ab20599b3b2 (patch)
tree2feaa64a6dbd4e9a070911b05c695124145043b2
parentadd Makefile for examples/ of libglouglou (diff)
downloadglouglou-546990e129df1e3d339b003903380ab20599b3b2.tar.xz
glouglou-546990e129df1e3d339b003903380ab20599b3b2.zip
call the user callback even on error but with NULL as name
-rw-r--r--libglouglou/libggnet_dns.c16
1 files changed, 6 insertions, 10 deletions
diff --git a/libglouglou/libggnet_dns.c b/libglouglou/libggnet_dns.c
index 26e0230..782c395 100644
--- a/libglouglou/libggnet_dns.c
+++ b/libglouglou/libggnet_dns.c
@@ -97,20 +97,16 @@ _cb_evdns_reverse(int result, char type, int count,
struct ggnet_dns_req *req;
char **name;
- req = arg;
- if (type != DNS_PTR) {
- printf("libggnet_dns WARNING: dns reverse for %x received non DNS_PTR\n",
- req->ip.s_addr);
- goto free;
- }
- if (count == 0)
- goto free;
if (count > 1)
printf("libggnet_dns XXX: has %d PTR records !\n", count); // XXX
+
+ req = arg;
name = addresses;
- req->cb_usr(&req->ip, *name, req->data);
+ if (result != DNS_ERR_NONE || count == 0)
+ req->cb_usr(&req->ip, NULL, req->data);
+ else
+ req->cb_usr(&req->ip, *name, req->data);
-free:
LIST_REMOVE(req, entry);
req->ggdns->req_pending--;
free(req);