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;
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) {
#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<std::string>& policyTags)
{
#ifdef HAVE_PROTOBUF
#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<std::string>& policyTags);
void addPolicyTag(const std::string& policyTag);
void removePolicyTag(const std::string& policyTag);