]> granicus.if.org Git - pdns/commitdiff
Store rcodes as unsigned
authorChris Hofstaedtler <chris.hofstaedtler@deduktiva.com>
Mon, 8 Jan 2018 15:09:45 +0000 (16:09 +0100)
committerChris Hofstaedtler <chris.hofstaedtler@deduktiva.com>
Mon, 8 Jan 2018 15:09:45 +0000 (16:09 +0100)
pdns/dns.cc
pdns/dns.hh
pdns/dnsdist-lua-actions.cc
pdns/dnsdist-lua-rules.cc

index b04a03257ed18999edbd0a6452845b53c6323ed2..71f2c0e76d7f4def8d0c80fa5c6550e69016638d 100644 (file)
@@ -57,13 +57,13 @@ std::vector<std::string> RCode::rcodes_s = boost::assign::list_of
   ("Bad/missing Server Cookie")
 ;
 
-std::string RCode::to_s(unsigned short rcode) {
+std::string RCode::to_s(uint8_t rcode) {
   if (rcode > RCode::rcodes_s.size()-1 ) 
     return std::string("Err#")+std::to_string(rcode);
   return RCode::rcodes_s[rcode];
 }
 
-std::string ERCode::to_s(unsigned short rcode) {
+std::string ERCode::to_s(uint8_t rcode) {
   return RCode::to_s(rcode);
 }
 
index 9f75ba4a4ac1609fc35c81743b6161366449f837..8ea94c8e780c269863cfe8d329ebc6c05d8d8e1a 100644 (file)
@@ -57,7 +57,7 @@ class RCode
 {
 public:
   enum rcodes_ { NoError=0, FormErr=1, ServFail=2, NXDomain=3, NotImp=4, Refused=5, YXDomain=6, YXRRSet=7, NXRRSet=8, NotAuth=9, NotZone=10};
-  static std::string to_s(unsigned short rcode);
+  static std::string to_s(uint8_t rcode);
   static std::vector<std::string> rcodes_s;
 };
 
@@ -65,7 +65,7 @@ class ERCode
 {
 public:
   enum rcodes_ { BADVERS=16, BADSIG=16, BADKEY=17, BADTIME=18, BADMODE=19, BADNAME=20, BADALG=21, BADTRUNC=22, BADCOOKIE=23 };
-  static std::string to_s(unsigned short rcode);
+  static std::string to_s(uint8_t rcode);
 };
 
 class Opcode
index 2c6e137521658f538a11ebdac8cba43eae9b922a..b5c245ca0fcf2706744324640f77354cda7a945c 100644 (file)
@@ -275,7 +275,7 @@ private:
 class RCodeAction : public DNSAction
 {
 public:
-  RCodeAction(int rcode) : d_rcode(rcode) {}
+  RCodeAction(uint8_t rcode) : d_rcode(rcode) {}
   DNSAction::Action operator()(DNSQuestion* dq, string* ruleresult) const override
   {
     dq->dh->rcode = d_rcode;
@@ -288,7 +288,7 @@ public:
   }
 
 private:
-  int d_rcode;
+  uint8_t d_rcode;
 };
 
 class TCAction : public DNSAction
@@ -941,7 +941,7 @@ void setupLuaActions()
       return std::shared_ptr<DNSAction>(new LogAction(fname, binary ? *binary : true, append ? *append : false, buffered ? *buffered : false));
     });
 
-  g_lua.writeFunction("RCodeAction", [](int rcode) {
+  g_lua.writeFunction("RCodeAction", [](uint8_t rcode) {
       return std::shared_ptr<DNSAction>(new RCodeAction(rcode));
     });
 
index 92c89e41a8ce3ffebcd2942b9d37deda52759f88..9128b22937d6314219f2b8d9438d5361e10613a8 100644 (file)
@@ -724,7 +724,7 @@ private:
 class RCodeRule : public DNSRule
 {
 public:
-  RCodeRule(int rcode) : d_rcode(rcode)
+  RCodeRule(uint8_t rcode) : d_rcode(rcode)
   {
   }
   bool matches(const DNSQuestion* dq) const override
@@ -736,13 +736,13 @@ public:
     return "rcode=="+RCode::to_s(d_rcode);
   }
 private:
-  int d_rcode;
+  uint8_t d_rcode;
 };
 
 class ERCodeRule : public DNSRule
 {
 public:
-  ERCodeRule(int rcode) : d_rcode(rcode & 0xF), d_extrcode(rcode >> 4)
+  ERCodeRule(uint8_t rcode) : d_rcode(rcode & 0xF), d_extrcode(rcode >> 4)
   {
   }
   bool matches(const DNSQuestion* dq) const override
@@ -781,8 +781,8 @@ public:
     return "ercode=="+ERCode::to_s(d_rcode | (d_extrcode << 4));
   }
 private:
-  int d_rcode;     // plain DNS Rcode
-  int d_extrcode;  // upper bits in EDNS0 record
+  uint8_t d_rcode;     // plain DNS Rcode
+  uint8_t d_extrcode;  // upper bits in EDNS0 record
 };
 
 class RDRule : public DNSRule
@@ -1207,11 +1207,11 @@ void setupLuaRules()
       return std::shared_ptr<DNSRule>(new QNameWireLengthRule(min, max));
     });
 
-  g_lua.writeFunction("RCodeRule", [](int rcode) {
+  g_lua.writeFunction("RCodeRule", [](uint8_t rcode) {
       return std::shared_ptr<DNSRule>(new RCodeRule(rcode));
     });
 
-  g_lua.writeFunction("ERCodeRule", [](int rcode) {
+  g_lua.writeFunction("ERCodeRule", [](uint8_t rcode) {
       return std::shared_ptr<DNSRule>(new ERCodeRule(rcode));
     });