From: Otto Date: Mon, 12 Apr 2021 09:51:36 +0000 (+0200) Subject: Implement log methods for QType and QClass X-Git-Tag: dnsdist-1.7.0-alpha1~146^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=91204c5ae4c6cac9300bc49a951f000da4000739;p=thirdparty%2Fpdns.git Implement log methods for QType and QClass --- diff --git a/pdns/logger.hh b/pdns/logger.hh index f6a5af475e..5160c8f4aa 100644 --- a/pdns/logger.hh +++ b/pdns/logger.hh @@ -69,27 +69,39 @@ public: //! Log to a file. void toFile( const string & filename ); - + void resetFlags(){flags=0;open();} //!< zero the flags /** Use this to stream to your log, like this: \code g_log<<"This is an informational message"< Logger & operator<<(const T & i) { - ostringstream tmp; - tmp< Logger & operator<<(const T& i) { + ostringstream tmp; + tmp << i; + *this << tmp.str(); + return *this; } Logger& operator<<(std::ostream & (&)(std::ostream &)); //!< this is to recognise the endl, and to commit the log diff --git a/pdns/pdns_recursor.cc b/pdns/pdns_recursor.cc index 49d59b01dc..dc4b27243f 100644 --- a/pdns/pdns_recursor.cc +++ b/pdns/pdns_recursor.cc @@ -1140,7 +1140,7 @@ static PolicyResult handlePolicyHit(const DNSFilterEngine::Policy& appliedPolicy } if (sr.doLog() && appliedPolicy.d_type != DNSFilterEngine::PolicyType::None) { - g_log << Logger::Warning << dc->d_mdp.d_qname << "|" << QType(dc->d_mdp.d_qtype).toString() << appliedPolicy.getLogString() << endl; + g_log << Logger::Warning << dc->d_mdp.d_qname << "|" << QType(dc->d_mdp.d_qtype) << appliedPolicy.getLogString() << endl; } if (appliedPolicy.d_zoneData && appliedPolicy.d_zoneData->d_extendedErrorCode) { @@ -1407,7 +1407,7 @@ static bool udrCheckUniqueDNSRecord(const DNSName& dname, uint16_t qtype, const if (t_udrDBp && t_udrDBp->isUniqueResponse(ss.str())) { if (g_udrLog) { // This should also probably log to a dedicated file. - g_log<getTid()<<"/"<numProcesses()<<"] " << (dc->d_tcp ? "TCP " : "") << "question for '"<d_mdp.d_qname<<"|" - <d_mdp.d_qtype)<<"' from "<getRemote(); + <d_mdp.d_qtype)<<"' from "<getRemote(); if(!dc->d_ednssubnet.source.empty()) { g_log<<" (ecs "<d_ednssubnet.source.toString()<<")"; } @@ -1948,7 +1948,7 @@ static void startDoResolve(void *p) if(state == vState::Secure) { if(sr.doLog()) { - g_log<d_mdp.d_qname<<"|"<d_mdp.d_qtype).toString()<getRemote()<<" validates correctly"<d_mdp.d_qname<<"|"<d_mdp.d_qtype)<getRemote()<<" validates correctly"<d_mdp.d_qname<<"|"<d_mdp.d_qtype).toString()<getRemote()<<" validates as Insecure"<d_mdp.d_qname<<"|"<d_mdp.d_qtype)<getRemote()<<" validates as Insecure"<ad=0; @@ -1968,27 +1968,27 @@ static void startDoResolve(void *p) if(t_bogusqueryring) t_bogusqueryring->push_back(make_pair(dc->d_mdp.d_qname, dc->d_mdp.d_qtype)); if(g_dnssecLogBogus || sr.doLog() || g_dnssecmode == DNSSECMode::ValidateForLog) { - g_log<d_mdp.d_qname<<"|"<d_mdp.d_qtype).toString()<getRemote()<<" validates as "<d_mdp.d_qname<<"|"<d_mdp.d_qtype)<getRemote()<<" validates as "<cd && (g_dnssecmode == DNSSECMode::ValidateAll || dc->d_mdp.d_header.ad || DNSSECOK)) { if(sr.doLog()) { - g_log<d_mdp.d_qname<<"|"<d_mdp.d_qtype).toString()<<" because recursor or query demands it for Bogus results"<d_mdp.d_qname<<"|"<d_mdp.d_qtype)<<" because recursor or query demands it for Bogus results"<rcode=RCode::ServFail; goto sendit; } else { if(sr.doLog()) { - g_log<d_mdp.d_qname<<"|"<d_mdp.d_qtype).toString()<d_mdp.d_qname<<"|"<d_mdp.d_qtype)<getRemote()<<" during validation of '"<d_mdp.d_qname<<"|"<d_mdp.d_qtype).toString()<<"' because: "<getRemote()<<" during validation of '"<d_mdp.d_qname<<"|"<d_mdp.d_qtype)<<"' because: "<rcode=RCode::ServFail; goto sendit; } diff --git a/pdns/recursor_cache.cc b/pdns/recursor_cache.cc index 74ad771e94..76e702fba1 100644 --- a/pdns/recursor_cache.cc +++ b/pdns/recursor_cache.cc @@ -650,7 +650,7 @@ uint64_t MemRecursorCache::doDump(int fd) for (const auto& j : i.d_records) { count++; try { - fprintf(fp.get(), "%s %" PRIu32 " %" PRId64 " IN %s %s ; (%s) auth=%i zone=%s from=%s %s %s\n", i.d_qname.toString().c_str(), i.d_orig_ttl, static_cast(i.d_ttd - now), DNSRecordContent::NumberToType(i.d_qtype).c_str(), j->getZoneRepresentation().c_str(), vStateToString(i.d_state).c_str(), i.d_auth, i.d_authZone.toLogString().c_str(), i.d_from.toString().c_str(), i.d_netmask.empty() ? "" : i.d_netmask.toString().c_str(), !i.d_rtag ? "" : i.d_rtag.get().c_str()); + fprintf(fp.get(), "%s %" PRIu32 " %" PRId64 " IN %s %s ; (%s) auth=%i zone=%s from=%s %s %s\n", i.d_qname.toString().c_str(), i.d_orig_ttl, static_cast(i.d_ttd - now), i.d_qtype.toString().c_str(), j->getZoneRepresentation().c_str(), vStateToString(i.d_state).c_str(), i.d_auth, i.d_authZone.toLogString().c_str(), i.d_from.toString().c_str(), i.d_netmask.empty() ? "" : i.d_netmask.toString().c_str(), !i.d_rtag ? "" : i.d_rtag.get().c_str()); } catch(...) { fprintf(fp.get(), "; error printing '%s'\n", i.d_qname.empty() ? "EMPTY" : i.d_qname.toString().c_str());