]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
Auth: Throw better resolver error on no v6 and v4 outgoing 6100/head
authorPieter Lexis <pieter.lexis@powerdns.com>
Tue, 23 Jan 2018 15:21:36 +0000 (16:21 +0100)
committerPieter Lexis <pieter.lexis@powerdns.com>
Tue, 23 Jan 2018 16:26:40 +0000 (17:26 +0100)
pdns/resolver.cc

index 78b7fbde92b26d6e1b378ca3c42750906f5d4e6f..60f17cbc57b36e40de7198ad45d52058470cef67 100644 (file)
@@ -368,11 +368,11 @@ AXFRRetriever::AXFRRetriever(const ComboAddress& remote,
   if (laddr != nullptr) {
     local = ComboAddress(*laddr);
   } else {
-    if(remote.sin4.sin_family == AF_INET && !::arg()["query-local-address"].empty()) {
-      local=ComboAddress(::arg()["query-local-address"]);
-    } else if(remote.sin4.sin_family == AF_INET6 && !::arg()["query-local-address6"].empty()) {
-      local=ComboAddress(::arg()["query-local-address6"]);
+    string qlas = remote.sin4.sin_family == AF_INET ? "query-local-address" : "query-local-address6";
+    if (::arg()[qlas].empty()) {
+      throw ResolverException("Unable to determine source address for AXFR request to " + remote.toStringWithPort() + " for " + domain.toLogString() + ". " + qlas + " is unset");
     }
+    local=ComboAddress(::arg()[qlas]);
   }
   d_sock = -1;
   try {