#include "dns-storage.hh" using namespace std; const DNSNode* DNSNode::find(dnsname& name, dnsname& last, bool* passedZonecut) const { cout<<"find for '"<first<<"'"<second.find(name, last, passedZonecut); } DNSNode* DNSNode::add(dnsname name) { cout<<"Add for '"<second.add(name); } dnsname operator+(const dnsname& a, const dnsname& b) { dnsname ret=a; for(const auto& l : b.d_name) ret.d_name.push_back(l); return ret; } void DNSNode::visit(std::function visitor, dnsname name) const { visitor(name, this); for(const auto& c : children) c.second.visit(visitor, dnsname{c.first}+name); } // this should perform escaping rules! std::ostream & operator<<(std::ostream &os, const dnsname& d) { for(const auto& l : d.d_name) { os<