diff options
author | Evgeniy Khramtsov <ekhramtsov@process-one.net> | 2016-12-28 09:47:11 +0300 |
---|---|---|
committer | Evgeniy Khramtsov <ekhramtsov@process-one.net> | 2016-12-28 09:47:11 +0300 |
commit | 309bdfbe285c82726d2ce1406fc26c19a6b37bd9 (patch) | |
tree | 2e5f67c08c65b3951d86e19f0a86f4140e321b0b /src/ejabberd_sm.erl | |
parent | Rewrite ejabberd_service to use new XMPP stream API (diff) |
Add xmpp_stream_out behaviour and rewrite s2s/SM code
Diffstat (limited to 'src/ejabberd_sm.erl')
-rw-r--r-- | src/ejabberd_sm.erl | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/src/ejabberd_sm.erl b/src/ejabberd_sm.erl index 11b829a9..46008bec 100644 --- a/src/ejabberd_sm.erl +++ b/src/ejabberd_sm.erl @@ -359,20 +359,20 @@ unregister_iq_handler(Host, XMLNS) -> ejabberd_sm ! {unregister_iq_handler, Host, XMLNS}. %% Why the hell do we have so many similar kicks? -c2s_handle_info({noreply, #{lang := Lang} = State}, replaced) -> +c2s_handle_info(#{lang := Lang} = State, replaced) -> State1 = State#{replaced => true}, Err = xmpp:serr_conflict(<<"Replaced by new connection">>, Lang), - ejabberd_c2s:send(State1, Err); -c2s_handle_info({noreply, #{lang := Lang} = State}, kick) -> + {stop, ejabberd_c2s:send(State1, Err)}; +c2s_handle_info(#{lang := Lang} = State, kick) -> Err = xmpp:serr_policy_violation(<<"has been kicked">>, Lang), - c2s_handle_info({noreply, State}, {kick, kicked_by_admin, Err}); -c2s_handle_info({noreply, State}, {kick, _Reason, Err}) -> - ejabberd_c2s:send(State, Err); -c2s_handle_info({noreply, #{lang := Lang} = State}, {exit, Reason}) -> + c2s_handle_info(State, {kick, kicked_by_admin, Err}); +c2s_handle_info(State, {kick, _Reason, Err}) -> + {stop, ejabberd_c2s:send(State, Err)}; +c2s_handle_info(#{lang := Lang} = State, {exit, Reason}) -> Err = xmpp:serr_conflict(Reason, Lang), - ejabberd_c2s:send(State, Err); -c2s_handle_info(Acc, _) -> - Acc. + {stop, ejabberd_c2s:send(State, Err)}; +c2s_handle_info(State, _) -> + State. %%==================================================================== %% gen_server callbacks |