]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
Log trigger in protobuf message
authorOtto Moerbeek <otto.moerbeek@open-xchange.com>
Mon, 10 Aug 2020 09:37:28 +0000 (11:37 +0200)
committerOtto Moerbeek <otto.moerbeek@open-xchange.com>
Fri, 28 Aug 2020 08:46:24 +0000 (10:46 +0200)
pdns/dnsmessage.proto
pdns/pdns_recursor.cc
pdns/rec-protobuf.cc
pdns/rec-protobuf.hh

index 6b33ab0930eb0e80eb17e05fc125a34306dbad62..4f9d2722fd669bf4c960e1065e739b54a2c54d6e 100644 (file)
@@ -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;
index 0b9f144184a5906e8b331133bf1cd0cecd079ef4..b30443d03d28ac3d3409475241d2d70d1e41c58f 100644 (file)
@@ -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) {
index bd82ef9523108127ea0d257188f34c70f83e8dd1..eac9f9bfe1953f211bf9a6dc8ac0716789ce0e4d 100644 (file)
@@ -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<std::string>& policyTags)
 {
 #ifdef HAVE_PROTOBUF
index a64faea61b67f75c98bbdf1acc959e7e229ba19d..61cdd792550a3e9d0f0fa3da80711e877a2ab6ab 100644 (file)
@@ -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<std::string>& policyTags);
   void addPolicyTag(const std::string& policyTag);
   void removePolicyTag(const std::string& policyTag);