summaryrefslogtreecommitdiff
path: root/src/NameResolver.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2006-08-28 13:30:24 +0000
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2006-08-28 13:30:24 +0000
commitd63e6fb052ae5881abd265b10eb457bba27490d1 (patch)
tree248231cb17800ae9e06449e82525ee457847cc47 /src/NameResolver.cc
parentc096a3a55386d8b801196729a169162bec7f41e1 (diff)
To fix a bug that caused assertion failure in ares_strerror:
* src/NameResolver.cc (callback): Fixed the bug.
Diffstat (limited to 'src/NameResolver.cc')
-rw-r--r--src/NameResolver.cc9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/NameResolver.cc b/src/NameResolver.cc
index d9d124c8..dc048549 100644
--- a/src/NameResolver.cc
+++ b/src/NameResolver.cc
@@ -23,6 +23,15 @@
void callback(void* arg, int status, struct hostent* host) {
NameResolver* resolverPtr = (NameResolver*)arg;
+#ifdef HAVE_LIBARES
+ // This block is required since the assertion in ares_strerror fails
+ // if status = ARES_EDESTRUCTION is passed to ares_strerror as 1st argument.
+ // This does not happen in c-ares.
+ if(status == ARES_EDESTRUCTION) {
+ // we simply return in this case.
+ return;
+ }
+#endif
if(status != ARES_SUCCESS) {
#ifdef HAVE_LIBCARES
resolverPtr->error = ares_strerror(status);