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:
parent
b68f77d626
commit
9b8d7a11c0
11
src/stream.c
11
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.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;
|
||||||
|
|
Loading…
Reference in New Issue