From 87c0eabdb8063378389b10f73b2666f08a90b449 Mon Sep 17 00:00:00 2001 From: Remi Gacogne Date: Wed, 15 May 2019 18:15:22 +0200 Subject: [PATCH] dnsdist: Extract TLS SNI for DoH if support is present --- pdns/dnsdistdist/doh.cc | 7 +++++++ pdns/dnsdistdist/m4/pdns_check_libh2o_evloop.m4 | 13 +++++++++++++ 2 files changed, 20 insertions(+) diff --git a/pdns/dnsdistdist/doh.cc b/pdns/dnsdistdist/doh.cc index 22c3765ca8..4e585d4afa 100644 --- a/pdns/dnsdistdist/doh.cc +++ b/pdns/dnsdistdist/doh.cc @@ -185,6 +185,13 @@ static int processDOHQuery(DOHUnit* du) dq.ednsAdded = du->ednsAdded; dq.du = du; queryId = ntohs(dh->id); +#ifdef HAVE_H2O_SOCKET_GET_SSL_SERVER_NAME + h2o_socket_t* sock = du->req->conn->callbacks->get_socket(du->req->conn); + const char * sni = h2o_socket_get_ssl_server_name(sock); + if (sni != nullptr) { + dq.sni = sni; + } +#endif /* HAVE_H2O_SOCKET_BET_SSL_SERVER_NAME */ std::shared_ptr ss{nullptr}; auto result = processQuery(dq, cs, holders, ss); diff --git a/pdns/dnsdistdist/m4/pdns_check_libh2o_evloop.m4 b/pdns/dnsdistdist/m4/pdns_check_libh2o_evloop.m4 index ffe066b72f..00781ce32b 100644 --- a/pdns/dnsdistdist/m4/pdns_check_libh2o_evloop.m4 +++ b/pdns/dnsdistdist/m4/pdns_check_libh2o_evloop.m4 @@ -3,6 +3,19 @@ AC_DEFUN([PDNS_CHECK_LIBH2OEVLOOP], [ PKG_CHECK_MODULES([LIBH2OEVLOOP], [libh2o-evloop], [ [HAVE_LIBH2OEVLOOP=1] AC_DEFINE([HAVE_LIBH2OEVLOOP], [1], [Define to 1 if you have libh2o-evloop]) + save_CFLAGS=$CFLAGS + save_LIBS=$LIBS + CFLAGS="$LIBH2OEVLOOP_CFLAGS $CFLAGS" + LIBS="$LIBH2OEVLOOP_LIBS $LIBS" + AC_CHECK_DECLS([h2o_socket_get_ssl_server_name], [ + AC_DEFINE([HAVE_H2O_SOCKET_GET_SSL_SERVER_NAME], [1], [define to 1 if h2o_socket_get_ssl_server_name is available.]) + ], + [ : ], + [AC_INCLUDES_DEFAULT + #include + ]) + CFLAGS=$save_CFLAGS + LIBS=$save_LIBS ], [ : ]) AM_CONDITIONAL([HAVE_LIBH2OEVLOOP], [test "x$LIBH2OEVLOOP_LIBS" != "x"]) ]) -- 2.47.2