From: Remi Gacogne Date: Fri, 3 May 2024 12:28:12 +0000 (+0200) Subject: dnsdist: Reply to HTTP/2 PING frames immediately X-Git-Tag: dnsdist-1.9.5~16^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F14163%2Fhead;p=thirdparty%2Fpdns.git dnsdist: Reply to HTTP/2 PING frames immediately We usually buffer a bit to avoid sending a lot of small data chunks on the wire (or to the kernel anyway), but for `HTTP/2 PING` frames that are not followed by anything else calling for a response, this causes an issue as these frames are designed to measure the latency between a client and a server, and are used by HTTP/2 proxies to ensure that a connection can be reused. (cherry picked from commit 4170083b33b171b150257311ef832c743f4d32c6) --- diff --git a/pdns/dnsdistdist/dnsdist-nghttp2-in.cc b/pdns/dnsdistdist/dnsdist-nghttp2-in.cc index e40f5e64b1..a016363c6f 100644 --- a/pdns/dnsdistdist/dnsdist-nghttp2-in.cc +++ b/pdns/dnsdistdist/dnsdist-nghttp2-in.cc @@ -922,6 +922,9 @@ int IncomingHTTP2Connection::on_frame_recv_callback(nghttp2_session* session, co return NGHTTP2_ERR_CALLBACK_FAILURE; } } + else if (frame->hd.type == NGHTTP2_PING) { + conn->d_needFlush = true; + } return 0; }