From: Christopher Faulet Date: Fri, 17 Jun 2022 07:36:57 +0000 (+0200) Subject: MINOR: stream: Rely on stconn flags to abort stream destructive upgrade X-Git-Tag: v2.7-dev1~34 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9b8d7a11c0a8513f27780c3be0e43bb2ed5ee040;p=thirdparty%2Fhaproxy.git MINOR: stream: Rely on stconn flags to abort stream destructive upgrade On destructive connection upgrade, instead of using the new mux name to abort the old stream, we can relay on the stream connector flags. If it is detached after the upgrade, it means the stream will not be resused by the new mux and it must be aborted. This patch may be backported to 2.6. --- diff --git a/src/stream.c b/src/stream.c index 2f698482f3..5de7cdda71 100644 --- a/src/stream.c +++ b/src/stream.c @@ -1498,11 +1498,12 @@ int stream_set_http_mode(struct stream *s, const struct mux_proto_list *mux_prot s->req.flags &= ~(CF_READ_PARTIAL|CF_AUTO_CONNECT); s->req.total = 0; s->flags |= SF_IGNORE; - if (strcmp(conn->mux->name, "H2") == 0) { - /* For HTTP/2, destroy the stream connector, disable logging, - * and abort the stream process. Thus it will be - * silently destroyed. The new mux will create new - * streams. + if (sc_ep_test(sc, SE_FL_DETACHED)) { + /* If stream connector is detached, it means it was not + * reused by the new mux. Son destroy it, disable + * logging, and abort the stream process. Thus the + * stream will be silently destroyed. The new mux will + * create new streams. */ s->logs.logwait = 0; s->logs.level = 0;