]>
Commit | Line | Data |
---|---|---|
12471842 PL |
1 | /* |
2 | * This file is part of PowerDNS or dnsdist. | |
3 | * Copyright -- PowerDNS.COM B.V. and its contributors | |
4 | * | |
5 | * This program is free software; you can redistribute it and/or modify | |
6 | * it under the terms of version 2 of the GNU General Public License as | |
7 | * published by the Free Software Foundation. | |
8 | * | |
9 | * In addition, for the avoidance of any doubt, permission is granted to | |
10 | * link this program with OpenSSL and to (re)distribute the binaries | |
11 | * produced as the result of such linking. | |
12 | * | |
13 | * This program is distributed in the hope that it will be useful, | |
14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
16 | * GNU General Public License for more details. | |
17 | * | |
18 | * You should have received a copy of the GNU General Public License | |
19 | * along with this program; if not, write to the Free Software | |
20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. | |
21 | */ | |
d9d3f9c1 RG |
22 | #pragma once |
23 | ||
24 | #include "protobuf.hh" | |
f3da83fe | 25 | #include "filterpo.hh" |
d9d3f9c1 RG |
26 | #include "dnsrecords.hh" |
27 | ||
28 | class RecProtoBufMessage: public DNSProtoBufMessage | |
29 | { | |
30 | public: | |
31 | RecProtoBufMessage(): DNSProtoBufMessage() | |
32 | { | |
33 | } | |
34 | ||
35 | RecProtoBufMessage(DNSProtoBufMessage::DNSProtoBufMessageType type): DNSProtoBufMessage(type) | |
36 | { | |
37 | } | |
38 | ||
39 | #ifdef HAVE_PROTOBUF | |
40 | RecProtoBufMessage(DNSProtoBufMessage::DNSProtoBufMessageType type, const boost::uuids::uuid& uuid, const ComboAddress* requestor, const ComboAddress* responder, const DNSName& domain, int qtype, uint16_t qclass, uint16_t qid, bool isTCP, size_t bytes): DNSProtoBufMessage(type, uuid, requestor, responder, domain, qtype, qclass, qid, isTCP, bytes) | |
41 | { | |
42 | } | |
43 | #endif /* HAVE_PROTOBUF */ | |
44 | ||
0bd2e252 | 45 | void addRRs(const std::vector<DNSRecord>& records, const std::set<uint16_t>& exportTypes); |
d6399006 NC |
46 | #ifdef NOD_ENABLED |
47 | void setNOD(bool nod); | |
48 | void addRR(const DNSRecord& record, const std::set<uint16_t>& exportTypes, bool udr=false); | |
49 | void clearUDR(); | |
50 | #else | |
0bd2e252 | 51 | void addRR(const DNSRecord& record, const std::set<uint16_t>& exportTypes); |
d6399006 | 52 | #endif /* NOD_ENABLED */ |
d9d3f9c1 | 53 | void setAppliedPolicy(const std::string& policy); |
f3da83fe | 54 | void setAppliedPolicyType(const DNSFilterEngine::PolicyType& policyType); |
d9d3f9c1 | 55 | void setPolicyTags(const std::vector<std::string>& policyTags); |
dc11520c NC |
56 | void addPolicyTag(const std::string& policyTag); |
57 | void removePolicyTag(const std::string& policyTag); | |
b790ef3d RG |
58 | std::string getAppliedPolicy() const; |
59 | std::vector<std::string> getPolicyTags() const; | |
d9d3f9c1 | 60 | }; |