From: Otto Moerbeek Date: Wed, 15 Oct 2025 09:46:50 +0000 (+0200) Subject: Add allow non-default argument name X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=15e85e84735c640ad2942240da23cc3263df2c7a;p=thirdparty%2Fpdns.git Add allow non-default argument name Signed-off-by: Otto Moerbeek --- diff --git a/pdns/recursordist/rec-eventtrace.cc b/pdns/recursordist/rec-eventtrace.cc index 8ec7fbbbb7..42c237f816 100644 --- a/pdns/recursordist/rec-eventtrace.cc +++ b/pdns/recursordist/rec-eventtrace.cc @@ -52,7 +52,7 @@ static void addValue(const RecEventTrace::Entry& event, Span& work, bool start) if (std::holds_alternative(event.d_value)) { return; } - string key = start ? "arg" : "result"; + string key = start ? event.d_valueName : "result"; if (std::holds_alternative(event.d_value)) { work.attributes.emplace_back(KeyValue{std::move(key), {std::get(event.d_value)}}); } diff --git a/pdns/recursordist/rec-eventtrace.hh b/pdns/recursordist/rec-eventtrace.hh index 0a28b8cb95..31bb509f0c 100644 --- a/pdns/recursordist/rec-eventtrace.hh +++ b/pdns/recursordist/rec-eventtrace.hh @@ -144,6 +144,7 @@ public: Value_t d_value; std::vector> d_extraValues; std::string d_custom; + std::string d_valueName{"arg"}; int64_t d_ts; size_t d_parent; size_t d_matching; @@ -230,6 +231,15 @@ public: return add(eventType, Value_t(value), start, match, 0); } + void setValueName(size_t index, const std::string& name) + { + assert(d_status != Invalid); + if (d_status == Disabled) { + return; + } + d_events.at(index).d_valueName = name; + } + void addExtraValues(size_t index, std::vector>&& values) { assert(d_status != Invalid); diff --git a/pdns/recursordist/syncres.cc b/pdns/recursordist/syncres.cc index 5c4c9d74de..c39416421c 100644 --- a/pdns/recursordist/syncres.cc +++ b/pdns/recursordist/syncres.cc @@ -5454,7 +5454,8 @@ bool SyncRes::doResolveAtThisIP(const std::string& prefix, const DNSName& qname, s_ecsqueries++; } auto match = d_eventTrace.add(RecEventTrace::AuthRequest, qname.toLogString(), true, 0); - d_eventTrace.addExtraValues(match, {{"query.qtype", qtype.toString()}, {"auth.address", remoteIP.toStringWithPortExcept(53)}}); + d_eventTrace.setValueName(match, "query.qname"); + d_eventTrace.addExtraValues(match, {{"query.qtype", qtype.toString()}, {"auth.address", remoteIP.toStringWithPortExcept(53)}, {"auth.nsname", nsName.toLogString()}}); updateQueryCounts(prefix, qname, remoteIP, doTCP, doDoT); resolveret = asyncresolveWrapper(LogObject(prefix), remoteIP, d_doDNSSEC, qname, auth, qtype.getCode(), doTCP, sendRDQuery, &d_now, ednsmask, &lwr, &chained, nsName); // <- we go out on the wire!