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.
This commit is contained in:
Christopher Faulet 2022-06-17 09:36:57 +02:00
parent b68f77d626
commit 9b8d7a11c0
1 changed files with 6 additions and 5 deletions

View File

@ -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.flags &= ~(CF_READ_PARTIAL|CF_AUTO_CONNECT);
s->req.total = 0; s->req.total = 0;
s->flags |= SF_IGNORE; s->flags |= SF_IGNORE;
if (strcmp(conn->mux->name, "H2") == 0) { if (sc_ep_test(sc, SE_FL_DETACHED)) {
/* For HTTP/2, destroy the stream connector, disable logging, /* If stream connector is detached, it means it was not
* and abort the stream process. Thus it will be * reused by the new mux. Son destroy it, disable
* silently destroyed. The new mux will create new * logging, and abort the stream process. Thus the
* streams. * stream will be silently destroyed. The new mux will
* create new streams.
*/ */
s->logs.logwait = 0; s->logs.logwait = 0;
s->logs.level = 0; s->logs.level = 0;