]> granicus.if.org Git - pdns/commitdiff
Shrink QType from 8 to 2 bytes
authorPieter Lexis <pieter.lexis@powerdns.com>
Fri, 22 May 2015 14:31:41 +0000 (16:31 +0200)
committerPieter Lexis <pieter.lexis@powerdns.com>
Fri, 19 Jun 2015 18:14:19 +0000 (20:14 +0200)
 This should always be 2 bytes :), additionally, add an assert that this is
 always 2 bytes (and stop compiling if it isn't).

pdns/qtype.cc
pdns/qtype.hh
pdns/test-dnsname_cc.cc

index 885e35b867bd8a42c5956df6ed0c2dd4d3501b3e..6f70be9498ae780fc63fee0fa6161165cad3b748 100644 (file)
@@ -28,6 +28,8 @@
 #include "qtype.hh"
 #include "misc.hh"
 
+static_assert(sizeof(QType) == 2, "QType is not 2 bytes in size, something is wrong!");
+
 vector<QType::namenum> QType::names;
 // XXX FIXME we need to do something with initializer order here!
 QType::init QType::initializer; 
index 5ea1ab6e67458ed83569d0127b5802fe87bb5c74..7a170d24e64ca6b9bd78c3ad26165cc35c26b8a2 100644 (file)
@@ -79,9 +79,9 @@ public:
   static int chartocode(const char *p); //!< convert a character string to a code
 // more solaris fun
 #undef DS
-  enum typeenum {A=1, NS=2, CNAME=5, SOA=6, MR=9, WKS=11, PTR=12, HINFO=13, MINFO=14, MX=15, TXT=16, RP=17, AFSDB=18, SIG=24, KEY=25, AAAA=28, LOC=29, SRV=33, NAPTR=35, KX=36,
+  enum typeenum : uint16_t {A=1, NS=2, CNAME=5, SOA=6, MR=9, WKS=11, PTR=12, HINFO=13, MINFO=14, MX=15, TXT=16, RP=17, AFSDB=18, SIG=24, KEY=25, AAAA=28, LOC=29, SRV=33, NAPTR=35, KX=36,
                 CERT=37, A6=38, DNAME=39, OPT=41, DS=43, SSHFP=44, IPSECKEY=45, RRSIG=46, NSEC=47, DNSKEY=48, DHCID=49, NSEC3=50, NSEC3PARAM=51,
-                TLSA=52, SPF=99, EUI48=108, EUI64=109, TKEY=249, TSIG=250, IXFR=251, AXFR=252, MAILB=253, MAILA=254, ANY=255, ADDR=259, ALIAS=260, DLV=32769} types;
+                TLSA=52, SPF=99, EUI48=108, EUI64=109, TKEY=249, TSIG=250, IXFR=251, AXFR=252, MAILB=253, MAILA=254, ANY=255, ADDR=259, ALIAS=260, DLV=32769};
   typedef pair<string,uint16_t> namenum;
   static vector<namenum> names;
 
index 1c58066316a3c25961fd433ad767a76c8b05d30d..2e6c22cb71604cc0c73ecb7680702e0bbb7a198e 100644 (file)
@@ -191,7 +191,7 @@ BOOST_AUTO_TEST_CASE(test_packetParse) {
   uint16_t qtype, qclass;
   DNSName dn((char*)&packet[0], packet.size(), 12, false, &qtype, &qclass);
   BOOST_CHECK_EQUAL(dn.toString(), "www.ds9a.nl.");
-  BOOST_CHECK_EQUAL(qtype, QType::AAAA);
+  BOOST_CHECK(qtype == QType::AAAA);
   BOOST_CHECK_EQUAL(qclass, 1);
 
   dpw.startRecord("ds9a.nl.", DNSRecordContent::TypeToNumber("NS"));
@@ -212,7 +212,7 @@ BOOST_AUTO_TEST_CASE(test_packetParse) {
 
   DNSName dn2((char*)&packet[0], packet.size(), 12+13+4, true, &qtype, &qclass);
   BOOST_CHECK_EQUAL(dn2.toString(), "ds9a.nl."); 
-  BOOST_CHECK_EQUAL(qtype, QType::NS);
+  BOOST_CHECK(qtype == QType::NS);
   BOOST_CHECK_EQUAL(qclass, 1);
 
   DNSName dn3((char*)&packet[0], packet.size(), 12+13+4+2 + 4 + 4 + 2, true);