From: Pieter Lexis Date: Tue, 23 Jan 2018 15:21:36 +0000 (+0100) Subject: Auth: Throw better resolver error on no v6 and v4 outgoing X-Git-Tag: dnsdist-1.3.0~84^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ee5a6a73729b14cea36fe921cfc020c6ae17c8a0;p=thirdparty%2Fpdns.git Auth: Throw better resolver error on no v6 and v4 outgoing --- diff --git a/pdns/resolver.cc b/pdns/resolver.cc index 78b7fbde92..60f17cbc57 100644 --- a/pdns/resolver.cc +++ b/pdns/resolver.cc @@ -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 {