BUG/MEDIUM: stream: Don't call mux .ctl() callback if not implemented

The commit 5ff7d2276 ("BUG/MEDIUM: stream: Properly handle abortonclose when set
on backend only") introduced a regression. Not all multiplexer implement the
.ctl() callback function. Thus we must be sure this callback function is defined
first to call it.

This patch should fix a crash reported by Tristan in the issue #2095. It must be
backported as far as 2.2, with the commit above.
This commit is contained in:
Christopher Faulet 2023-11-14 19:18:53 +01:00
parent d76fa37534
commit 691f4cf449

View File

@ -2296,7 +2296,7 @@ struct task *process_stream(struct task *t, void *context, unsigned int state)
if (s->be->options & PR_O_ABRT_CLOSE) {
struct connection *conn = sc_conn(scf);
if (conn)
if (conn && conn->mux && conn->mux->ctl)
conn->mux->ctl(conn, MUX_SUBS_RECV, NULL);
}
}