From ee5a6a73729b14cea36fe921cfc020c6ae17c8a0 Mon Sep 17 00:00:00 2001 From: Pieter Lexis Date: Tue, 23 Jan 2018 16:21:36 +0100 Subject: [PATCH] Auth: Throw better resolver error on no v6 and v4 outgoing --- pdns/resolver.cc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pdns/resolver.cc b/pdns/resolver.cc index 78b7fbde9..60f17cbc5 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 { -- 2.40.0