tree 4159fdc388f2326e2808186c86b0772e5efef429
parent bb970422546c0db08b244d5e5a12a795a605dd64
author Willy Tarreau <w@1wt.eu> 1649835652 +0200
committer Willy Tarreau <w@1wt.eu> 1649835652 +0200
encoding latin1

BUG/MINOR: mux-h2: do not send GOAWAY if SETTINGS were not sent

It was reported in issue #13 that a GOAWAY frame was sent on timeout even
if no SETTINGS frame was sent. The approach imagined by then was to track
the fact that a SETTINGS frame was already sent to avoid this, but that's
already what is done through the state, though it doesn't stand due to the
fact that we switch the frame to the error state. Thus instead what we're
doing here is to instead set the GOAWAY_FAILED flag in h2c_error() before
switching to the ERROR state when the state indicates we've not yet sent
settings, and refrain from sending anything from the h2c_send_goaway_error()
function for such states.

This could be backported to all versions where it applies well.
