BUG/MEDIUM: checks: Unsubscribe to mux events when a conn-stream is destroyed
Since the tcp-check based heath checks uses the best multuplexer for a
connection, the mux-pt is no longer the only possible choice. So events
subscriptions and unsubscriptions must be done with the mux.
No backport needed.
diff --git a/src/checks.c b/src/checks.c
index 47468af..15966c8 100644
--- a/src/checks.c
+++ b/src/checks.c
@@ -1660,8 +1660,7 @@
/* 3- release and replace the old one on success */
if (check->cs) {
if (check->wait_list.events)
- cs->conn->xprt->unsubscribe(cs->conn, cs->conn->xprt_ctx,
- check->wait_list.events, &check->wait_list);
+ cs->conn->mux->unsubscribe(cs, check->wait_list.events, &check->wait_list);
/* We may have been scheduled to run, and the I/O handler
* expects to have a cs, so remove the tasklet
@@ -3270,10 +3269,7 @@
task_set_affinity(t, MAX_THREADS_MASK);
if (cs) {
if (check->wait_list.events)
- cs->conn->xprt->unsubscribe(cs->conn,
- cs->conn->xprt_ctx,
- check->wait_list.events,
- &check->wait_list);
+ cs->conn->mux->unsubscribe(cs, check->wait_list.events, &check->wait_list);
/* We may have been scheduled to run, and the
* I/O handler expects to have a cs, so remove
* the tasklet
@@ -3333,10 +3329,7 @@
if (cs) {
if (check->wait_list.events)
- cs->conn->xprt->unsubscribe(cs->conn,
- cs->conn->xprt_ctx,
- check->wait_list.events,
- &check->wait_list);
+ cs->conn->mux->unsubscribe(cs, check->wait_list.events, &check->wait_list);
/* We may have been scheduled to run, and the
* I/O handler expects to have a cs, so remove
* the tasklet