]> git.ipfire.org Git - thirdparty/haproxy.git/commit
MAJOR: conn-stream: Share endpoint struct between the CS and the mux/applet
authorChristopher Faulet <cfaulet@haproxy.com>
Wed, 23 Mar 2022 14:15:29 +0000 (15:15 +0100)
committerChristopher Faulet <cfaulet@haproxy.com>
Wed, 13 Apr 2022 13:10:14 +0000 (15:10 +0200)
commit9ec2f4dc7c3ea4010426361bdbc246b3b0783449
tree0b2717cecc17390f1f4d693286134131704f4822
parentcb2fa368e9998723111ad72c665faaa294646e72
MAJOR: conn-stream: Share endpoint struct between the CS and the mux/applet

The conn-stream endpoint is now shared between the conn-stream and the
applet or the multiplexer. If the mux or the applet is created first, it is
responsible to also create the endpoint and share it with the conn-stream.
If the conn-stream is created first, it is the opposite.

When the endpoint is only owned by an applet or a mux, it is called an
orphan endpoint (there is no conn-stream). When it is only owned by a
conn-stream, it is called a detached endpoint (there is no mux/applet).

The last entity that owns an endpoint is responsible to release it. When a
mux or an applet is detached from a conn-stream, the conn-stream
relinquishes the endpoint to recreate a new one. This way, the endpoint
state is never lost for the mux or the applet.
26 files changed:
dev/flags/flags.c
include/haproxy/applet-t.h
include/haproxy/applet.h
include/haproxy/conn_stream-t.h
include/haproxy/conn_stream.h
include/haproxy/mux_quic-t.h
include/haproxy/mux_quic.h
src/applet.c
src/backend.c
src/check.c
src/cli.c
src/conn_stream.c
src/dns.c
src/flt_spoe.c
src/h3.c
src/hlua.c
src/http_ana.c
src/http_client.c
src/mux_fcgi.c
src/mux_h1.c
src/mux_h2.c
src/mux_pt.c
src/mux_quic.c
src/peers.c
src/sink.c
src/stream_interface.c