diff options
author | Alexey Shchepin <alexey@process-one.net> | 2012-02-03 17:53:05 +0200 |
---|---|---|
committer | Alexey Shchepin <alexey@process-one.net> | 2012-02-03 17:53:05 +0200 |
commit | ea6e85d926b85cbcacb9bc91dee87c69c247c86f (patch) | |
tree | 8ad77292983fef6eb3f18a6e8f8555006e110b6f /src | |
parent | Fixed ejabberd_http:get_line (diff) |
Use separate timer for C2S_OPEN_TIMEOUT
Diffstat (limited to 'src')
-rw-r--r-- | src/ejabberd_c2s.erl | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/ejabberd_c2s.erl b/src/ejabberd_c2s.erl index 92ca4f11e..f6b0a7280 100644 --- a/src/ejabberd_c2s.erl +++ b/src/ejabberd_c2s.erl @@ -277,6 +277,7 @@ init([{SockMod, Socket}, Opts, FSMLimitOpts]) -> ip = IP, redirect = Redirect, fsm_limit_opts = FSMLimitOpts}, + erlang:send_after(?C2S_OPEN_TIMEOUT, self(), open_timeout), case get_jid_from_opts(Opts) of {ok, #jid{user = U, server = Server, resource = R} = JID} -> ?GEN_FSM:send_event(self(), open_session), @@ -1694,6 +1695,13 @@ handle_info({ack_timeout, Counter}, StateName, StateData) -> fsm_next_state(StateName, StateData) end end; +handle_info(open_timeout, StateName, StateData) -> + case StateName of + session_established -> + fsm_next_state(StateName, StateData); + _ -> + {stop, normal, StateData} + end; handle_info({'DOWN', Monitor, _Type, _Object, _Info}, StateName, StateData) when Monitor == StateData#state.socket_monitor -> if |