From: Nicko Dehaine Date: Tue, 17 Nov 2020 19:18:49 +0000 (+0000) Subject: Adjusted for switch to protozero library X-Git-Tag: dnsdist-1.6.0-alpha2~19^2~3 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=b3c20df8626f477ee373610d2d0df986bfd3fde2;p=thirdparty%2Fpdns.git Adjusted for switch to protozero library --- diff --git a/pdns/pdns_recursor.cc b/pdns/pdns_recursor.cc index 66fc158d2f..b4ed9cf406 100644 --- a/pdns/pdns_recursor.cc +++ b/pdns/pdns_recursor.cc @@ -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()); diff --git a/pdns/protozero.hh b/pdns/protozero.hh index dae785d9cb..04dd69eab9 100644 --- a/pdns/protozero.hh +++ b/pdns/protozero.hh @@ -235,9 +235,33 @@ namespace pdns { writer.add_uint64(static_cast(type), value); } - static void add_bytes(protozero::pbf_writer& writer, Field type, const char* data, size_t len) - { - writer.add_bytes(static_cast(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)