From 15e21d849e5354a3f647929a3c8b0c883553fafb Mon Sep 17 00:00:00 2001 From: Remi Gacogne Date: Wed, 15 May 2019 17:11:44 +0200 Subject: [PATCH] dnsdist: Expose SNI to the Lua DNSQuestion object as well --- pdns/dnsdist-lua-bindings-dnsquestion.cc | 4 ++++ pdns/dnsdistdist/docs/reference/dq.rst | 8 ++++++++ 2 files changed, 12 insertions(+) diff --git a/pdns/dnsdist-lua-bindings-dnsquestion.cc b/pdns/dnsdist-lua-bindings-dnsquestion.cc index dbbb6cdba..1392397e8 100644 --- a/pdns/dnsdist-lua-bindings-dnsquestion.cc +++ b/pdns/dnsdist-lua-bindings-dnsquestion.cc @@ -85,6 +85,10 @@ void setupLuaBindingsDNSQuestion() return true; }); + g_lua.registerFunction("getServerNameIndication", [](const DNSQuestion& dq) { + return dq.sni; + }); + g_lua.registerFunction("sendTrap", [](const DNSQuestion& dq, boost::optional reason) { #ifdef HAVE_NET_SNMP if (g_snmpAgent && g_snmpTrapsEnabled) { diff --git a/pdns/dnsdistdist/docs/reference/dq.rst b/pdns/dnsdistdist/docs/reference/dq.rst index e451eb62e..d8f37c51b 100644 --- a/pdns/dnsdistdist/docs/reference/dq.rst +++ b/pdns/dnsdistdist/docs/reference/dq.rst @@ -92,6 +92,14 @@ This state can be modified from the various hooks. :returns: A table of EDNSOptionView objects, indexed on the ECS Option code + .. method:: DNSQuestion:getServerNameIndication() -> string + + .. versionadded:: 1.4.0 + + Return the TLS Server Name Indication (SNI) value sent by the client over DoT or DoH, if any + + :returns: A string containing the TLS SNI value, if any + .. method:: DNSQuestion:getTag(key) -> string .. versionadded:: 1.2.0 -- 2.40.0