From e1e455cc9bba402528ec30d3cc59ece86c15060a Mon Sep 17 00:00:00 2001 From: Remi Gacogne Date: Fri, 20 Jun 2025 13:44:33 +0200 Subject: [PATCH] dnsdist: Define `dnsdist::doh::MAX_INCOMING_CONCURRENT_STREAMS` Signed-off-by: Remi Gacogne (cherry picked from commit 866c8f3fff753d3b2a03c1da50e8d53056880a46) --- pdns/dnsdistdist/dnsdist-doh-common.hh | 2 ++ pdns/dnsdistdist/dnsdist-nghttp2-in.cc | 6 ++---- pdns/dnsdistdist/doh.cc | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/pdns/dnsdistdist/dnsdist-doh-common.hh b/pdns/dnsdistdist/dnsdist-doh-common.hh index d485e7a5d4..74f12b2fac 100644 --- a/pdns/dnsdistdist/dnsdist-doh-common.hh +++ b/pdns/dnsdistdist/dnsdist-doh-common.hh @@ -35,6 +35,8 @@ namespace dnsdist::doh { +static constexpr uint32_t MAX_INCOMING_CONCURRENT_STREAMS{100U}; + std::optional getPayloadFromPath(const std::string_view& path); } diff --git a/pdns/dnsdistdist/dnsdist-nghttp2-in.cc b/pdns/dnsdistdist/dnsdist-nghttp2-in.cc index b7983314b4..2ada93a4a9 100644 --- a/pdns/dnsdistdist/dnsdist-nghttp2-in.cc +++ b/pdns/dnsdistdist/dnsdist-nghttp2-in.cc @@ -93,8 +93,6 @@ private: }; #endif -static constexpr uint32_t MAX_CONCURRENT_STREAMS{100U}; - class IncomingDoHCrossProtocolContext : public DOHUnitInterface { public: @@ -294,7 +292,7 @@ bool IncomingHTTP2Connection::checkALPN() void IncomingHTTP2Connection::handleConnectionReady() { - constexpr std::array settings{{{NGHTTP2_SETTINGS_MAX_CONCURRENT_STREAMS, MAX_CONCURRENT_STREAMS}}}; + constexpr std::array settings{{{NGHTTP2_SETTINGS_MAX_CONCURRENT_STREAMS, dnsdist::doh::MAX_INCOMING_CONCURRENT_STREAMS}}}; constexpr std::array nearLimitsSettings{{{NGHTTP2_SETTINGS_MAX_CONCURRENT_STREAMS, 1U}}}; auto ret = nghttp2_submit_settings(d_session.get(), NGHTTP2_FLAG_NONE, isNearTCPLimits() ? nearLimitsSettings.data() : settings.data(), isNearTCPLimits() ? nearLimitsSettings.size() : settings.size()); if (ret != 0) { @@ -987,7 +985,7 @@ int IncomingHTTP2Connection::on_begin_headers_callback(nghttp2_session* session, return 0; }; - if (conn->getConcurrentStreamsCount() >= MAX_CONCURRENT_STREAMS) { + if (conn->getConcurrentStreamsCount() >= dnsdist::doh::MAX_INCOMING_CONCURRENT_STREAMS) { vinfolog("Too many concurrent streams on connection from %d", conn->d_ci.remote.toStringWithPort()); return close_connection(conn, frame->hd.stream_id, conn->d_ci.remote); } diff --git a/pdns/dnsdistdist/doh.cc b/pdns/dnsdistdist/doh.cc index 6dfff33223..ea28a020e2 100644 --- a/pdns/dnsdistdist/doh.cc +++ b/pdns/dnsdistdist/doh.cc @@ -1085,7 +1085,7 @@ static int doh_handler(h2o_handler_t *self, h2o_req_t *req) } auto& conn = t_conns.at(descriptor); - if (conn.d_concurrentStreams >= 100U) { + if (conn.d_concurrentStreams >= dnsdist::doh::MAX_INCOMING_CONCURRENT_STREAMS) { vinfolog("Too many concurrent streams on connection from %d", conn.d_remote.toStringWithPort()); return 0; } -- 2.47.3