diff options
Diffstat (limited to 'dnsdist-internal-queries.cc')
-rw-r--r-- | dnsdist-internal-queries.cc | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/dnsdist-internal-queries.cc b/dnsdist-internal-queries.cc index 49f95e4..b707fef 100644 --- a/dnsdist-internal-queries.cc +++ b/dnsdist-internal-queries.cc @@ -20,8 +20,10 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "dnsdist-internal-queries.hh" +#include "dnsdist-nghttp2-in.hh" #include "dnsdist-tcp.hh" #include "doh.hh" +#include "doq.hh" std::unique_ptr<CrossProtocolQuery> getUDPCrossProtocolQueryFromDQ(DNSQuestion& dq); @@ -35,7 +37,22 @@ std::unique_ptr<CrossProtocolQuery> getInternalQueryFromDQ(DNSQuestion& dq, bool } #ifdef HAVE_DNS_OVER_HTTPS else if (protocol == dnsdist::Protocol::DoH) { - return getDoHCrossProtocolQueryFromDQ(dq, isResponse); +#ifdef HAVE_LIBH2OEVLOOP + if (dq.ids.cs->dohFrontend->d_library == "h2o") { + return getDoHCrossProtocolQueryFromDQ(dq, isResponse); + } +#endif /* HAVE_LIBH2OEVLOOP */ + return getTCPCrossProtocolQueryFromDQ(dq); + } +#endif +#ifdef HAVE_DNS_OVER_QUIC + else if (protocol == dnsdist::Protocol::DoQ) { + return getDOQCrossProtocolQueryFromDQ(dq, isResponse); + } +#endif +#ifdef HAVE_DNS_OVER_HTTP3 + else if (protocol == dnsdist::Protocol::DoH3) { + return getDOH3CrossProtocolQueryFromDQ(dq, isResponse); } #endif else { |