]> granicus.if.org Git - pdns/commitdiff
improve some error messages for operating system isntances w/o ipv6
authorBert Hubert <bert.hubert@netherlabs.nl>
Sun, 26 Feb 2012 19:29:35 +0000 (19:29 +0000)
committerBert Hubert <bert.hubert@netherlabs.nl>
Sun, 26 Feb 2012 19:29:35 +0000 (19:29 +0000)
git-svn-id: svn://svn.powerdns.com/pdns/trunk/pdns@2425 d19b8d6e-7fed-0310-83ef-9ca221ded41b

pdns/resolver.cc

index fdf979e26b08e1ce676295beec2d8d7ce1fc97fe..c5d41da9eda724534a376165cc333760f4e43358 100644 (file)
@@ -66,8 +66,9 @@ int makeQuerySocket(const ComboAddress& local, bool udpOrTCP)
   
   int sock=socket(ourLocal.sin4.sin_family, udpOrTCP ? SOCK_DGRAM : SOCK_STREAM, 0);
   Utility::setCloseOnExec(sock);
-  if(sock < 0)
-    unixDie("Creating local resolver socket for "+ourLocal.toString());
+  if(sock < 0) {
+    unixDie("Creating local resolver socket for "+ourLocal.toString() + ((local.sin4.sin_family == AF_INET6) ? ", does your OS miss IPv6?" : ""));
+  }
 
   if(!udpOrTCP) {
     int tries=10;
@@ -79,13 +80,13 @@ int makeQuerySocket(const ComboAddress& local, bool udpOrTCP)
     }
     if(!tries) {
       Utility::closesocket(sock);
-      throw AhuException("Resolver binding to local socket on "+ourLocal.toString()+": "+stringerror());
+      throw AhuException("Resolver binding to local UDP socket on "+ourLocal.toString()+": "+stringerror());
     }
   }
   else {
     ourLocal.sin4.sin_port = 0;
     if(::bind(sock, (struct sockaddr *)&ourLocal, ourLocal.getSocklen()) < 0)
-      throw AhuException("Resolver binding to local socket on "+ourLocal.toString()+": "+stringerror());
+      throw AhuException("Resolver binding to local TCP socket on "+ourLocal.toString()+": "+stringerror());
   }
   return sock;
 }