From: Bert Hubert Date: Sun, 2 Jan 2011 18:31:38 +0000 (+0000) Subject: move SOA serialization code away from dnspacket into generic dns.cc file, to break... X-Git-Tag: auth-3.0~458 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=213cc78fcf5ff93775bff1620ac8edc9ba2662ae;p=pdns move SOA serialization code away from dnspacket into generic dns.cc file, to break dependencies for zone2sql on database functionality git-svn-id: svn://svn.powerdns.com/pdns/trunk/pdns@1789 d19b8d6e-7fed-0310-83ef-9ca221ded41b --- diff --git a/pdns/dns.cc b/pdns/dns.cc index f930fac61..74c60cac4 100644 --- a/pdns/dns.cc +++ b/pdns/dns.cc @@ -1,5 +1,6 @@ #include "dns.hh" #include "misc.hh" +#include "arguments.hh" #include #include #include @@ -123,3 +124,73 @@ string questionExpand(const char* packet, uint16_t len, uint16_t& type) // cerr << "returning: '"<parts; + stringtok(parts,content); + int pleft=parts.size(); + + // cout<<"'"<1) + data.hostmaster=attodot(parts[1]); // ahu@ds9a.nl -> ahu.ds9a.nl, piet.puk@ds9a.nl -> piet\.puk.ds9a.nl + + if(pleft>2) + data.serial=strtoul(parts[2].c_str(), NULL, 10); + + if(pleft>3) + data.refresh=atoi(parts[3].c_str()); + + if(pleft>4) + data.retry=atoi(parts[4].c_str()); + + if(pleft>5) + data.expire=atoi(parts[5].c_str()); + + if(pleft>6) + data.default_ttl=atoi(parts[6].c_str()); + +} + +string serializeSOAData(const SOAData &d) +{ + ostringstream o; + // nameservername hostmaster serial-number [refresh [retry [expire [ minimum] ] ] ] + o<parts; - stringtok(parts,content); - int pleft=parts.size(); - - // cout<<"'"<1) - data.hostmaster=attodot(parts[1]); // ahu@ds9a.nl -> ahu.ds9a.nl, piet.puk@ds9a.nl -> piet\.puk.ds9a.nl - - if(pleft>2) - data.serial=strtoul(parts[2].c_str(), NULL, 10); - - if(pleft>3) - data.refresh=atoi(parts[3].c_str()); - - if(pleft>4) - data.retry=atoi(parts[4].c_str()); - - if(pleft>5) - data.expire=atoi(parts[5].c_str()); - - if(pleft>6) - data.default_ttl=atoi(parts[6].c_str()); - -} - -string serializeSOAData(const SOAData &d) -{ - ostringstream o; - // nameservername hostmaster serial-number [refresh [retry [expire [ minimum] ] ] ] - o<qtype.getCode() || signQName != pos->qname)) { - addSignature(::arg()["key-repository"], signQName, wildcardQName, signQType, signTTL, signPlace, toSign, pw); + addSignature(signQName, wildcardQName, signQType, signTTL, signPlace, toSign, pw); } signQName= pos->qname; wildcardQName = pos->wildcardname; @@ -396,7 +326,7 @@ void DNSPacket::wrapup(void) // I assume this is some dirty hack to prevent us from signing the last SOA record in an AXFR.. XXX FIXME if(d_dnssecOk && !(d_tcp && d_rrs.rbegin()->qtype.getCode() == QType::SOA && d_rrs.rbegin()->priority == 1234)) { // cerr<<"Last signature.. "<priority<<", "<qtype.getCode()<<", "<< d_rrs.size()<