struct DynBlock
{
+ DynBlock(): action(DNSAction::Action::None)
+ {
+ }
+
+ DynBlock(const std::string& reason_, const struct timespec& until_, const DNSName& domain_, DNSAction::Action action_): reason(reason_), until(until_), domain(domain_), action(action_)
+ {
+ }
+
+ DynBlock(const DynBlock& rhs): reason(rhs.reason), until(rhs.until), domain(rhs.domain), action(rhs.action)
+ {
+ blocks.store(rhs.blocks);
+ }
+
DynBlock& operator=(const DynBlock& rhs)
{
reason=rhs.reason;
struct IDState
{
IDState() : origFD(-1), sentTime(true), delayMsec(0), tempFailureTTL(boost::none) { origDest.sin4.sin_family = 0;}
- IDState(const IDState& orig)
+ IDState(const IDState& orig): origRemote(orig.origRemote), origDest(orig.origDest)
{
origFD = orig.origFD;
origID = orig.origID;
- origRemote = orig.origRemote;
- origDest = orig.origDest;
delayMsec = orig.delayMsec;
tempFailureTTL = orig.tempFailureTTL;
age.store(orig.age.load());
for(;;) {
if(ourcount == 0 && rhscount != 0)
return true;
- if(ourcount == 0 && rhscount == 0)
- return false;
- if(ourcount !=0 && rhscount == 0)
+ if(rhscount == 0)
return false;
ourcount--;
rhscount--;
SuffixMatchTree(const std::string& name="", bool endNode_=false) : d_name(name), endNode(endNode_)
{}
- SuffixMatchTree(const SuffixMatchTree& rhs)
+ SuffixMatchTree(const SuffixMatchTree& rhs): d_name(rhs.d_name), children(rhs.children), endNode(rhs.endNode), d_value(rhs.d_value)
{
- d_name = rhs.d_name;
- children = rhs.children;
- endNode = rhs.endNode;
- d_value = rhs.d_value;
}
std::string d_name;
mutable std::set<SuffixMatchTree> children;
return zmakermap;
}
-DNSRecord::DNSRecord(const DNSResourceRecord& rr)
+DNSRecord::DNSRecord(const DNSResourceRecord& rr): d_name(rr.qname)
{
- d_name = rr.qname;
d_type = rr.qtype.getCode();
d_ttl = rr.ttl;
d_class = rr.qclass;
d_bits=0;
}
- Netmask(const ComboAddress& network, uint8_t bits=0xff)
+ Netmask(const ComboAddress& network, uint8_t bits=0xff): d_network(network)
{
- d_network = network;
d_network.sin4.sin_port=0;
if(bits > 128)
bits = (network.sin4.sin_family == AF_INET) ? 32 : 128;
// see above.
for(auto const& node: rhs._nodes)
insert(node->first).second = node->second;
+ d_cleanup_tree = rhs.d_cleanup_tree;
return *this;
}