]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
Make some cookie sizes constant, fix nits
authorPieter Lexis <pieter.lexis@powerdns.com>
Tue, 1 Jun 2021 11:18:54 +0000 (13:18 +0200)
committerPieter Lexis <pieter.lexis@powerdns.com>
Mon, 20 Sep 2021 08:54:16 +0000 (10:54 +0200)
pdns/common_startup.cc
pdns/dnspacket.cc
pdns/ednscookies.cc
pdns/ednscookies.hh
pdns/misc.cc

index 3c2bee68eb1da1dff0ad75b26c060aa2f3edd0ac..b094b1d720fb9c55d2144f3bf4669f5dda1960f2 100644 (file)
@@ -585,8 +585,8 @@ void mainthread()
 #ifdef HAVE_CRYPTO_SHORTHASH // we can do siphash-based cookies
      DNSPacket::s_doEDNSCookieProcessing = true;
      try {
-       if (::arg()["edns-cookie-secret"].size() != 32) {
-         throw std::range_error("wrong size (" + std::to_string(::arg()["edns-cookie-secret"].size()) + "), must be 32");
+       if (::arg()["edns-cookie-secret"].size() != EDNSCOOKIESECRETSIZE) {
+         throw std::range_error("wrong size (" + std::to_string(::arg()["edns-cookie-secret"].size()) + "), must be " + std::to_string(EDNSCOOKIESECRETSIZE));
        }
        DNSPacket::s_EDNSCookieKey = makeBytesFromHex(::arg()["edns-cookie-secret"]);
      } catch(const std::range_error &e) {
index 67443945e89f41e523e5c941dcee54de7b49df06..131c2466a49dc538ae631a145d194bba0737fbe3 100644 (file)
@@ -332,7 +332,7 @@ void DNSPacket::wrapup()
 
   if (d_haveednscookie) {
     if (d_eco.isWellFormed()) {
-        optsize += 24;
+        optsize += EDNSCOOKIEOPTSIZE;
     }
   }
 
index 5805ff7a8dd90151186c13f958f106de32d6540a..cba399d4fd8bb9322beee5ed8f0fd8124fdb3195 100644 (file)
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  */
+#include "config.h"
 #include "ednscookies.hh"
 #include "misc.hh"
 
-#include "config.h"
 #ifdef HAVE_CRYPTO_SHORTHASH
 #include <sodium.h>
 #endif
index 14d4653eadd136b968f16df60874aaf695d1d46a..0894d0e8515e85ffd1c364b3c75bc3b8bcc5fe3b 100644 (file)
@@ -23,6 +23,9 @@
 #include "namespaces.hh"
 #include "iputils.hh"
 
+#define EDNSCOOKIESECRETSIZE 32
+#define EDNSCOOKIEOPTSIZE 24
+
 struct EDNSCookiesOpt
 {
   EDNSCookiesOpt(){};
index 494e49849f4577b6846440b40c268d6e0461c3d5..278c47223086309089927c7ddb8f64a5d3f9948b 100644 (file)
@@ -582,6 +582,7 @@ string makeBytesFromHex(const string &in) {
     throw std::range_error("odd number of bytes in hex string");
   }
   string ret;
+  ret.reserve(in.size());
   unsigned int num;
   for (size_t i = 0; i < in.size(); i+=2) {
     string numStr = in.substr(i, 2);