25
1
mirror of https://github.com/processone/ejabberd.git synced 2024-10-01 14:44:07 +02:00

Use separate timer for C2S_OPEN_TIMEOUT

This commit is contained in:
Alexey Shchepin 2012-02-03 17:53:05 +02:00
parent eaecb9b65c
commit ea6e85d926

View File

@ -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