]> granicus.if.org Git - pdns/commitdiff
move fillSOAData around so dns.cc is no longer authoritative specific and can be...
authorbert hubert <bert.hubert@netherlabs.nl>
Wed, 28 Oct 2015 10:49:37 +0000 (11:49 +0100)
committerbert hubert <bert.hubert@netherlabs.nl>
Wed, 28 Oct 2015 10:49:37 +0000 (11:49 +0100)
pdns/dns.cc
pdns/dns.hh
pdns/dnsbackend.cc
pdns/dnsbackend.hh

index bebfb8a73ec176bbf00d7fde2c7faaae8a9414c4..46da40b1cca71ee1ba972e411fb6e391fbf11c0f 100644 (file)
@@ -134,50 +134,6 @@ uint32_t hashQuestion(const char* packet, uint16_t len, uint32_t init)
   return ret;
 }
 
-void fillSOAData(const string &content, SOAData &data)
-{
-  // content consists of fields separated by spaces:
-  //  nameservername hostmaster serial-number [refresh [retry [expire [ minimum] ] ] ]
-
-  // fill out data with some plausible defaults:
-  // 10800 3600 604800 3600
-  vector<string>parts;
-  stringtok(parts,content);
-  int pleft=parts.size();
-
-  //  cout<<"'"<<content<<"'"<<endl;
-
-  if(pleft)
-    data.nameserver=DNSName(parts[0]);
-
-  if(pleft>1) 
-    data.hostmaster=DNSName(attodot(parts[1])); // ahu@ds9a.nl -> ahu.ds9a.nl, piet.puk@ds9a.nl -> piet\.puk.ds9a.nl
-
-  data.serial = pleft > 2 ? pdns_strtoui(parts[2].c_str(), NULL, 10) : 0;
-  if (data.serial == UINT_MAX && errno == ERANGE) throw PDNSException("serial number too large in '"+parts[2]+"'");
-
-  data.refresh = pleft > 3 ? atoi(parts[3].c_str())
-        : ::arg().asNum("soa-refresh-default");
-
-  data.retry = pleft > 4 ? atoi(parts[4].c_str())
-        : ::arg().asNum("soa-retry-default");
-
-  data.expire = pleft > 5 ? atoi(parts[5].c_str())
-        : ::arg().asNum("soa-expire-default");
-
-  data.default_ttl = pleft > 6 ?atoi(parts[6].c_str())
-        : ::arg().asNum("soa-minimum-ttl");
-}
-
-string serializeSOAData(const SOAData &d)
-{
-  ostringstream o;
-  //  nameservername hostmaster serial-number [refresh [retry [expire [ minimum] ] ] ]
-  o<<d.nameserver.toString()<<" "<< d.hostmaster.toString() <<" "<< d.serial <<" "<< d.refresh << " "<< d.retry << " "<< d.expire << " "<< d.default_ttl;
-
-  return o.str();
-}
-// the functions below update the 'arcount' and 'ancount', plus they serialize themselves to the stringbuffer
 
 string& attodot(string &str)
 {
index 05e17d183fcbef29f8a9200bec7dab597abd059b..7db16162a5e2bc8697e6193eb9dc12983122bde7 100644 (file)
@@ -224,8 +224,6 @@ extern time_t s_starttime;
 uint32_t hashQuestion(const char* packet, uint16_t len, uint32_t init);
 bool dnspacketLessThan(const std::string& a, const std::string& b);
 
-/** helper function for both DNSPacket and addSOARecord() - converts a line into a struct, for easier parsing */
-void fillSOAData(const string &content, SOAData &data);
 
 /** for use by DNSPacket, converts a SOAData class to a ascii line again */
 string serializeSOAData(const SOAData &data);
index 55fe19f4e8a4f1f45ac89a17aedd3bbd46ce4702..fa4f270bf39c7f9632eed4cc552494aa7ec246de 100644 (file)
@@ -477,3 +477,47 @@ bool DNSReversedBackend::getSOA(const DNSName &inZone, SOAData &soa, DNSPacket *
     soa.qname = inZone;
     return true;
 }
+
+void fillSOAData(const string &content, SOAData &data)
+{
+  // content consists of fields separated by spaces:
+  //  nameservername hostmaster serial-number [refresh [retry [expire [ minimum] ] ] ]
+
+  // fill out data with some plausible defaults:
+  // 10800 3600 604800 3600
+  vector<string>parts;
+  stringtok(parts,content);
+  int pleft=parts.size();
+
+  //  cout<<"'"<<content<<"'"<<endl;
+
+  if(pleft)
+    data.nameserver=DNSName(parts[0]);
+
+  if(pleft>1) 
+    data.hostmaster=DNSName(attodot(parts[1])); // ahu@ds9a.nl -> ahu.ds9a.nl, piet.puk@ds9a.nl -> piet\.puk.ds9a.nl
+
+  data.serial = pleft > 2 ? pdns_strtoui(parts[2].c_str(), NULL, 10) : 0;
+  if (data.serial == UINT_MAX && errno == ERANGE) throw PDNSException("serial number too large in '"+parts[2]+"'");
+
+  data.refresh = pleft > 3 ? atoi(parts[3].c_str())
+        : ::arg().asNum("soa-refresh-default");
+
+  data.retry = pleft > 4 ? atoi(parts[4].c_str())
+        : ::arg().asNum("soa-retry-default");
+
+  data.expire = pleft > 5 ? atoi(parts[5].c_str())
+        : ::arg().asNum("soa-expire-default");
+
+  data.default_ttl = pleft > 6 ?atoi(parts[6].c_str())
+        : ::arg().asNum("soa-minimum-ttl");
+}
+
+string serializeSOAData(const SOAData &d)
+{
+  ostringstream o;
+  //  nameservername hostmaster serial-number [refresh [retry [expire [ minimum] ] ] ]
+  o<<d.nameserver.toString()<<" "<< d.hostmaster.toString() <<" "<< d.serial <<" "<< d.refresh << " "<< d.retry << " "<< d.expire << " "<< d.default_ttl;
+
+  return o.str();
+}
index 99ca927167f1089d8f62fa16379d765323a411d6..fb9cf4792d7bc979c20c6b46976a508fd45c8d38 100644 (file)
@@ -470,5 +470,8 @@ public:
   DBException(const string &reason) : PDNSException(reason){}
 };
 
+/** helper function for both DNSPacket and addSOARecord() - converts a line into a struct, for easier parsing */
+void fillSOAData(const string &content, SOAData &data);
+
 
 #endif