aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTony Han <[email protected]>2019-04-28 11:03:31 +0800
committerLoïc Hoguin <[email protected]>2019-07-27 10:48:32 +0200
commit02fed8a1422c9ca6f33127509eebd244f0a74d3f (patch)
tree72c46e290890bd1e71d2672350b5a06be3fc2d3e /src
parentcd50a0d3f42afd5e12a1470902a60b4fa9d84f73 (diff)
downloadgun-02fed8a1422c9ca6f33127509eebd244f0a74d3f.tar.gz
gun-02fed8a1422c9ca6f33127509eebd244f0a74d3f.tar.bz2
gun-02fed8a1422c9ca6f33127509eebd244f0a74d3f.zip
Postpone operations until connected
Diffstat (limited to 'src')
-rw-r--r--src/gun.erl3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/gun.erl b/src/gun.erl
index a548a5d..bb275f5 100644
--- a/src/gun.erl
+++ b/src/gun.erl
@@ -1061,6 +1061,9 @@ handle_common(cast, Any, _, #state{owner=Owner}) when element(2, Any) =/= Owner
element(2, Any) ! {gun_error, self(), {notowner,
"Operations are restricted to the owner of the connection."}},
keep_state_and_data;
+%% We postpone all HTTP/Websocket operations until we are connected.
+handle_common(cast, _, StateName, _) when StateName =/= connected ->
+ {keep_state_and_data, postpone};
handle_common(Type, Event, StateName, StateData) ->
error_logger:error_msg("Unexpected event in state ~p of type ~p:~n~w~n~p~n",
[StateName, Type, Event, StateData]),