diff options
author | Bing Han <[email protected]> | 2018-07-05 00:32:07 +0800 |
---|---|---|
committer | Loïc Hoguin <[email protected]> | 2018-08-13 11:10:49 +0200 |
commit | e9fd2925ae6be7b6f456e86254b1437d06dfa973 (patch) | |
tree | 39f211031fc987a77481671be0034cd253721100 /src | |
parent | aee40d5bb599237fc159d6684fb308810ac465c3 (diff) | |
download | cowboy-e9fd2925ae6be7b6f456e86254b1437d06dfa973.tar.gz cowboy-e9fd2925ae6be7b6f456e86254b1437d06dfa973.tar.bz2 cowboy-e9fd2925ae6be7b6f456e86254b1437d06dfa973.zip |
Fix cancelling undefined settings timer
when settings_timeout is infinity
Diffstat (limited to 'src')
-rw-r--r-- | src/cowboy_http2.erl | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/cowboy_http2.erl b/src/cowboy_http2.erl index 601ea98..5e72870 100644 --- a/src/cowboy_http2.erl +++ b/src/cowboy_http2.erl @@ -485,7 +485,10 @@ frame(State0=#state{socket=Socket, transport=Transport, opts=Opts, %% Ack for a previously sent SETTINGS frame. frame(State0=#state{local_settings=Local0, next_settings=NextSettings, next_settings_timer=TRef}, settings_ack) -> - ok = erlang:cancel_timer(TRef, [{async, true}, {info, false}]), + ok = case TRef of + undefined -> ok; + _ -> erlang:cancel_timer(TRef, [{async, true}, {info, false}]) + end, Local = maps:merge(Local0, NextSettings), State1 = State0#state{local_settings=Local, next_settings=#{}, next_settings_timer=undefined}, |