diff options
author | Loïc Hoguin <[email protected]> | 2019-11-04 12:29:16 +0100 |
---|---|---|
committer | Loïc Hoguin <[email protected]> | 2019-11-04 12:29:16 +0100 |
commit | bd6425ab87428cf4c95f4d23e0a48fd065fbd714 (patch) | |
tree | f775cc45d441af2205f256d2e5404ec84ee632fb /src | |
parent | e6b3e080e920007f27afb0d28710d4fdc2c57ebe (diff) | |
download | gun-bd6425ab87428cf4c95f4d23e0a48fd065fbd714.tar.gz gun-bd6425ab87428cf4c95f4d23e0a48fd065fbd714.tar.bz2 gun-bd6425ab87428cf4c95f4d23e0a48fd065fbd714.zip |
Fix a crash introduced in the previous commit
Diffstat (limited to 'src')
-rw-r--r-- | src/gun_http2.erl | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/gun_http2.erl b/src/gun_http2.erl index eb6f06c..8746b3e 100644 --- a/src/gun_http2.erl +++ b/src/gun_http2.erl @@ -769,10 +769,15 @@ create_stream(State=#http2_state{streams=Streams, stream_refs=Refs}, store_stream(State=#http2_state{streams=Streams}, Stream=#stream{id=StreamID}) -> State#http2_state{streams=Streams#{StreamID => Stream}}. -take_stream(State=#http2_state{streams=Streams0}, StreamID) -> +take_stream(State=#http2_state{streams=Streams0, stream_refs=Refs}, StreamID) -> case maps:take(StreamID, Streams0) of - {Stream, Streams} -> {Stream, State#http2_state{streams=Streams}}; - error -> error + {Stream=#stream{ref=StreamRef}, Streams} -> + {Stream, State#http2_state{ + streams=Streams, + stream_refs=maps:remove(StreamRef, Refs) + }}; + error -> + error end. maybe_delete_stream(State=#http2_state{http2_machine=HTTP2Machine}, StreamID, local, fin) -> |