Date: Tue, 17 Apr 2018 09:33:29 +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: r467587 - in head/dns/powerdns-recursor40: . files Message-ID: <201804170933.w3H9XTJX023971@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: jbeich Date: Tue Apr 17 09:33:28 2018 New Revision: 467587 URL: https://svnweb.freebsd.org/changeset/ports/467587 Log: dns/powerdns-recursor40: unbreak with boost 1.67 In file included from ecs.cc:1: In file included from ./syncres.hh:43: In file included from ./recpacketcache.hh:39: 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:43:11: note: expanded from macro 'L' #define L theL() ^ PR: 227427 Reported by: antoine (via exp-run) Obtained from: upstream Added: head/dns/powerdns-recursor40/files/patch-boost-1.67 (contents, props changed) Modified: head/dns/powerdns-recursor40/Makefile (contents, props changed) Modified: head/dns/powerdns-recursor40/Makefile ============================================================================== --- head/dns/powerdns-recursor40/Makefile Tue Apr 17 09:33:17 2018 (r467586) +++ head/dns/powerdns-recursor40/Makefile Tue Apr 17 09:33:28 2018 (r467587) @@ -3,7 +3,7 @@ PORTNAME= recursor DISTVERSION= 4.0.8 -PORTREVISION= 3 +PORTREVISION= 4 CATEGORIES= dns ipv6 MASTER_SITES= http://downloads.powerdns.com/releases/ PKGNAMEPREFIX= powerdns- Added: head/dns/powerdns-recursor40/files/patch-boost-1.67 ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/dns/powerdns-recursor40/files/patch-boost-1.67 Tue Apr 17 09:33:28 2018 (r467587) @@ -0,0 +1,2230 @@ +https://github.com/PowerDNS/pdns/commit/e6a9dde524b5 + +--- arguments.cc.orig 2017-12-11 10:38:52 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 2017-12-11 10:38:52 UTC ++++ dns.hh +@@ -241,7 +241,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 2017-12-11 10:38:52 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 2017-12-11 10:38:52 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) + { +@@ -102,7 +96,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"); + } + +@@ -137,13 +131,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 2017-12-11 10:38:52 UTC ++++ logger.hh +@@ -66,9 +66,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); +@@ -108,10 +108,10 @@ class Logger (public) + bool opened; + bool d_disableSyslog; + 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 2017-12-11 10:38:52 UTC ++++ lua-recursor4.cc +@@ -79,7 +79,6 @@ int RecursorLua4::gettag(const ComboAddress& remote, c + + + #else +-#undef L + #include "ext/luawrapper/include/LuaContext.hpp" + + static int followCNAMERecords(vector<DNSRecord>& ret, const QType& qtype) +@@ -310,7 +309,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) { +@@ -464,7 +463,7 @@ RecursorLua4::RecursorLua4(const std::string& fname) + } + } + catch(std::exception& e) { +- theL() <<Logger::Error<<e.what()<<endl; ++ g_log <<Logger::Error<<e.what()<<endl; + } + } + ); +@@ -474,7 +473,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{ +@@ -650,7 +649,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); +--- lwres.cc.orig 2017-12-11 10:38:52 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 2017-12-11 10:38:52 UTC ++++ pdns_recursor.cc +@@ -347,12 +347,12 @@ void setSocketBuffer(int fd, int optname, uint32_t siz + 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; + } + + +@@ -395,7 +395,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 +@@ -433,7 +433,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++); +@@ -549,7 +549,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; + } +@@ -571,7 +571,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; + } + + typedef map<ComboAddress, uint32_t, ComboAddress::addressOnlyLessThan> tcpClientCounts_t; +@@ -587,10 +587,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]--) +@@ -798,12 +798,12 @@ 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()); +@@ -866,7 +866,7 @@ 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; + } + +@@ -986,7 +986,7 @@ 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; + } + } + } +@@ -1003,7 +1003,7 @@ void startDoResolve(void *p) + if(!shouldNotValidate && (g_dnssecmode == DNSSECMode::ValidateAll || g_dnssecmode==DNSSECMode::ValidateForLog || ((dc->d_mdp.d_header.ad || DNSSECOK) && g_dnssecmode==DNSSECMode::Process))) { + 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; + } + + ResolveContext ctx; +@@ -1013,7 +1013,7 @@ void startDoResolve(void *p) + auto state=validateRecords(ctx, ret); + 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? +@@ -1022,34 +1022,34 @@ 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; + } +@@ -1132,7 +1132,7 @@ 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_mdp.d_qname, dc->d_mdp.d_qtype, dc->d_query, + string((const char*)&*packet.begin(), packet.size()), +@@ -1157,11 +1157,11 @@ 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; + +@@ -1180,8 +1180,8 @@ void startDoResolve(void *p) + } + + 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<<" ms, "<< + sr.d_throttledqueries<<" throttled, "<<sr.d_timeouts<<" timeouts, "<<sr.d_tcpoutqueries<<" tcp connections, rcode="<<res<<endl; + } +@@ -1208,28 +1208,28 @@ 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& e) { +- L<<". Extra info: "<<e.what(); ++ g_log<<". Extra info: "<<e.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); +@@ -1322,7 +1322,7 @@ void handleRunningTCPQuestion(int fd, FDMultiplexer::f + } + 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; + } +@@ -1330,7 +1330,7 @@ void handleRunningTCPQuestion(int fd, FDMultiplexer::f + 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; + } +@@ -1345,7 +1345,7 @@ void handleRunningTCPQuestion(int fd, FDMultiplexer::f + 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 +@@ -1381,14 +1381,14 @@ void handleRunningTCPQuestion(int fd, FDMultiplexer::f + } + catch(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(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 +@@ -1404,20 +1404,20 @@ void handleRunningTCPQuestion(int fd, FDMultiplexer::f + } + 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 { +@@ -1443,7 +1443,7 @@ void handleNewTCPQuestion(int fd, FDMultiplexer::funcp + 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; + } +@@ -1452,14 +1452,14 @@ void handleNewTCPQuestion(int fd, FDMultiplexer::funcp + 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; + } +@@ -1469,7 +1469,7 @@ void handleNewTCPQuestion(int fd, FDMultiplexer::funcp + 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; + } +@@ -1547,14 +1547,14 @@ string* doProcessUDPQuestion(const std::string& questi + } + catch(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(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; + } + } + +@@ -1579,7 +1579,7 @@ string* doProcessUDPQuestion(const std::string& questi + } + #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++; +@@ -1594,7 +1594,7 @@ string* doProcessUDPQuestion(const std::string& questi + 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; +@@ -1606,14 +1606,14 @@ string* doProcessUDPQuestion(const std::string& questi + } + } + 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->get()) { + 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; + } +@@ -1621,7 +1621,7 @@ string* doProcessUDPQuestion(const std::string& questi + + 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; +@@ -1672,7 +1672,7 @@ void handleNewUDPQuestion(int fd, FDMultiplexer::funcp + + 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; +@@ -1680,7 +1680,7 @@ void handleNewUDPQuestion(int fd, FDMultiplexer::funcp + 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; +@@ -1691,12 +1691,12 @@ void handleNewUDPQuestion(int fd, FDMultiplexer::funcp + 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); +@@ -1729,12 +1729,12 @@ void handleNewUDPQuestion(int fd, FDMultiplexer::funcp + 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 { +@@ -1782,17 +1782,17 @@ void makeTCPServerSockets() + + int tmp=1; + if(setsockopt(fd,SOL_SOCKET,SO_REUSEADDR,(char*)&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,(char*)&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 + +@@ -1820,9 +1820,9 @@ void makeTCPServerSockets() + // 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; + } + } + +@@ -1855,7 +1855,7 @@ void makeUDPServerSockets() + 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) +@@ -1867,7 +1867,7 @@ void makeUDPServerSockets() + 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") ) +@@ -1894,9 +1894,9 @@ void makeUDPServerSockets() + deferredAdd.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; + } + } + +@@ -1910,7 +1910,7 @@ 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 */ +@@ -1943,35 +1943,35 @@ 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; + } +@@ -2026,15 +2026,15 @@ 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(...) + { +- L<<Logger::Error<<"Exception while performing security poll"<<endl; ++ g_log<<Logger::Error<<"Exception while performing security poll"<<endl; + } + + } +@@ -2044,7 +2044,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; + } + } +@@ -2140,11 +2140,11 @@ void handlePipeRequest(int fd, FDMultiplexer::funcpara + } + 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)) { +@@ -2245,10 +2245,10 @@ void handleRCC(int fd, FDMultiplexer::funcparam_t& var + 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; + } + } + +@@ -2335,7 +2335,7 @@ void handleUDPServerResponse(int fd, FDMultiplexer::fu + 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; + } + +@@ -2359,7 +2359,7 @@ void handleUDPServerResponse(int fd, FDMultiplexer::fu + 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 +@@ -2374,7 +2374,7 @@ void handleUDPServerResponse(int fd, FDMultiplexer::fu + } + 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; + } + } +@@ -2407,7 +2407,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) { +@@ -2425,13 +2425,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); + } + +@@ -2442,7 +2442,7 @@ 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 { +@@ -2450,11 +2450,11 @@ 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"); + } + +@@ -2495,7 +2495,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 +@@ -2509,11 +2509,11 @@ static void checkOrFixFDS() + unsigned int hardlimit= getFilenumLimit(true); + if(hardlimit >= wantFDs) { + setFilenumLimit(wantFDs); +- L<<Logger::Warning<<"Raised soft limit on number of filedescriptors to "<<wantFDs<<" to match max-mthreads and threads settings"<<endl; ++ g_log<<Logger::Warning<<"Raised soft limit on number of filedescriptors to "<<wantFDs<<" to match max-mthreads and threads settings"<<endl; + } + else { + int newval = (hardlimit - 25) / g_numWorkerThreads; +- L<<Logger::Warning<<"Insufficient number of filedescriptors available for max-mthreads*threads setting! ("<<hardlimit<<" < "<<wantFDs<<"), reducing max-mthreads to "<<newval<<endl; ++ g_log<<Logger::Warning<<"Insufficient number of filedescriptors available for max-mthreads*threads setting! ("<<hardlimit<<" < "<<wantFDs<<"), reducing max-mthreads to "<<newval<<endl; + g_maxMThreads = newval; + setFilenumLimit(hardlimit); + } +@@ -2584,24 +2584,24 @@ void parseACLs() + + allowFrom->addMask(line); + } +- L<<Logger::Warning<<"Done parsing " << allowFrom->size() <<" allow-from ranges from file '"<<::arg()["allow-from-file"]<<"' - overriding 'allow-from' setting"<<endl; ++ g_log<<Logger::Warning<<"Done parsing " << allowFrom->size() <<" allow-from ranges from file '"<<::arg()["allow-from-file"]<<"' - overriding 'allow-from' setting"<<endl; + } + else if(!::arg()["allow-from"].empty()) { + vector<string> ips; + stringtok(ips, ::arg()["allow-from"], ", "); + +- L<<Logger::Warning<<"Only allowing queries from: "; ++ g_log<<Logger::Warning<<"Only allowing queries from: "; + for(vector<string>::const_iterator i = ips.begin(); i!= ips.end(); ++i) { + allowFrom->addMask(*i); + if(i!=ips.begin()) +- L<<Logger::Warning<<", "; +- L<<Logger::Warning<<*i; *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201804170933.w3H9XTJX023971>