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: rec-5.1.0-alpha1~18^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=refs%2Fpull%2F14128%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. --- diff --git a/pdns/dnsdistdist/dnsdist-nghttp2-in.cc b/pdns/dnsdistdist/dnsdist-nghttp2-in.cc index f88294168e..3898996b28 100644 --- a/pdns/dnsdistdist/dnsdist-nghttp2-in.cc +++ b/pdns/dnsdistdist/dnsdist-nghttp2-in.cc @@ -918,6 +918,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; }