From: Gibheer Date: Fri, 9 Jun 2017 07:48:55 +0000 (+0200) Subject: allow listening on IPv6 X-Git-Tag: rec-4.1.0-alpha1~80^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=201aac4ac841f0845b5525e7729559a91eba56fb;p=thirdparty%2Fpdns.git allow listening on IPv6 In IPv6 only environments it is not possible to listen on IPv6 addresses for the control port. This change takes a look at the provided IP and changes the connection type to the correct address family. --- diff --git a/pdns/dynlistener.cc b/pdns/dynlistener.cc index 871df8d2fd..8de1c191e9 100644 --- a/pdns/dynlistener.cc +++ b/pdns/dynlistener.cc @@ -146,7 +146,11 @@ void DynListener::listenOnUnixDomain(const string& fname) void DynListener::listenOnTCP(const ComboAddress& local) { - createSocketAndBind(AF_INET, (struct sockaddr*)& local, local.getSocklen()); + if (local.isIPv4()) { + createSocketAndBind(AF_INET, (struct sockaddr*)& local, local.getSocklen()); + } else if (local.isIPv6()) { + createSocketAndBind(AF_INET6, (struct sockaddr*)& local, local.getSocklen()); + } listen(d_s, 10); d_socketaddress=local;