From: Otto Moerbeek Date: Mon, 10 Aug 2020 09:37:28 +0000 (+0200) Subject: Log trigger in protobuf message X-Git-Tag: rec-4.4.0-beta1^2~7 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=b5892cfa57b3f9725d89f3af89ba5cf280e1846d;p=thirdparty%2Fpdns.git Log trigger in protobuf message --- diff --git a/pdns/dnsmessage.proto b/pdns/dnsmessage.proto index 6b33ab0930..4f9d2722fd 100644 --- a/pdns/dnsmessage.proto +++ b/pdns/dnsmessage.proto @@ -79,6 +79,7 @@ message PBDNSMessage { optional uint32 queryTimeSec = 5; // Time of the corresponding query reception (seconds since epoch) optional uint32 queryTimeUsec = 6; // Time of the corresponding query reception (additional micro-seconds) optional PolicyType appliedPolicyType = 7; // Type of the filtering policy (RPZ or Lua) applied + optional string appliedPolicyTrigger = 8; // The RPZ trigger } optional DNSResponse response = 13; diff --git a/pdns/pdns_recursor.cc b/pdns/pdns_recursor.cc index 0b9f144184..b30443d03d 100644 --- a/pdns/pdns_recursor.cc +++ b/pdns/pdns_recursor.cc @@ -1777,6 +1777,7 @@ static void startDoResolve(void *p) if (!appliedPolicy.getName().empty()) { pbMessage->setAppliedPolicy(appliedPolicy.getName()); pbMessage->setAppliedPolicyType(appliedPolicy.d_type); + pbMessage->setAppliedPolicyTrigger(appliedPolicy.d_trigger); } pbMessage->setPolicyTags(dc->d_policyTags); if (g_useKernelTimestamp && dc->d_kernelTimestamp.tv_sec) { diff --git a/pdns/rec-protobuf.cc b/pdns/rec-protobuf.cc index bd82ef9523..eac9f9bfe1 100644 --- a/pdns/rec-protobuf.cc +++ b/pdns/rec-protobuf.cc @@ -167,6 +167,16 @@ void RecProtoBufMessage::setAppliedPolicyType(const DNSFilterEngine::PolicyType& #endif /* HAVE_PROTOBUF */ } +void RecProtoBufMessage::setAppliedPolicyTrigger(const DNSName& trigger) +{ +#ifdef HAVE_PROTOBUF + PBDNSMessage_DNSResponse* response = d_message.mutable_response(); + if (response && !trigger.empty()) { + response->set_appliedpolicytrigger(trigger.toString()); + } +#endif /* HAVE_PROTOBUF */ +} + void RecProtoBufMessage::setPolicyTags(const std::unordered_set& policyTags) { #ifdef HAVE_PROTOBUF diff --git a/pdns/rec-protobuf.hh b/pdns/rec-protobuf.hh index a64faea61b..61cdd79255 100644 --- a/pdns/rec-protobuf.hh +++ b/pdns/rec-protobuf.hh @@ -52,6 +52,7 @@ public: #endif /* NOD_ENABLED */ void setAppliedPolicy(const std::string& policy); void setAppliedPolicyType(const DNSFilterEngine::PolicyType& policyType); + void setAppliedPolicyTrigger(const DNSName& trigger); void setPolicyTags(const std::unordered_set& policyTags); void addPolicyTag(const std::string& policyTag); void removePolicyTag(const std::string& policyTag);