Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 17 Apr 2018 09:33:17 +0000 (UTC)
From:      Jan Beich <jbeich@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r467586 - in head/dns/powerdns-recursor: . files
Message-ID:  <201804170933.w3H9XHh8023828@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: jbeich
Date: Tue Apr 17 09:33:17 2018
New Revision: 467586
URL: https://svnweb.freebsd.org/changeset/ports/467586

Log:
  dns/powerdns-recursor: unbreak with boost 1.67
  
  In file included from lua-recursor4.cc:26:
  In file included from ./syncres.hh:42:
  In file included from ./recpacketcache.hh:41:
  In file included from ./rec-protobuf.hh:24:
  In file included from ./protobuf.hh:34:
  In file included from /usr/local/include/boost/uuid/uuid_generators.hpp:17:
  In file included from /usr/local/include/boost/uuid/random_generator.hpp:19:
  In file included from /usr/local/include/boost/tti/has_member_function.hpp:15:
  In file included from /usr/local/include/boost/tti/detail/dmem_fun.hpp:11:
  In file included from /usr/local/include/boost/function_types/is_member_function_pointer.hpp:14:
  In file included from /usr/local/include/boost/function_types/components.hpp:61:
  /usr/local/include/boost/function_types/detail/class_transform.hpp:26:31: error: expected a qualified name after 'typename'
  template<typename T, typename L>
                                ^
  ./recursor_cache.hh:45:11: note: expanded from macro 'L'
   #define L theL()
             ^
  
  PR:		227427
  Reported by:	antoine (via exp-run)
  Obtained from:	upstream

Added:
  head/dns/powerdns-recursor/files/patch-boost-1.67   (contents, props changed)
Modified:
  head/dns/powerdns-recursor/Makefile   (contents, props changed)

Modified: head/dns/powerdns-recursor/Makefile
==============================================================================
--- head/dns/powerdns-recursor/Makefile	Tue Apr 17 09:32:06 2018	(r467585)
+++ head/dns/powerdns-recursor/Makefile	Tue Apr 17 09:33:17 2018	(r467586)
@@ -3,7 +3,7 @@
 
 PORTNAME=	recursor
 DISTVERSION=	4.1.2
-PORTREVISION=	1
+PORTREVISION=	2
 CATEGORIES=	dns ipv6
 MASTER_SITES=	http://downloads.powerdns.com/releases/
 PKGNAMEPREFIX=	powerdns-

Added: head/dns/powerdns-recursor/files/patch-boost-1.67
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/dns/powerdns-recursor/files/patch-boost-1.67	Tue Apr 17 09:33:17 2018	(r467586)
@@ -0,0 +1,2429 @@
+https://github.com/PowerDNS/pdns/commit/e6a9dde524b5
+
+--- arguments.cc.orig	2018-03-29 13:04:45 UTC
++++ arguments.cc
+@@ -443,7 +443,7 @@ bool ArgvMap::file(const char *fname, bool lax, bool i
+     set("include-dir","Directory to include configuration files from");
+ 
+   if(!parseFile(fname, "", lax)) {
+-    L << Logger::Warning << "Unable to open " << fname << std::endl;
++    g_log << Logger::Warning << "Unable to open " << fname << std::endl;
+     return false;
+   }
+ 
+@@ -453,7 +453,7 @@ bool ArgvMap::file(const char *fname, bool lax, bool i
+     gatherIncludes(extraConfigs); 
+     for(const std::string& fn :  extraConfigs) {
+       if (!file(fn.c_str(), lax, true)) {
+-        L << Logger::Error << fn << " could not be parsed" << std::endl;
++        g_log << Logger::Error << fn << " could not be parsed" << std::endl;
+         throw ArgException(fn + " could not be parsed");
+       }
+     }
+@@ -471,18 +471,18 @@ void ArgvMap::gatherIncludes(std::vector<std::string> 
+ 
+     // stat
+     if (stat(params["include-dir"].c_str(), &st)) {
+-       L << Logger::Error << params["include-dir"] << " does not exist!" << std::endl;
++       g_log << Logger::Error << params["include-dir"] << " does not exist!" << std::endl;
+        throw ArgException(params["include-dir"] + " does not exist!");
+     }
+ 
+     // wonder if it's accessible directory
+     if (!S_ISDIR(st.st_mode)) {
+-       L << Logger::Error << params["include-dir"] << " is not a directory" << std::endl;
++       g_log << Logger::Error << params["include-dir"] << " is not a directory" << std::endl;
+        throw ArgException(params["include-dir"] + " is not a directory");
+     }
+ 
+     if (!(dir = opendir(params["include-dir"].c_str()))) {
+-       L << Logger::Error << params["include-dir"] << " is not accessible" << std::endl;
++       g_log << Logger::Error << params["include-dir"] << " is not accessible" << std::endl;
+        throw ArgException(params["include-dir"] + " is not accessible");
+     }
+ 
+@@ -494,7 +494,7 @@ void ArgvMap::gatherIncludes(std::vector<std::string> 
+         namebuf << params["include-dir"].c_str() << "/" << ent->d_name; // FIXME: Use some path separator
+         // ensure it's readable file
+         if (stat(namebuf.str().c_str(), &st) || !S_ISREG(st.st_mode)) {
+-          L << Logger::Error << namebuf.str() << " is not a file" << std::endl;
++          g_log << Logger::Error << namebuf.str() << " is not a file" << std::endl;
+           closedir(dir);
+           throw ArgException(namebuf.str() + " does not exist!");
+         }
+--- dns.hh.orig	2018-03-29 13:04:45 UTC
++++ dns.hh
+@@ -225,7 +225,6 @@ inline uint16_t * getFlagsFromDNSHeader(struct dnshead
+ #define FLAGS_CD_OFFSET (12)
+ #endif
+ 
+-#define L theL()
+ extern time_t s_starttime;
+ 
+ uint32_t hashQuestion(const char* packet, uint16_t len, uint32_t init);
+--- gss_context.cc.orig	2018-03-29 13:04:45 UTC
++++ gss_context.cc
+@@ -456,17 +456,17 @@ bool gss_add_signature(const DNSName& context, const s
+   string tmp_mac;
+   GssContext gssctx(context);
+   if (!gssctx.valid()) {
+-    L<<Logger::Error<<"GSS context '"<<context<<"' is not valid"<<endl;
++    g_log<<Logger::Error<<"GSS context '"<<context<<"' is not valid"<<endl;
+     for(const string& error :  gssctx.getErrorStrings()) {
+-       L<<Logger::Error<<"GSS error: "<<error<<endl;;
++       g_log<<Logger::Error<<"GSS error: "<<error<<endl;;
+     }
+     return false;
+   }
+ 
+   if (!gssctx.sign(message, tmp_mac)) {
+-    L<<Logger::Error<<"Could not sign message using GSS context '"<<context<<"'"<<endl;
++    g_log<<Logger::Error<<"Could not sign message using GSS context '"<<context<<"'"<<endl;
+     for(const string& error :  gssctx.getErrorStrings()) {
+-       L<<Logger::Error<<"GSS error: "<<error<<endl;;
++       g_log<<Logger::Error<<"GSS error: "<<error<<endl;;
+     }
+     return false;
+   }
+@@ -477,17 +477,17 @@ bool gss_add_signature(const DNSName& context, const s
+ bool gss_verify_signature(const DNSName& context, const std::string& message, const std::string& mac) {
+   GssContext gssctx(context);
+   if (!gssctx.valid()) {
+-    L<<Logger::Error<<"GSS context '"<<context<<"' is not valid"<<endl;
++    g_log<<Logger::Error<<"GSS context '"<<context<<"' is not valid"<<endl;
+     for(const string& error :  gssctx.getErrorStrings()) {
+-       L<<Logger::Error<<"GSS error: "<<error<<endl;;
++       g_log<<Logger::Error<<"GSS error: "<<error<<endl;;
+     }
+     return false;
+   }
+ 
+   if (!gssctx.verify(message, mac)) {
+-    L<<Logger::Error<<"Could not verify message using GSS context '"<<context<<"'"<<endl;
++    g_log<<Logger::Error<<"Could not verify message using GSS context '"<<context<<"'"<<endl;
+     for(const string& error :  gssctx.getErrorStrings()) {
+-       L<<Logger::Error<<"GSS error: "<<error<<endl;;
++       g_log<<Logger::Error<<"GSS error: "<<error<<endl;;
+     }
+     return false;
+   }
+--- logger.cc.orig	2018-03-29 13:04:45 UTC
++++ logger.cc
+@@ -32,15 +32,9 @@ extern StatBag S;
+ #include "namespaces.hh"
+ 
+ pthread_once_t Logger::s_once;
+-pthread_key_t Logger::s_loggerKey;
++pthread_key_t Logger::g_loggerKey;
+ 
+-Logger &theL(const string &pname)
+-{
+-  static Logger l("", LOG_DAEMON);
+-  if(!pname.empty())
+-    l.setName(pname);
+-  return l;
+-}
++Logger g_log("", LOG_DAEMON);
+ 
+ void Logger::log(const string &msg, Urgency u)
+ {
+@@ -104,7 +98,7 @@ void Logger::setName(const string &_name)
+ 
+ void Logger::initKey()
+ {
+-  if(pthread_key_create(&s_loggerKey, perThreadDestructor))
++  if(pthread_key_create(&g_loggerKey, perThreadDestructor))
+     unixDie("Creating thread key for logger");
+ }
+ 
+@@ -139,13 +133,13 @@ void Logger::perThreadDestructor(void* buf)
+ 
+ Logger::PerThread* Logger::getPerThread()
+ {
+-  void *buf=pthread_getspecific(s_loggerKey);
++  void *buf=pthread_getspecific(g_loggerKey);
+   PerThread* ret;
+   if(buf)
+     ret = (PerThread*) buf;
+   else {
+     ret = new PerThread();
+-    pthread_setspecific(s_loggerKey, (void*)ret);
++    pthread_setspecific(g_loggerKey, (void*)ret);
+   }
+   return ret;
+ }
+--- logger.hh.orig	2018-03-29 13:04:45 UTC
++++ logger.hh
+@@ -70,9 +70,9 @@ class Logger (public)
+   void resetFlags(){flags=0;open();} //!< zero the flags
+   /** Use this to stream to your log, like this:
+       \code
+-      L<<"This is an informational message"<<endl; // logged at default loglevel (Info)
+-      L<<Logger::Warning<<"Out of diskspace"<<endl; // Logged as a warning 
+-      L<<"This is an informational message"<<endl; // logged AGAIN at default loglevel (Info)
++      g_log<<"This is an informational message"<<endl; // logged at default loglevel (Info)
++      g_log<<Logger::Warning<<"Out of diskspace"<<endl; // Logged as a warning 
++      g_log<<"This is an informational message"<<endl; // logged AGAIN at default loglevel (Info)
+       \endcode
+   */
+   Logger& operator<<(const char *s);
+@@ -113,10 +113,10 @@ class Logger (public)
+   bool d_disableSyslog;
+   bool d_timestamps{true};
+   static pthread_once_t s_once;
+-  static pthread_key_t s_loggerKey;
++  static pthread_key_t g_loggerKey;
+ };
+ 
+-extern Logger &theL(const string &pname="");
++extern Logger g_log;
+ 
+ #ifdef VERBOSELOG
+ #define DLOG(x) x
+--- lua-recursor4.cc.orig	2018-03-29 13:04:45 UTC
++++ lua-recursor4.cc
+@@ -286,7 +286,7 @@ RecursorLua4::RecursorLua4(const std::string& fname)
+           cas.insert(boost::get<ComboAddress>(in));
+         }
+       }
+-      catch(std::exception& e) { theL() <<Logger::Error<<e.what()<<endl; }
++      catch(std::exception& e) { g_log <<Logger::Error<<e.what()<<endl; }
+     });
+ 
+   d_lw->registerFunction<bool(cas_t::*)(const ComboAddress&)>("check",[](const cas_t& cas, const ComboAddress&ca) {
+@@ -451,7 +451,7 @@ RecursorLua4::RecursorLua4(const std::string& fname)
+         }
+       }
+       catch(std::exception& e) {
+-        theL() <<Logger::Error<<e.what()<<endl;
++        g_log <<Logger::Error<<e.what()<<endl;
+       }
+     }
+   );
+@@ -461,7 +461,7 @@ RecursorLua4::RecursorLua4(const std::string& fname)
+ 
+ 
+   d_lw->writeFunction("pdnslog", [](const std::string& msg, boost::optional<int> loglevel) {
+-      theL() << (Logger::Urgency)loglevel.get_value_or(Logger::Warning) << msg<<endl;
++      g_log << (Logger::Urgency)loglevel.get_value_or(Logger::Warning) << msg<<endl;
+     });
+   typedef vector<pair<string, int> > in_t;
+   vector<pair<string, boost::variant<int, in_t, struct timeval* > > >  pd{
+@@ -719,7 +719,7 @@ loop:;
+         dq.udpAnswer = GenUDPQueryResponse(dq.udpQueryDest, dq.udpQuery);
+         auto cbFunc = d_lw->readVariable<boost::optional<luacall_t>>(dq.udpCallback).get_value_or(0);
+         if(!cbFunc) {
+-          theL()<<Logger::Error<<"Attempted callback for Lua UDP Query/Response which could not be found"<<endl;
++          g_log<<Logger::Error<<"Attempted callback for Lua UDP Query/Response which could not be found"<<endl;
+           return false;
+         }
+         bool result=cbFunc(&dq);
+--- lua-recursor4.hh.orig	2018-03-29 13:04:45 UTC
++++ lua-recursor4.hh
+@@ -43,9 +43,7 @@ unsigned int getRecursorThreadId();
+ class LuaContext;
+ 
+ #if defined(HAVE_LUA)
+-#undef L
+ #include "ext/luawrapper/include/LuaContext.hpp"
+-#define L theL()
+ #endif
+ 
+ // pdns_ffi_param_t is a lightuserdata
+--- lwres.cc.orig	2018-03-29 13:04:45 UTC
++++ lwres.cc
+@@ -236,7 +236,7 @@ int asyncresolve(const ComboAddress& ip, const DNSName
+ 
+     if(domain != mdp.d_qname) { 
+       if(!mdp.d_qname.empty() && domain.toString().find((char)0) == string::npos /* ugly */) {// embedded nulls are too noisy, plus empty domains are too
+-        L<<Logger::Notice<<"Packet purporting to come from remote server "<<ip.toString()<<" contained wrong answer: '" << domain << "' != '" << mdp.d_qname << "'" << endl;
++        g_log<<Logger::Notice<<"Packet purporting to come from remote server "<<ip.toString()<<" contained wrong answer: '" << domain << "' != '" << mdp.d_qname << "'" << endl;
+       }
+       // unexpected count has already been done @ pdns_recursor.cc
+       goto out;
+@@ -276,7 +276,7 @@ int asyncresolve(const ComboAddress& ip, const DNSName
+   }
+   catch(std::exception &mde) {
+     if(::arg().mustDo("log-common-errors"))
+-      L<<Logger::Notice<<"Unable to parse packet from remote server "<<ip.toString()<<": "<<mde.what()<<endl;
++      g_log<<Logger::Notice<<"Unable to parse packet from remote server "<<ip.toString()<<": "<<mde.what()<<endl;
+     lwr->d_rcode = RCode::FormErr;
+     g_stats.serverParseError++;
+ #ifdef HAVE_PROTOBUF
+@@ -287,7 +287,7 @@ int asyncresolve(const ComboAddress& ip, const DNSName
+     return 1; // success - oddly enough
+   }
+   catch(...) {
+-    L<<Logger::Notice<<"Unknown error parsing packet from remote server"<<endl;
++    g_log<<Logger::Notice<<"Unknown error parsing packet from remote server"<<endl;
+   }
+   
+   g_stats.serverParseError++; 
+--- pdns_recursor.cc.orig	2018-03-29 13:04:45 UTC
++++ pdns_recursor.cc
+@@ -367,12 +367,12 @@ static void setSocketBuffer(int fd, int optname, uint3
+   socklen_t len=sizeof(psize);
+ 
+   if(!getsockopt(fd, SOL_SOCKET, optname, (char*)&psize, &len) && psize > size) {
+-    L<<Logger::Error<<"Not decreasing socket buffer size from "<<psize<<" to "<<size<<endl;
++    g_log<<Logger::Error<<"Not decreasing socket buffer size from "<<psize<<" to "<<size<<endl;
+     return;
+   }
+ 
+   if (setsockopt(fd, SOL_SOCKET, optname, (char*)&size, sizeof(size)) < 0 )
+-    L<<Logger::Error<<"Unable to raise socket buffer size to "<<size<<": "<<strerror(errno)<<endl;
++    g_log<<Logger::Error<<"Unable to raise socket buffer size to "<<size<<": "<<strerror(errno)<<endl;
+ }
+ 
+ 
+@@ -415,7 +415,7 @@ class UDPClientSocks (public)
+         closesocket(*fd);
+       }
+       catch(const PDNSException& e) {
+-        L<<Logger::Error<<"Error closing UDP socket after connect() failed: "<<e.reason<<endl;
++        g_log<<Logger::Error<<"Error closing UDP socket after connect() failed: "<<e.reason<<endl;
+       }
+ 
+       if(err==ENETUNREACH) // Seth "My Interfaces Are Like A Yo Yo" Arnold special
+@@ -453,7 +453,7 @@ class UDPClientSocks (public)
+       closesocket(*i);
+     }
+     catch(const PDNSException& e) {
+-      L<<Logger::Error<<"Error closing returned UDP socket: "<<e.reason<<endl;
++      g_log<<Logger::Error<<"Error closing returned UDP socket: "<<e.reason<<endl;
+     }
+ 
+     d_socks.erase(i++);
+@@ -569,7 +569,7 @@ int arecvfrom(char *data, size_t len, int flags, const
+     *d_len=packet.size();
+     memcpy(data,packet.c_str(),min(len,*d_len));
+     if(*nearMissLimit && pident.nearMisses > *nearMissLimit) {
+-      L<<Logger::Error<<"Too many ("<<pident.nearMisses<<" > "<<*nearMissLimit<<") bogus answers for '"<<domain<<"' from "<<fromaddr.toString()<<", assuming spoof attempt."<<endl;
++      g_log<<Logger::Error<<"Too many ("<<pident.nearMisses<<" > "<<*nearMissLimit<<") bogus answers for '"<<domain<<"' from "<<fromaddr.toString()<<", assuming spoof attempt."<<endl;
+       g_stats.spoofCount++;
+       return -1;
+     }
+@@ -589,7 +589,7 @@ static void writePid(void)
+   if(of)
+     of<< Utility::getpid() <<endl;
+   else
+-    L<<Logger::Error<<"Writing pid for "<<Utility::getpid()<<" to "<<s_pidfname<<" failed: "<<strerror(errno)<<endl;
++    g_log<<Logger::Error<<"Writing pid for "<<Utility::getpid()<<" to "<<s_pidfname<<" failed: "<<strerror(errno)<<endl;
+ }
+ 
+ TCPConnection::TCPConnection(int fd, const ComboAddress& addr) : d_remote(addr), d_fd(fd)
+@@ -602,10 +602,10 @@ TCPConnection::~TCPConnection()
+ {
+   try {
+     if(closesocket(d_fd) < 0)
+-      L<<Logger::Error<<"Error closing socket for TCPConnection"<<endl;
++      g_log<<Logger::Error<<"Error closing socket for TCPConnection"<<endl;
+   }
+   catch(const PDNSException& e) {
+-    L<<Logger::Error<<"Error closing TCPConnection socket: "<<e.reason<<endl;
++    g_log<<Logger::Error<<"Error closing TCPConnection socket: "<<e.reason<<endl;
+   }
+ 
+   if(t_tcpClientCounts->count(d_remote) && !(*t_tcpClientCounts)[d_remote]--)
+@@ -858,12 +858,12 @@ static void startDoResolve(void *p)
+ 
+ 
+     if(!g_quiet || tracedQuery) {
+-      L<<Logger::Warning<<t_id<<" ["<<MT->getTid()<<"/"<<MT->numProcesses()<<"] " << (dc->d_tcp ? "TCP " : "") << "question for '"<<dc->d_mdp.d_qname<<"|"
++      g_log<<Logger::Warning<<t_id<<" ["<<MT->getTid()<<"/"<<MT->numProcesses()<<"] " << (dc->d_tcp ? "TCP " : "") << "question for '"<<dc->d_mdp.d_qname<<"|"
+        <<DNSRecordContent::NumberToType(dc->d_mdp.d_qtype)<<"' from "<<dc->getRemote();
+       if(!dc->d_ednssubnet.source.empty()) {
+-        L<<" (ecs "<<dc->d_ednssubnet.source.toString()<<")";
++        g_log<<" (ecs "<<dc->d_ednssubnet.source.toString()<<")";
+       }
+-      L<<endl;
++      g_log<<endl;
+     }
+ 
+     sr.setId(MT->getTid());
+@@ -926,7 +926,7 @@ static void startDoResolve(void *p)
+       }
+       catch(ImmediateServFailException &e) {
+         if(g_logCommonErrors)
+-          L<<Logger::Notice<<"Sending SERVFAIL to "<<dc->getRemote()<<" during resolve of '"<<dc->d_mdp.d_qname<<"' because: "<<e.reason<<endl;
++          g_log<<Logger::Notice<<"Sending SERVFAIL to "<<dc->getRemote()<<" during resolve of '"<<dc->d_mdp.d_qname<<"' because: "<<e.reason<<endl;
+         res = RCode::ServFail;
+       }
+ 
+@@ -1048,7 +1048,7 @@ static void startDoResolve(void *p)
+         boost::split(lines, trace, boost::is_any_of("\n"));
+         for(const string& line : lines) {
+           if(!line.empty())
+-            L<<Logger::Warning<< line << endl;
++            g_log<<Logger::Warning<< line << endl;
+         }
+       }
+     }
+@@ -1065,14 +1065,14 @@ static void startDoResolve(void *p)
+       if(!shouldNotValidate && sr.isDNSSECValidationRequested()) {
+         try {
+           if(sr.doLog()) {
+-            L<<Logger::Warning<<"Starting validation of answer to "<<dc->d_mdp.d_qname<<"|"<<QType(dc->d_mdp.d_qtype).getName()<<" for "<<dc->d_remote.toStringWithPort()<<endl;
++            g_log<<Logger::Warning<<"Starting validation of answer to "<<dc->d_mdp.d_qname<<"|"<<QType(dc->d_mdp.d_qtype).getName()<<" for "<<dc->d_remote.toStringWithPort()<<endl;
+           }
+ 
+           auto state = sr.getValidationState();
+ 
+           if(state == Secure) {
+             if(sr.doLog()) {
+-              L<<Logger::Warning<<"Answer to "<<dc->d_mdp.d_qname<<"|"<<QType(dc->d_mdp.d_qtype).getName()<<" for "<<dc->d_remote.toStringWithPort()<<" validates correctly"<<endl;
++              g_log<<Logger::Warning<<"Answer to "<<dc->d_mdp.d_qname<<"|"<<QType(dc->d_mdp.d_qtype).getName()<<" for "<<dc->d_remote.toStringWithPort()<<" validates correctly"<<endl;
+             }
+             
+             // Is the query source interested in the value of the ad-bit?
+@@ -1081,34 +1081,34 @@ static void startDoResolve(void *p)
+           }
+           else if(state == Insecure) {
+             if(sr.doLog()) {
+-              L<<Logger::Warning<<"Answer to "<<dc->d_mdp.d_qname<<"|"<<QType(dc->d_mdp.d_qtype).getName()<<" for "<<dc->d_remote.toStringWithPort()<<" validates as Insecure"<<endl;
++              g_log<<Logger::Warning<<"Answer to "<<dc->d_mdp.d_qname<<"|"<<QType(dc->d_mdp.d_qtype).getName()<<" for "<<dc->d_remote.toStringWithPort()<<" validates as Insecure"<<endl;
+             }
+             
+             pw.getHeader()->ad=0;
+           }
+           else if(state == Bogus) {
+             if(g_dnssecLogBogus || sr.doLog() || g_dnssecmode == DNSSECMode::ValidateForLog) {
+-              L<<Logger::Warning<<"Answer to "<<dc->d_mdp.d_qname<<"|"<<QType(dc->d_mdp.d_qtype).getName()<<" for "<<dc->d_remote.toStringWithPort()<<" validates as Bogus"<<endl;
++              g_log<<Logger::Warning<<"Answer to "<<dc->d_mdp.d_qname<<"|"<<QType(dc->d_mdp.d_qtype).getName()<<" for "<<dc->d_remote.toStringWithPort()<<" validates as Bogus"<<endl;
+             }
+             
+             // Does the query or validation mode sending out a SERVFAIL on validation errors?
+             if(!pw.getHeader()->cd && (g_dnssecmode == DNSSECMode::ValidateAll || dc->d_mdp.d_header.ad || DNSSECOK)) {
+               if(sr.doLog()) {
+-                L<<Logger::Warning<<"Sending out SERVFAIL for "<<dc->d_mdp.d_qname<<"|"<<QType(dc->d_mdp.d_qtype).getName()<<" because recursor or query demands it for Bogus results"<<endl;
++                g_log<<Logger::Warning<<"Sending out SERVFAIL for "<<dc->d_mdp.d_qname<<"|"<<QType(dc->d_mdp.d_qtype).getName()<<" because recursor or query demands it for Bogus results"<<endl;
+               }
+               
+               pw.getHeader()->rcode=RCode::ServFail;
+               goto sendit;
+             } else {
+               if(sr.doLog()) {
+-                L<<Logger::Warning<<"Not sending out SERVFAIL for "<<dc->d_mdp.d_qname<<"|"<<QType(dc->d_mdp.d_qtype).getName()<<" Bogus validation since neither config nor query demands this"<<endl;
++                g_log<<Logger::Warning<<"Not sending out SERVFAIL for "<<dc->d_mdp.d_qname<<"|"<<QType(dc->d_mdp.d_qtype).getName()<<" Bogus validation since neither config nor query demands this"<<endl;
+               }
+             }
+           }
+         }
+         catch(ImmediateServFailException &e) {
+           if(g_logCommonErrors)
+-            L<<Logger::Notice<<"Sending SERVFAIL to "<<dc->getRemote()<<" during validation of '"<<dc->d_mdp.d_qname<<"|"<<QType(dc->d_mdp.d_qtype).getName()<<"' because: "<<e.reason<<endl;
++            g_log<<Logger::Notice<<"Sending SERVFAIL to "<<dc->getRemote()<<" during validation of '"<<dc->d_mdp.d_qname<<"|"<<QType(dc->d_mdp.d_qtype).getName()<<"' because: "<<e.reason<<endl;
+           pw.getHeader()->rcode=RCode::ServFail;
+           goto sendit;
+         }
+@@ -1195,7 +1195,7 @@ static void startDoResolve(void *p)
+ 	addCMsgSrcAddr(&msgh, cbuf, &dc->d_local, 0);
+       }
+       if(sendmsg(dc->d_socket, &msgh, 0) < 0 && g_logCommonErrors) 
+-        L<<Logger::Warning<<"Sending UDP reply to client "<<dc->d_remote.toStringWithPort()<<" failed with: "<<strerror(errno)<<endl;
++        g_log<<Logger::Warning<<"Sending UDP reply to client "<<dc->d_remote.toStringWithPort()<<" failed with: "<<strerror(errno)<<endl;
+ 
+       if(!SyncRes::s_nopacketcache && !variableAnswer && !sr.wasVariable() ) {
+         t_packetCache->insertResponsePacket(dc->d_tag, dc->d_qhash, dc->d_mdp.d_qname, dc->d_mdp.d_qtype, dc->d_mdp.d_qclass,
+@@ -1221,11 +1221,11 @@ static void startDoResolve(void *p)
+       bool hadError=true;
+ 
+       if(wret == 0)
+-        L<<Logger::Error<<"EOF writing TCP answer to "<<dc->getRemote()<<endl;
++        g_log<<Logger::Error<<"EOF writing TCP answer to "<<dc->getRemote()<<endl;
+       else if(wret < 0 )
+-        L<<Logger::Error<<"Error writing TCP answer to "<<dc->getRemote()<<": "<< strerror(errno) <<endl;
++        g_log<<Logger::Error<<"Error writing TCP answer to "<<dc->getRemote()<<": "<< strerror(errno) <<endl;
+       else if((unsigned int)wret != 2 + packet.size())
+-        L<<Logger::Error<<"Oops, partial answer sent to "<<dc->getRemote()<<" for "<<dc->d_mdp.d_qname<<" (size="<< (2 + packet.size()) <<", sent "<<wret<<")"<<endl;
++        g_log<<Logger::Error<<"Oops, partial answer sent to "<<dc->getRemote()<<" for "<<dc->d_mdp.d_qname<<" (size="<< (2 + packet.size()) <<", sent "<<wret<<")"<<endl;
+       else
+         hadError=false;
+ 
+@@ -1250,16 +1250,16 @@ static void startDoResolve(void *p)
+     }
+     float spent=makeFloat(sr.getNow()-dc->d_now);
+     if(!g_quiet) {
+-      L<<Logger::Error<<t_id<<" ["<<MT->getTid()<<"/"<<MT->numProcesses()<<"] answer to "<<(dc->d_mdp.d_header.rd?"":"non-rd ")<<"question '"<<dc->d_mdp.d_qname<<"|"<<DNSRecordContent::NumberToType(dc->d_mdp.d_qtype);
+-      L<<"': "<<ntohs(pw.getHeader()->ancount)<<" answers, "<<ntohs(pw.getHeader()->arcount)<<" additional, took "<<sr.d_outqueries<<" packets, "<<
++      g_log<<Logger::Error<<t_id<<" ["<<MT->getTid()<<"/"<<MT->numProcesses()<<"] answer to "<<(dc->d_mdp.d_header.rd?"":"non-rd ")<<"question '"<<dc->d_mdp.d_qname<<"|"<<DNSRecordContent::NumberToType(dc->d_mdp.d_qtype);
++      g_log<<"': "<<ntohs(pw.getHeader()->ancount)<<" answers, "<<ntohs(pw.getHeader()->arcount)<<" additional, took "<<sr.d_outqueries<<" packets, "<<
+ 	sr.d_totUsec/1000.0<<" netw ms, "<< spent*1000.0<<" tot ms, "<<
+ 	sr.d_throttledqueries<<" throttled, "<<sr.d_timeouts<<" timeouts, "<<sr.d_tcpoutqueries<<" tcp connections, rcode="<< res;
+ 
+       if(!shouldNotValidate && sr.isDNSSECValidationRequested()) {
+-	L<< ", dnssec="<<vStates[sr.getValidationState()];
++	g_log<< ", dnssec="<<vStates[sr.getValidationState()];
+       }
+ 	
+-      L<<endl;
++      g_log<<endl;
+ 
+     }
+ 
+@@ -1307,28 +1307,28 @@ static void startDoResolve(void *p)
+     dc=0;
+   }
+   catch(PDNSException &ae) {
+-    L<<Logger::Error<<"startDoResolve problem "<<makeLoginfo(dc)<<": "<<ae.reason<<endl;
++    g_log<<Logger::Error<<"startDoResolve problem "<<makeLoginfo(dc)<<": "<<ae.reason<<endl;
+     delete dc;
+   }
+   catch(MOADNSException& e) {
+-    L<<Logger::Error<<"DNS parser error "<<makeLoginfo(dc) <<": "<<dc->d_mdp.d_qname<<", "<<e.what()<<endl;
++    g_log<<Logger::Error<<"DNS parser error "<<makeLoginfo(dc) <<": "<<dc->d_mdp.d_qname<<", "<<e.what()<<endl;
+     delete dc;
+   }
+   catch(std::exception& e) {
+-    L<<Logger::Error<<"STL error "<< makeLoginfo(dc)<<": "<<e.what();
++    g_log<<Logger::Error<<"STL error "<< makeLoginfo(dc)<<": "<<e.what();
+ 
+     // Luawrapper nests the exception from Lua, so we unnest it here
+     try {
+         std::rethrow_if_nested(e);
+     } catch(const std::exception& ne) {
+-        L<<". Extra info: "<<ne.what();
++        g_log<<". Extra info: "<<ne.what();
+     } catch(...) {}
+ 
+-    L<<endl;
++    g_log<<endl;
+     delete dc;
+   }
+   catch(...) {
+-    L<<Logger::Error<<"Any other exception in a resolver context "<< makeLoginfo(dc) <<endl;
++    g_log<<Logger::Error<<"Any other exception in a resolver context "<< makeLoginfo(dc) <<endl;
+   }
+ 
+   g_stats.maxMThreadStackUsage = max(MT->getMaxStackUsage(), g_stats.maxMThreadStackUsage);
+@@ -1436,7 +1436,7 @@ static void handleRunningTCPQuestion(int fd, FDMultipl
+     }
+     if(!bytes || bytes < 0) {
+       if(g_logCommonErrors)
+-        L<<Logger::Error<<"TCP client "<< conn->d_remote.toString() <<" disconnected after first byte"<<endl;
++        g_log<<Logger::Error<<"TCP client "<< conn->d_remote.toString() <<" disconnected after first byte"<<endl;
+       t_fdm->removeReadFD(fd);
+       return;
+     }
+@@ -1444,7 +1444,7 @@ static void handleRunningTCPQuestion(int fd, FDMultipl
+   else if(conn->state==TCPConnection::GETQUESTION) {
+     ssize_t bytes=recv(conn->getFD(), conn->data + conn->bytesread, conn->qlen - conn->bytesread, 0);
+     if(!bytes || bytes < 0 || bytes > std::numeric_limits<std::uint16_t>::max()) {
+-      L<<Logger::Error<<"TCP client "<< conn->d_remote.toString() <<" disconnected while reading question body"<<endl;
++      g_log<<Logger::Error<<"TCP client "<< conn->d_remote.toString() <<" disconnected while reading question body"<<endl;
+       t_fdm->removeReadFD(fd);
+       return;
+     }
+@@ -1459,7 +1459,7 @@ static void handleRunningTCPQuestion(int fd, FDMultipl
+       catch(MOADNSException &mde) {
+         g_stats.clientParseError++;
+         if(g_logCommonErrors)
+-          L<<Logger::Error<<"Unable to parse packet from TCP client "<< conn->d_remote.toString() <<endl;
++          g_log<<Logger::Error<<"Unable to parse packet from TCP client "<< conn->d_remote.toString() <<endl;
+         return;
+       }
+       dc->d_tcpConnection = conn; // carry the torch
+@@ -1503,14 +1503,14 @@ static void handleRunningTCPQuestion(int fd, FDMultipl
+             }
+             catch(const std::exception& e)  {
+               if(g_logCommonErrors)
+-                L<<Logger::Warning<<"Error parsing a query packet qname='"<<qname<<"' for tag determination, setting tag=0: "<<e.what()<<endl;
++                g_log<<Logger::Warning<<"Error parsing a query packet qname='"<<qname<<"' for tag determination, setting tag=0: "<<e.what()<<endl;
+             }
+           }
+         }
+         catch(const std::exception& e)
+         {
+           if(g_logCommonErrors)
+-            L<<Logger::Warning<<"Error parsing a query packet for tag determination, setting tag=0: "<<e.what()<<endl;
++            g_log<<Logger::Warning<<"Error parsing a query packet for tag determination, setting tag=0: "<<e.what()<<endl;
+         }
+       }
+ #ifdef HAVE_PROTOBUF
+@@ -1530,20 +1530,20 @@ static void handleRunningTCPQuestion(int fd, FDMultipl
+         }
+         catch(std::exception& e) {
+           if(g_logCommonErrors)
+-            L<<Logger::Warning<<"Error parsing a TCP query packet for edns subnet: "<<e.what()<<endl;
++            g_log<<Logger::Warning<<"Error parsing a TCP query packet for edns subnet: "<<e.what()<<endl;
+         }
+       }
+ #endif
+       if(dc->d_mdp.d_header.qr) {
+         delete dc;
+         g_stats.ignoredCount++;
+-        L<<Logger::Error<<"Ignoring answer from TCP client "<< conn->d_remote.toString() <<" on server socket!"<<endl;
++        g_log<<Logger::Error<<"Ignoring answer from TCP client "<< conn->d_remote.toString() <<" on server socket!"<<endl;
+         return;
+       }
+       if(dc->d_mdp.d_header.opcode) {
+         delete dc;
+         g_stats.ignoredCount++;
+-        L<<Logger::Error<<"Ignoring non-query opcode from TCP client "<< conn->d_remote.toString() <<" on server socket!"<<endl;
++        g_log<<Logger::Error<<"Ignoring non-query opcode from TCP client "<< conn->d_remote.toString() <<" on server socket!"<<endl;
+         return;
+       }
+       else {
+@@ -1569,7 +1569,7 @@ static void handleNewTCPQuestion(int fd, FDMultiplexer
+         closesocket(newsock);
+       }
+       catch(const PDNSException& e) {
+-        L<<Logger::Error<<"Error closing TCP socket after an over capacity drop: "<<e.reason<<endl;
++        g_log<<Logger::Error<<"Error closing TCP socket after an over capacity drop: "<<e.reason<<endl;
+       }
+       return;
+     }
+@@ -1578,14 +1578,14 @@ static void handleNewTCPQuestion(int fd, FDMultiplexer
+       t_remotes->push_back(addr);
+     if(t_allowFrom && !t_allowFrom->match(&addr)) {
+       if(!g_quiet)
+-        L<<Logger::Error<<"["<<MT->getTid()<<"] dropping TCP query from "<<addr.toString()<<", address not matched by allow-from"<<endl;
++        g_log<<Logger::Error<<"["<<MT->getTid()<<"] dropping TCP query from "<<addr.toString()<<", address not matched by allow-from"<<endl;
+ 
+       g_stats.unauthorizedTCP++;
+       try {
+         closesocket(newsock);
+       }
+       catch(const PDNSException& e) {
+-        L<<Logger::Error<<"Error closing TCP socket after an ACL drop: "<<e.reason<<endl;
++        g_log<<Logger::Error<<"Error closing TCP socket after an ACL drop: "<<e.reason<<endl;
+       }
+       return;
+     }
+@@ -1595,7 +1595,7 @@ static void handleNewTCPQuestion(int fd, FDMultiplexer
+         closesocket(newsock); // don't call TCPConnection::closeAndCleanup here - did not enter it in the counts yet!
+       }
+       catch(const PDNSException& e) {
+-        L<<Logger::Error<<"Error closing TCP socket after an overflow drop: "<<e.reason<<endl;
++        g_log<<Logger::Error<<"Error closing TCP socket after an overflow drop: "<<e.reason<<endl;
+       }
+       return;
+     }
+@@ -1687,14 +1687,14 @@ static string* doProcessUDPQuestion(const std::string&
+           }
+           catch(const std::exception& e)  {
+             if(g_logCommonErrors)
+-              L<<Logger::Warning<<"Error parsing a query packet qname='"<<qname<<"' for tag determination, setting tag=0: "<<e.what()<<endl;
++              g_log<<Logger::Warning<<"Error parsing a query packet qname='"<<qname<<"' for tag determination, setting tag=0: "<<e.what()<<endl;
+           }
+         }
+       }
+       catch(const std::exception& e)
+       {
+         if(g_logCommonErrors)
+-          L<<Logger::Warning<<"Error parsing a query packet for tag determination, setting tag=0: "<<e.what()<<endl;
++          g_log<<Logger::Warning<<"Error parsing a query packet for tag determination, setting tag=0: "<<e.what()<<endl;
+       }
+     }
+ 
+@@ -1732,7 +1732,7 @@ static string* doProcessUDPQuestion(const std::string&
+       }
+ #endif /* HAVE_PROTOBUF */
+       if(!g_quiet)
+-        L<<Logger::Notice<<t_id<< " question answered from packet cache tag="<<ctag<<" from "<<fromaddr.toString()<<endl;
++        g_log<<Logger::Notice<<t_id<< " question answered from packet cache tag="<<ctag<<" from "<<fromaddr.toString()<<endl;
+ 
+       g_stats.packetCacheHits++;
+       SyncRes::s_queries++;
+@@ -1747,7 +1747,7 @@ static string* doProcessUDPQuestion(const std::string&
+ 	addCMsgSrcAddr(&msgh, cbuf, &destaddr, 0);
+       }
+       if(sendmsg(fd, &msgh, 0) < 0 && g_logCommonErrors)
+-        L<<Logger::Warning<<"Sending UDP reply to client "<<fromaddr.toStringWithPort()<<" failed with: "<<strerror(errno)<<endl;
++        g_log<<Logger::Warning<<"Sending UDP reply to client "<<fromaddr.toStringWithPort()<<" failed with: "<<strerror(errno)<<endl;
+ 
+       if(response.length() >= sizeof(struct dnsheader)) {
+         struct dnsheader tmpdh;
+@@ -1760,14 +1760,14 @@ static string* doProcessUDPQuestion(const std::string&
+     }
+   }
+   catch(std::exception& e) {
+-    L<<Logger::Error<<"Error processing or aging answer packet: "<<e.what()<<endl;
++    g_log<<Logger::Error<<"Error processing or aging answer packet: "<<e.what()<<endl;
+     return 0;
+   }
+ 
+   if(t_pdl) {
+     if(t_pdl->ipfilter(fromaddr, destaddr, *dh)) {
+       if(!g_quiet)
+-	L<<Logger::Notice<<t_id<<" ["<<MT->getTid()<<"/"<<MT->numProcesses()<<"] DROPPED question from "<<fromaddr.toStringWithPort()<<" based on policy"<<endl;
++	g_log<<Logger::Notice<<t_id<<" ["<<MT->getTid()<<"/"<<MT->numProcesses()<<"] DROPPED question from "<<fromaddr.toStringWithPort()<<" based on policy"<<endl;
+       g_stats.policyDrops++;
+       return 0;
+     }
+@@ -1775,7 +1775,7 @@ static string* doProcessUDPQuestion(const std::string&
+ 
+   if(MT->numProcesses() > g_maxMThreads) {
+     if(!g_quiet)
+-      L<<Logger::Notice<<t_id<<" ["<<MT->getTid()<<"/"<<MT->numProcesses()<<"] DROPPED question from "<<fromaddr.toStringWithPort()<<", over capacity"<<endl;
++      g_log<<Logger::Notice<<t_id<<" ["<<MT->getTid()<<"/"<<MT->numProcesses()<<"] DROPPED question from "<<fromaddr.toStringWithPort()<<", over capacity"<<endl;
+ 
+     g_stats.overCapacityDrops++;
+     return 0;
+@@ -1832,7 +1832,7 @@ static void handleNewUDPQuestion(int fd, FDMultiplexer
+ 
+     if(t_allowFrom && !t_allowFrom->match(&fromaddr)) {
+       if(!g_quiet)
+-        L<<Logger::Error<<"["<<MT->getTid()<<"] dropping UDP query from "<<fromaddr.toString()<<", address not matched by allow-from"<<endl;
++        g_log<<Logger::Error<<"["<<MT->getTid()<<"] dropping UDP query from "<<fromaddr.toString()<<", address not matched by allow-from"<<endl;
+ 
+       g_stats.unauthorizedUDP++;
+       return;
+@@ -1840,7 +1840,7 @@ static void handleNewUDPQuestion(int fd, FDMultiplexer
+     BOOST_STATIC_ASSERT(offsetof(sockaddr_in, sin_port) == offsetof(sockaddr_in6, sin6_port));
+     if(!fromaddr.sin4.sin_port) { // also works for IPv6
+      if(!g_quiet)
+-        L<<Logger::Error<<"["<<MT->getTid()<<"] dropping UDP query from "<<fromaddr.toStringWithPort()<<", can't deal with port 0"<<endl;
++        g_log<<Logger::Error<<"["<<MT->getTid()<<"] dropping UDP query from "<<fromaddr.toStringWithPort()<<", can't deal with port 0"<<endl;
+ 
+       g_stats.clientParseError++; // not quite the best place to put it, but needs to go somewhere
+       return;
+@@ -1851,12 +1851,12 @@ static void handleNewUDPQuestion(int fd, FDMultiplexer
+       if(dh->qr) {
+         g_stats.ignoredCount++;
+         if(g_logCommonErrors)
+-          L<<Logger::Error<<"Ignoring answer from "<<fromaddr.toString()<<" on server socket!"<<endl;
++          g_log<<Logger::Error<<"Ignoring answer from "<<fromaddr.toString()<<" on server socket!"<<endl;
+       }
+       else if(dh->opcode) {
+         g_stats.ignoredCount++;
+         if(g_logCommonErrors)
+-          L<<Logger::Error<<"Ignoring non-query opcode "<<dh->opcode<<" from "<<fromaddr.toString()<<" on server socket!"<<endl;
++          g_log<<Logger::Error<<"Ignoring non-query opcode "<<dh->opcode<<" from "<<fromaddr.toString()<<" on server socket!"<<endl;
+       }
+       else {
+         string question(data, (size_t)len);
+@@ -1889,12 +1889,12 @@ static void handleNewUDPQuestion(int fd, FDMultiplexer
+     catch(MOADNSException& mde) {
+       g_stats.clientParseError++;
+       if(g_logCommonErrors)
+-        L<<Logger::Error<<"Unable to parse packet from remote UDP client "<<fromaddr.toString() <<": "<<mde.what()<<endl;
++        g_log<<Logger::Error<<"Unable to parse packet from remote UDP client "<<fromaddr.toString() <<": "<<mde.what()<<endl;
+     }
+     catch(std::runtime_error& e) {
+       g_stats.clientParseError++;
+       if(g_logCommonErrors)
+-        L<<Logger::Error<<"Unable to parse packet from remote UDP client "<<fromaddr.toString() <<": "<<e.what()<<endl;
++        g_log<<Logger::Error<<"Unable to parse packet from remote UDP client "<<fromaddr.toString() <<": "<<e.what()<<endl;
+     }
+   }
+   else {
+@@ -1938,17 +1938,17 @@ static void makeTCPServerSockets(unsigned int threadId
+ 
+     int tmp=1;
+     if(setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &tmp, sizeof tmp)<0) {
+-      L<<Logger::Error<<"Setsockopt failed for TCP listening socket"<<endl;
++      g_log<<Logger::Error<<"Setsockopt failed for TCP listening socket"<<endl;
+       exit(1);
+     }
+     if(sin.sin6.sin6_family == AF_INET6 && setsockopt(fd, IPPROTO_IPV6, IPV6_V6ONLY, &tmp, sizeof(tmp)) < 0) {
+-      L<<Logger::Error<<"Failed to set IPv6 socket to IPv6 only, continuing anyhow: "<<strerror(errno)<<endl;
++      g_log<<Logger::Error<<"Failed to set IPv6 socket to IPv6 only, continuing anyhow: "<<strerror(errno)<<endl;
+     }
+ 
+ #ifdef TCP_DEFER_ACCEPT
+     if(setsockopt(fd, SOL_TCP, TCP_DEFER_ACCEPT, &tmp, sizeof tmp) >= 0) {
+       if(i==locals.begin())
+-        L<<Logger::Error<<"Enabled TCP data-ready filter for (slight) DoS protection"<<endl;
++        g_log<<Logger::Error<<"Enabled TCP data-ready filter for (slight) DoS protection"<<endl;
+     }
+ #endif
+ 
+@@ -1966,10 +1966,10 @@ static void makeTCPServerSockets(unsigned int threadId
+ #ifdef TCP_FASTOPEN
+       int fastOpenQueueSize = ::arg().asNum("tcp-fast-open");
+       if (setsockopt(fd, IPPROTO_TCP, TCP_FASTOPEN, &fastOpenQueueSize, sizeof fastOpenQueueSize) < 0) {
+-        L<<Logger::Error<<"Failed to enable TCP Fast Open for listening socket: "<<strerror(errno)<<endl;
++        g_log<<Logger::Error<<"Failed to enable TCP Fast Open for listening socket: "<<strerror(errno)<<endl;
+       }
+ #else
+-      L<<Logger::Warning<<"TCP Fast Open configured but not supported for listening socket"<<endl;
++      g_log<<Logger::Warning<<"TCP Fast Open configured but not supported for listening socket"<<endl;
+ #endif
+     }
+ 
+@@ -1986,9 +1986,9 @@ static void makeTCPServerSockets(unsigned int threadId
+     // we don't need to update g_listenSocketsAddresses since it doesn't work for TCP/IP:
+     //  - fd is not that which we know here, but returned from accept()
+     if(sin.sin4.sin_family == AF_INET)
+-      L<<Logger::Error<<"Listening for TCP queries on "<< sin.toString() <<":"<<st.port<<endl;
++      g_log<<Logger::Error<<"Listening for TCP queries on "<< sin.toString() <<":"<<st.port<<endl;
+     else
+-      L<<Logger::Error<<"Listening for TCP queries on ["<< sin.toString() <<"]:"<<st.port<<endl;
++      g_log<<Logger::Error<<"Listening for TCP queries on ["<< sin.toString() <<"]:"<<st.port<<endl;
+   }
+ }
+ 
+@@ -2021,7 +2021,7 @@ static void makeUDPServerSockets(unsigned int threadId
+       throw PDNSException("Making a UDP server socket for resolver: "+netstringerror());
+     }
+     if (!setSocketTimestamps(fd))
+-      L<<Logger::Warning<<"Unable to enable timestamp reporting for socket"<<endl;
++      g_log<<Logger::Warning<<"Unable to enable timestamp reporting for socket"<<endl;
+ 
+     if(IsAnyAddress(sin)) {
+       if(sin.sin4.sin_family == AF_INET)
+@@ -2033,7 +2033,7 @@ static void makeUDPServerSockets(unsigned int threadId
+           g_fromtosockets.insert(fd);
+ #endif
+       if(sin.sin6.sin6_family == AF_INET6 && setsockopt(fd, IPPROTO_IPV6, IPV6_V6ONLY, &one, sizeof(one)) < 0) {
+-	L<<Logger::Error<<"Failed to set IPv6 socket to IPv6 only, continuing anyhow: "<<strerror(errno)<<endl;
++	g_log<<Logger::Error<<"Failed to set IPv6 socket to IPv6 only, continuing anyhow: "<<strerror(errno)<<endl;
+       }
+     }
+     if( ::arg().mustDo("non-local-bind") )
+@@ -2060,9 +2060,9 @@ static void makeUDPServerSockets(unsigned int threadId
+     deferredAdds[threadId].push_back(make_pair(fd, handleNewUDPQuestion));
+     g_listenSocketsAddresses[fd]=sin;  // this is written to only from the startup thread, not from the workers
+     if(sin.sin4.sin_family == AF_INET)
+-      L<<Logger::Error<<"Listening for UDP queries on "<< sin.toString() <<":"<<st.port<<endl;
++      g_log<<Logger::Error<<"Listening for UDP queries on "<< sin.toString() <<":"<<st.port<<endl;
+     else
+-      L<<Logger::Error<<"Listening for UDP queries on ["<< sin.toString() <<"]:"<<st.port<<endl;
++      g_log<<Logger::Error<<"Listening for UDP queries on ["<< sin.toString() <<"]:"<<st.port<<endl;
+   }
+ }
+ 
+@@ -2075,7 +2075,7 @@ static void daemonize(void)
+ 
+   int i=open("/dev/null",O_RDWR); /* open stdin */
+   if(i < 0)
+-    L<<Logger::Critical<<"Unable to open /dev/null: "<<stringerror()<<endl;
++    g_log<<Logger::Critical<<"Unable to open /dev/null: "<<stringerror()<<endl;
+   else {
+     dup2(i,0); /* stdin */
+     dup2(i,1); /* stderr */
+@@ -2105,35 +2105,35 @@ static void doStats(void)
+   uint64_t cacheMisses = broadcastAccFunction<uint64_t>(pleaseGetCacheMisses);
+ 
+   if(g_stats.qcounter && (cacheHits + cacheMisses) && SyncRes::s_queries && SyncRes::s_outqueries) {
+-    L<<Logger::Notice<<"stats: "<<g_stats.qcounter<<" questions, "<<
++    g_log<<Logger::Notice<<"stats: "<<g_stats.qcounter<<" questions, "<<
+       broadcastAccFunction<uint64_t>(pleaseGetCacheSize)<< " cache entries, "<<
+       broadcastAccFunction<uint64_t>(pleaseGetNegCacheSize)<<" negative entries, "<<
+       (int)((cacheHits*100.0)/(cacheHits+cacheMisses))<<"% cache hits"<<endl;
+ 
+-    L<<Logger::Notice<<"stats: throttle map: "
++    g_log<<Logger::Notice<<"stats: throttle map: "
+       << broadcastAccFunction<uint64_t>(pleaseGetThrottleSize) <<", ns speeds: "
+       << broadcastAccFunction<uint64_t>(pleaseGetNsSpeedsSize)<<endl;
+-    L<<Logger::Notice<<"stats: outpacket/query ratio "<<(int)(SyncRes::s_outqueries*100.0/SyncRes::s_queries)<<"%";
+-    L<<Logger::Notice<<", "<<(int)(SyncRes::s_throttledqueries*100.0/(SyncRes::s_outqueries+SyncRes::s_throttledqueries))<<"% throttled, "
++    g_log<<Logger::Notice<<"stats: outpacket/query ratio "<<(int)(SyncRes::s_outqueries*100.0/SyncRes::s_queries)<<"%";
++    g_log<<Logger::Notice<<", "<<(int)(SyncRes::s_throttledqueries*100.0/(SyncRes::s_outqueries+SyncRes::s_throttledqueries))<<"% throttled, "
+      <<SyncRes::s_nodelegated<<" no-delegation drops"<<endl;
+-    L<<Logger::Notice<<"stats: "<<SyncRes::s_tcpoutqueries<<" outgoing tcp connections, "<<
++    g_log<<Logger::Notice<<"stats: "<<SyncRes::s_tcpoutqueries<<" outgoing tcp connections, "<<
+       broadcastAccFunction<uint64_t>(pleaseGetConcurrentQueries)<<" queries running, "<<SyncRes::s_outgoingtimeouts<<" outgoing timeouts"<<endl;
+ 
+-    //L<<Logger::Notice<<"stats: "<<g_stats.ednsPingMatches<<" ping matches, "<<g_stats.ednsPingMismatches<<" mismatches, "<<
++    //g_log<<Logger::Notice<<"stats: "<<g_stats.ednsPingMatches<<" ping matches, "<<g_stats.ednsPingMismatches<<" mismatches, "<<
+       //g_stats.noPingOutQueries<<" outqueries w/o ping, "<< g_stats.noEdnsOutQueries<<" w/o EDNS"<<endl;
+ 
+-    L<<Logger::Notice<<"stats: " <<  broadcastAccFunction<uint64_t>(pleaseGetPacketCacheSize) <<
++    g_log<<Logger::Notice<<"stats: " <<  broadcastAccFunction<uint64_t>(pleaseGetPacketCacheSize) <<
+     " packet cache entries, "<<(int)(100.0*broadcastAccFunction<uint64_t>(pleaseGetPacketCacheHits)/SyncRes::s_queries) << "% packet cache hits"<<endl;
+ 
+     time_t now = time(0);
+     if(lastOutputTime && lastQueryCount && now != lastOutputTime) {
+-      L<<Logger::Notice<<"stats: "<< (SyncRes::s_queries - lastQueryCount) / (now - lastOutputTime) <<" qps (average over "<< (now - lastOutputTime) << " seconds)"<<endl;
++      g_log<<Logger::Notice<<"stats: "<< (SyncRes::s_queries - lastQueryCount) / (now - lastOutputTime) <<" qps (average over "<< (now - lastOutputTime) << " seconds)"<<endl;
+     }
+     lastOutputTime = now;
+     lastQueryCount = SyncRes::s_queries;
+   }
+   else if(statsWanted)
+-    L<<Logger::Notice<<"stats: no stats yet!"<<endl;
++    g_log<<Logger::Notice<<"stats: no stats yet!"<<endl;
+ 
+   statsWanted=false;
+ }
+@@ -2184,19 +2184,19 @@ static void houseKeeping(void *)
+ 	}
+ 	catch(std::exception& e)
+         {
+-          L<<Logger::Error<<"Exception while performing security poll: "<<e.what()<<endl;
++          g_log<<Logger::Error<<"Exception while performing security poll: "<<e.what()<<endl;
+         }
+         catch(PDNSException& e)
+         {
+-          L<<Logger::Error<<"Exception while performing security poll: "<<e.reason<<endl;
++          g_log<<Logger::Error<<"Exception while performing security poll: "<<e.reason<<endl;
+         }
+         catch(ImmediateServFailException &e)
+         {
+-          L<<Logger::Error<<"Exception while performing security poll: "<<e.reason<<endl;
++          g_log<<Logger::Error<<"Exception while performing security poll: "<<e.reason<<endl;
+         }
+         catch(...)
+         {
+-          L<<Logger::Error<<"Exception while performing security poll"<<endl;
++          g_log<<Logger::Error<<"Exception while performing security poll"<<endl;
+         }
+ 
+       }
+@@ -2206,7 +2206,7 @@ static void houseKeeping(void *)
+   catch(PDNSException& ae)
+     {
+       s_running=false;
+-      L<<Logger::Error<<"Fatal error in housekeeping thread: "<<ae.reason<<endl;
++      g_log<<Logger::Error<<"Fatal error in housekeeping thread: "<<ae.reason<<endl;
+       throw;
+     }
+ }
+@@ -2301,11 +2301,11 @@ static void handlePipeRequest(int fd, FDMultiplexer::f
+   }
+   catch(std::exception& e) {
+     if(g_logCommonErrors)
+-      L<<Logger::Error<<"PIPE function we executed created exception: "<<e.what()<<endl; // but what if they wanted an answer.. we send 0
++      g_log<<Logger::Error<<"PIPE function we executed created exception: "<<e.what()<<endl; // but what if they wanted an answer.. we send 0
+   }
+   catch(PDNSException& e) {
+     if(g_logCommonErrors)
+-      L<<Logger::Error<<"PIPE function we executed created PDNS exception: "<<e.reason<<endl; // but what if they wanted an answer.. we send 0
++      g_log<<Logger::Error<<"PIPE function we executed created PDNS exception: "<<e.reason<<endl; // but what if they wanted an answer.. we send 0
+   }
+   if(tmsg->wantAnswer) {
+     if(write(g_pipes[t_id].writeFromThread, &resp, sizeof(resp)) != sizeof(resp)) {
+@@ -2406,10 +2406,10 @@ static void handleRCC(int fd, FDMultiplexer::funcparam
+     command();
+   }
+   catch(std::exception& e) {
+-    L<<Logger::Error<<"Error dealing with control socket request: "<<e.what()<<endl;
++    g_log<<Logger::Error<<"Error dealing with control socket request: "<<e.what()<<endl;
+   }
+   catch(PDNSException& ae) {
+-    L<<Logger::Error<<"Error dealing with control socket request: "<<ae.reason<<endl;
++    g_log<<Logger::Error<<"Error dealing with control socket request: "<<ae.reason<<endl;
+   }
+ }
+ 
+@@ -2496,7 +2496,7 @@ static void handleUDPServerResponse(int fd, FDMultiple
+     else {
+       g_stats.serverParseError++;
+       if(g_logCommonErrors)
+-        L<<Logger::Error<<"Unable to parse packet from remote UDP server "<< fromaddr.toString() <<
++        g_log<<Logger::Error<<"Unable to parse packet from remote UDP server "<< fromaddr.toString() <<
+           ": packet smaller than DNS header"<<endl;
+     }
+ 
+@@ -2520,7 +2520,7 @@ static void handleUDPServerResponse(int fd, FDMultiple
+   pident.fd=fd;
+ 
+   if(!dh.qr && g_logCommonErrors) {
+-    L<<Logger::Notice<<"Not taking data from question on outgoing socket from "<< fromaddr.toStringWithPort()  <<endl;
++    g_log<<Logger::Notice<<"Not taking data from question on outgoing socket from "<< fromaddr.toStringWithPort()  <<endl;
+   }
+ 
+   if(!dh.qdcount || // UPC, Nominum, very old BIND on FormErr, NSD
+@@ -2535,7 +2535,7 @@ static void handleUDPServerResponse(int fd, FDMultiple
+     }
+     catch(std::exception& e) {
+       g_stats.serverParseError++; // won't be fed to lwres.cc, so we have to increment
+-      L<<Logger::Warning<<"Error in packet from remote nameserver "<< fromaddr.toStringWithPort() << ": "<<e.what() << endl;
++      g_log<<Logger::Warning<<"Error in packet from remote nameserver "<< fromaddr.toStringWithPort() << ": "<<e.what() << endl;
+       return;
+     }
+   }
+@@ -2568,7 +2568,7 @@ retryWithName:
+     }
+     g_stats.unexpectedCount++; // if we made it here, it really is an unexpected answer
+     if(g_logCommonErrors) {
+-      L<<Logger::Warning<<"Discarding unexpected packet from "<<fromaddr.toStringWithPort()<<": "<< (pident.domain.empty() ? "<empty>" : pident.domain.toString())<<", "<<pident.type<<", "<<MT->d_waiters.size()<<" waiters"<<endl;
++      g_log<<Logger::Warning<<"Discarding unexpected packet from "<<fromaddr.toStringWithPort()<<": "<< (pident.domain.empty() ? "<empty>" : pident.domain.toString())<<", "<<pident.type<<", "<<MT->d_waiters.size()<<" waiters"<<endl;
+     }
+   }
+   else if(fd >= 0) {
+@@ -2585,13 +2585,13 @@ FDMultiplexer* getMultiplexer()
+       return ret;
+     }
+     catch(FDMultiplexerException &fe) {
+-      L<<Logger::Error<<"Non-fatal error initializing possible multiplexer ("<<fe.what()<<"), falling back"<<endl;
++      g_log<<Logger::Error<<"Non-fatal error initializing possible multiplexer ("<<fe.what()<<"), falling back"<<endl;
+     }
+     catch(...) {
+-      L<<Logger::Error<<"Non-fatal error initializing possible multiplexer"<<endl;
++      g_log<<Logger::Error<<"Non-fatal error initializing possible multiplexer"<<endl;
+     }
+   }
+-  L<<Logger::Error<<"No working multiplexer found!"<<endl;
++  g_log<<Logger::Error<<"No working multiplexer found!"<<endl;
+   exit(1);
+ }
+ 
+@@ -2602,7 +2602,7 @@ static string* doReloadLuaScript()
+   try {
+     if(fname.empty()) {
+       t_pdl.reset();
+-      L<<Logger::Error<<t_id<<" Unloaded current lua script"<<endl;
++      g_log<<Logger::Error<<t_id<<" Unloaded current lua script"<<endl;
+       return new string("unloaded\n");
+     }
+     else {
+@@ -2610,11 +2610,11 @@ static string* doReloadLuaScript()
+     }
+   }
+   catch(std::exception& e) {
+-    L<<Logger::Error<<t_id<<" Retaining current script, error from '"<<fname<<"': "<< e.what() <<endl;
++    g_log<<Logger::Error<<t_id<<" Retaining current script, error from '"<<fname<<"': "<< e.what() <<endl;
+     return new string("retaining current script, error from '"+fname+"': "+e.what()+"\n");
+   }
+ 
+-  L<<Logger::Warning<<t_id<<" (Re)loaded lua script from '"<<fname<<"'"<<endl;
++  g_log<<Logger::Warning<<t_id<<" (Re)loaded lua script from '"<<fname<<"'"<<endl;
+   return new string("(re)loaded '"+fname+"'\n");
+ }
+ 
+@@ -2655,7 +2655,7 @@ static void checkLinuxIPv6Limits()
+   if(readFileIfThere("/proc/sys/net/ipv6/route/max_size", &line)) {
+     int lim=std::stoi(line);
+     if(lim < 16384) {
+-      L<<Logger::Error<<"If using IPv6, please raise sysctl net.ipv6.route.max_size, currently set to "<<lim<<" which is < 16384"<<endl;
++      g_log<<Logger::Error<<"If using IPv6, please raise sysctl net.ipv6.route.max_size, currently set to "<<lim<<" which is < 16384"<<endl;
+     }
+   }
+ #endif
+@@ -2669,11 +2669,11 @@ static void checkOrFixFDS()

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201804170933.w3H9XHh8023828>