if (std::holds_alternative<std::nullopt_t>(event.d_value)) {
return;
}
- string key = start ? "arg" : "result";
+ string key = start ? event.d_valueName : "result";
if (std::holds_alternative<bool>(event.d_value)) {
work.attributes.emplace_back(KeyValue{std::move(key), {std::get<bool>(event.d_value)}});
}
Value_t d_value;
std::vector<std::pair<string, Value_t>> d_extraValues;
std::string d_custom;
+ std::string d_valueName{"arg"};
int64_t d_ts;
size_t d_parent;
size_t d_matching;
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<std::pair<std::string, Value_t>>&& values)
{
assert(d_status != Invalid);
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!