mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2025-02-04 04:22:47 +00:00
BUG/MEDIUM: h2: properly set H2_SF_ES_SENT when sending the final frame
When sending DATA+ES, it's important to set H2_SF_ES_SENT as we don't want to emit is several times nor to send an RST afterwards.
This commit is contained in:
parent
e6ae77f64f
commit
6d8b682f9a
21
src/mux_h2.c
21
src/mux_h2.c
@ -891,16 +891,17 @@ static int h2_send_empty_data_es(struct h2s *h2s)
|
||||
memcpy(str, "\x00\x00\x00\x00\x01", 5);
|
||||
write_n32(str + 5, h2s->id);
|
||||
ret = bo_istput(res, ist2(str, 9));
|
||||
if (unlikely(ret <= 0)) {
|
||||
if (!ret) {
|
||||
h2c->flags |= H2_CF_MUX_MFULL;
|
||||
h2s->flags |= H2_SF_BLK_MROOM;
|
||||
return 0;
|
||||
}
|
||||
else {
|
||||
h2c_error(h2c, H2_ERR_INTERNAL_ERROR);
|
||||
return 0;
|
||||
}
|
||||
if (likely(ret > 0)) {
|
||||
h2s->flags |= H2_SF_ES_SENT;
|
||||
}
|
||||
else if (!ret) {
|
||||
h2c->flags |= H2_CF_MUX_MFULL;
|
||||
h2s->flags |= H2_SF_BLK_MROOM;
|
||||
return 0;
|
||||
}
|
||||
else {
|
||||
h2c_error(h2c, H2_ERR_INTERNAL_ERROR);
|
||||
return 0;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user