]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
dnsdist: Add lua binding for reading trailing data
authorRichard Gibson <richard.gibson@gmail.com>
Thu, 30 Aug 2018 03:57:20 +0000 (23:57 -0400)
committerRichard Gibson <richard.gibson@gmail.com>
Tue, 16 Oct 2018 21:45:34 +0000 (17:45 -0400)
pdns/dnsdist-lua-bindings-dnsquestion.cc

index 52ccf2711c79b46fa3d22a4adee7863465c1c521..ebc93901b0edec2bc2baf82fbd0929a5995d6c65 100644 (file)
@@ -63,6 +63,12 @@ void setupLuaBindingsDNSQuestion()
 
       return *dq.ednsOptions;
     });
+  g_lua.registerFunction<vector<uint8_t>(DNSQuestion::*)(void)>("getTrailingData", [](const DNSQuestion& dq) {
+      const uint8_t* message = reinterpret_cast<const uint8_t*>(dq.dh);
+      const uint16_t length = getDNSPacketLength(reinterpret_cast<const char*>(message), dq.len);
+      vector<uint8_t> tail(message + length, message + dq.len);
+      return tail;
+    });
 
   g_lua.registerFunction<void(DNSQuestion::*)(std::string)>("sendTrap", [](const DNSQuestion& dq, boost::optional<std::string> reason) {
 #ifdef HAVE_NET_SNMP