diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/cowboy_http2.erl | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/cowboy_http2.erl b/src/cowboy_http2.erl index 8011196..81e2a88 100644 --- a/src/cowboy_http2.erl +++ b/src/cowboy_http2.erl @@ -274,7 +274,6 @@ parse(State=#state{socket=Socket, transport=Transport, parse_state={preface, seq << Preface:Len/binary, _/bits >> = <<"PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n">>, case Data of Preface -> - %% @todo OK we should have a timeout when waiting for the preface. before_loop(State, Data); _ -> Transport:close(Socket), @@ -795,6 +794,9 @@ headers_encode(Headers0, EncodeState) -> -spec terminate(#state{}, _) -> no_return(). terminate(undefined, Reason) -> exit({shutdown, Reason}); +terminate(#state{socket=Socket, transport=Transport, parse_state={preface, _, _}}, Reason) -> + Transport:close(Socket), + exit({shutdown, Reason}); terminate(#state{socket=Socket, transport=Transport, client_streamid=LastStreamID, streams=Streams, children=Children}, Reason) -> %% @todo We might want to optionally send the Reason value |