]> git.ipfire.org Git - thirdparty/haproxy.git/commit
BUG/MEDIUM: mux-spop: Properly handle CLOSING state
authorChristopher Faulet <cfaulet@haproxy.com>
Tue, 13 May 2025 17:04:01 +0000 (19:04 +0200)
committerChristopher Faulet <cfaulet@haproxy.com>
Wed, 14 May 2025 07:14:12 +0000 (09:14 +0200)
commitddc5f8d92e3613ec7060b0ee8bdb220866182e86
treeb59c04801e06dfe5c9f8536c7a122ac8b6567684
parenta3940614c24049d2c1ee9f686e0579e3a2e49b33
BUG/MEDIUM: mux-spop: Properly handle CLOSING state

The CLOSING state was not handled at all by the SPOP multiplexer while it is
mandatory when a DISCONNECT frame was sent and the mux should wait for the
DISCONNECT frame in reply from the agent. Thanks to this patch, it should be
fixed.

In addition, if an error occurres during the AGENT HELLO frame parsing, the
SPOP connection is no longer switched to CLOSED state and remains in ERROR
state instead. It is important to be able to send the DISCONNECT frame to
the agent instead of closing the TCP connection immediately.

This patch depends on following commits:

  * BUG/MEDIUM: mux-spop: Remove frame parsing states from the SPOP connection state
  * MINOR: mux-spop: Don't set SPOP connection state to FRAME_H after ACK parsing
  * BUG/MINOR: mux-spop: Don't open new streams for SPOP connection on error
  * BUG/MINOR: mux-spop: Make the demux stream ID a signed integer

All the series must be backported to 3.1.
src/mux_spop.c