]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
Adjusted for switch to protozero library
authorNicko Dehaine <nicko@threatstop.com>
Tue, 17 Nov 2020 19:18:49 +0000 (19:18 +0000)
committerNicko Dehaine <nicko@threatstop.com>
Fri, 5 Feb 2021 16:16:39 +0000 (16:16 +0000)
pdns/pdns_recursor.cc
pdns/protozero.hh

index 66fc158d2f8107fb5bb1ad3884ebde31f5f2a38e..b4ed9cf4061f09723eb3eaff2e59551670a11eb0 100644 (file)
@@ -2055,6 +2055,7 @@ static void startDoResolve(void *p)
         pbMessage.setAppliedPolicyType(appliedPolicy.d_type);
         pbMessage.setAppliedPolicyTrigger(appliedPolicy.d_trigger);
         pbMessage.setAppliedPolicyHit(appliedPolicy.d_hit);
+        pbMessage.setAppliedPolicyKind(appliedPolicy.d_kind);
       }
       pbMessage.addPolicyTags(dc->d_policyTags);
       pbMessage.setInBytes(packet.size());
index dae785d9cb1bf82b056725211759e6818c1d72a2..04dd69eab98010761c1af3ec5c9d459511a10548 100644 (file)
@@ -235,9 +235,33 @@ namespace pdns {
         writer.add_uint64(static_cast<protozero::pbf_tag_type>(type), value);
       }
 
-      static void add_bytes(protozero::pbf_writer& writer, Field type, const char* data, size_t len)
-      {
-        writer.add_bytes(static_cast<protozero::pbf_tag_type>(type), data, len);
+      void setAppliedPolicyKind(const DNSFilterEngine::PolicyKind& kind)
+      {
+        uint32_t k;
+
+        switch(kind) {
+       case DNSFilterEngine::PolicyKind::NoAction:
+          k = 1;
+          break;
+       case DNSFilterEngine::PolicyKind::Drop:
+          k = 2;
+          break;
+       case DNSFilterEngine::PolicyKind::NXDOMAIN:
+          k = 3;
+          break;
+       case DNSFilterEngine::PolicyKind::NODATA:
+          k = 4;
+          break;
+       case DNSFilterEngine::PolicyKind::Truncate:
+          k = 5;
+          break;
+       case DNSFilterEngine::PolicyKind::Custom:
+          k = 6;
+          break;
+        default:
+          throw std::runtime_error("Unsupported protobuf policy kind");
+        }
+        d_response.add_uint32(10, k);
       }
 
       static void add_string(protozero::pbf_writer& writer, Field type, const std::string& str)