]> git.ipfire.org Git - thirdparty/haproxy.git/commit
BUG/MINOR: quic: properly support GSO on backend side
authorAmaury Denoyelle <adenoyelle@haproxy.com>
Tue, 5 Aug 2025 08:26:29 +0000 (10:26 +0200)
committerAmaury Denoyelle <adenoyelle@haproxy.com>
Mon, 8 Sep 2025 14:18:05 +0000 (16:18 +0200)
commit0b6908385e329441bf8fced097adfa276be5e8da
treec59ae4e2ea504fb3118254669ea48b9bb7f39c50
parente653dc304e7899e313c1422daa03e2824cbac6cd
BUG/MINOR: quic: properly support GSO on backend side

Previously, GSO emission was explicitely disabled on backend side. This
is not true since the following patch, thus GSO can be used, for example
when transfering large POST requests to a HTTP/3 backend.

  commit e064e5d46171d32097a84b8f84ccc510a5c211db
  MINOR: quic: duplicate GSO unsupp status from listener to conn

However, GSO on the backend side may cause crash when handling EIO. In
this case, GSO must be completely disabled. Previously, this was
performed by flagging listener instance. In backend side, this would
cause a crash as listener is NULL.

This patch fixes it by supporting GSO disable flag for servers. Thus, in
qc_send_ppkts(), EIO can be converted either to a listener or server
flag depending on the quic_conn proxy side. On backend side, server
instance is retrieved via <qc.conn.target>. This is enough to guarantee
that server is not deleted.

This does not need to be backported.
include/haproxy/quic_conn.h
include/haproxy/server-t.h
src/quic_conn.c
src/quic_tx.c