From: Remi Gacogne Date: Thu, 26 Dec 2019 15:37:13 +0000 (+0100) Subject: dnsdist: Add Lua bindings for DNSName::hash() X-Git-Tag: auth-4.3.0-beta2~1^2~12 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=272d037e4a887c3c68507697f0986454d53819e4;p=thirdparty%2Fpdns.git dnsdist: Add Lua bindings for DNSName::hash() --- 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;