From 272d037e4a887c3c68507697f0986454d53819e4 Mon Sep 17 00:00:00 2001 From: Remi Gacogne Date: Thu, 26 Dec 2019 16:37:13 +0100 Subject: [PATCH] dnsdist: Add Lua bindings for DNSName::hash() --- pdns/dnsdist-lua-bindings.cc | 1 + pdns/dnsdistdist/dnsdist-lua-ffi-interface.h | 1 + pdns/dnsdistdist/dnsdist-lua-ffi.cc | 5 +++++ 3 files changed, 7 insertions(+) diff --git a/pdns/dnsdist-lua-bindings.cc b/pdns/dnsdist-lua-bindings.cc index a57c620254..a24df185bf 100644 --- a/pdns/dnsdist-lua-bindings.cc +++ b/pdns/dnsdist-lua-bindings.cc @@ -211,6 +211,7 @@ void setupLuaBindings(bool client) g_lua.registerFunction("isPartOf", &DNSName::isPartOf); g_lua.registerFunction("chopOff", [](DNSName&dn ) { return dn.chopOff(); }); g_lua.registerFunction("countLabels", [](const DNSName& name) { return name.countLabels(); }); + g_lua.registerFunction("hash", [](const DNSName& name) { return name.hash(); }); g_lua.registerFunction("wirelength", [](const DNSName& name) { return name.wirelength(); }); g_lua.registerFunction("tostring", [](const DNSName&dn ) { return dn.toString(); }); g_lua.registerFunction("toString", [](const DNSName&dn ) { return dn.toString(); }); diff --git a/pdns/dnsdistdist/dnsdist-lua-ffi-interface.h b/pdns/dnsdistdist/dnsdist-lua-ffi-interface.h index d513407511..2650af7ce5 100644 --- a/pdns/dnsdistdist/dnsdist-lua-ffi-interface.h +++ b/pdns/dnsdistdist/dnsdist-lua-ffi-interface.h @@ -44,6 +44,7 @@ uint16_t dnsdist_ffi_dnsquestion_get_local_port(const dnsdist_ffi_dnsquestion_t* void dnsdist_ffi_dnsquestion_get_remoteaddr(const dnsdist_ffi_dnsquestion_t* dq, const void** addr, size_t* addrSize) __attribute__ ((visibility ("default"))); uint16_t dnsdist_ffi_dnsquestion_get_remote_port(const dnsdist_ffi_dnsquestion_t* dq) __attribute__ ((visibility ("default"))); void dnsdist_ffi_dnsquestion_get_qname_raw(const dnsdist_ffi_dnsquestion_t* dq, const char** qname, size_t* qnameSize) __attribute__ ((visibility ("default"))); +size_t dnsdist_ffi_dnsquestion_get_qname_hash(const dnsdist_ffi_dnsquestion_t* dq, size_t init); uint16_t dnsdist_ffi_dnsquestion_get_qtype(const dnsdist_ffi_dnsquestion_t* dq) __attribute__ ((visibility ("default"))); uint16_t dnsdist_ffi_dnsquestion_get_qclass(const dnsdist_ffi_dnsquestion_t* dq) __attribute__ ((visibility ("default"))); int dnsdist_ffi_dnsquestion_get_rcode(const dnsdist_ffi_dnsquestion_t* dq) __attribute__ ((visibility ("default"))); diff --git a/pdns/dnsdistdist/dnsdist-lua-ffi.cc b/pdns/dnsdistdist/dnsdist-lua-ffi.cc index 67466e2631..181232ede2 100644 --- a/pdns/dnsdistdist/dnsdist-lua-ffi.cc +++ b/pdns/dnsdistdist/dnsdist-lua-ffi.cc @@ -72,6 +72,11 @@ void dnsdist_ffi_dnsquestion_get_qname_raw(const dnsdist_ffi_dnsquestion_t* dq, *qnameSize = storage.size(); } +size_t dnsdist_ffi_dnsquestion_get_qname_hash(const dnsdist_ffi_dnsquestion_t* dq, size_t init) +{ + return dq->dq->qname->hash(init); +} + int dnsdist_ffi_dnsquestion_get_rcode(const dnsdist_ffi_dnsquestion_t* dq) { return dq->dq->dh->rcode; -- 2.47.2