Added a dump_addrinfo() function to ease debugging of resolved names. Define
authorDaniel Stenberg <daniel@haxx.se>
Thu, 20 Oct 2005 19:40:02 +0000 (19:40 +0000)
committerDaniel Stenberg <daniel@haxx.se>
Thu, 20 Oct 2005 19:40:02 +0000 (19:40 +0000)
DEBUG_ADDRINFO to enable.

lib/hostip6.c

index aa25de3..775ba91 100644 (file)
@@ -73,6 +73,7 @@
 #include "strerror.h"
 #include "url.h"
 #include "inet_pton.h"
+#include "connect.h"
 
 #define _MPRINTF_REPLACE /* use our functions only */
 #include <curl/mprintf.h>
@@ -186,6 +187,26 @@ bool Curl_ipvalid(struct SessionHandle *data)
 }
 
 #ifndef USE_THREADING_GETADDRINFO
+
+#ifdef DEBUG_ADDRINFO
+static void dump_addrinfo(struct connectdata *conn, const struct addrinfo *ai)
+{
+  printf("dump_addrinfo:\n");
+  for ( ; ai; ai = ai->ai_next) {
+    char  buf[INET6_ADDRSTRLEN];
+
+    printf("    fam %2d, CNAME %s, ",
+           ai->ai_family, ai->ai_canonname ? ai->ai_canonname : "<none>");
+    if (Curl_printable_address(ai, buf, sizeof(buf)))
+      printf("%s\n", buf);
+    else
+      printf("failed; %s\n", Curl_strerror(conn, Curl_ourerrno()));
+  }
+}
+#else
+#define dump_addrinfo(x,y)
+#endif
+
 /*
  * Curl_getaddrinfo() when built ipv6-enabled (non-threading version).
  *
@@ -266,6 +287,8 @@ Curl_addrinfo *Curl_getaddrinfo(struct connectdata *conn,
     return NULL;
   }
 
+  dump_addrinfo(conn, res);
+
   return res;
 }
 #endif /* USE_THREADING_GETADDRINFO */