aboutsummaryrefslogtreecommitdiff
path: root/src/mod_mix.erl
diff options
context:
space:
mode:
authorEvgeniy Khramtsov <ekhramtsov@process-one.net>2017-02-16 11:00:26 +0300
committerEvgeniy Khramtsov <ekhramtsov@process-one.net>2017-02-16 11:10:24 +0300
commit8b2d3084986defd6045a0c02706415e0e7ae4b3f (patch)
tree419b64fc2d07646d221fdfa2f526e057fb34c6d2 /src/mod_mix.erl
parentMerge branch 'master' of github.com:processone/ejabberd (diff)
Change routing API
Now 'From' and 'To' arguments must be omitted in functions and structures related to routing. The commit deprecates the following functions: ejabberd_router:route/3 in favor of ejabberd_router:route/1 ejabberd_router:route_error/4 in favor of ejabberd_router:route_error/2 ejabberd_local:route_iq/4 in favor of ejabberd_local:route_iq/2 ejabberd_local:route_iq/5 in favor of ejabberd_local:route_iq/3 The format of {route, From, To, Packet} is changed in favor of {route, Packet}
Diffstat (limited to 'src/mod_mix.erl')
-rw-r--r--src/mod_mix.erl18
1 files changed, 9 insertions, 9 deletions
diff --git a/src/mod_mix.erl b/src/mod_mix.erl
index 6ee796fc6..edacd7b91 100644
--- a/src/mod_mix.erl
+++ b/src/mod_mix.erl
@@ -163,14 +163,14 @@ handle_call(_Request, _From, State) ->
handle_cast(_Msg, State) ->
{noreply, State}.
-handle_info({route, From, To, Packet}, State) ->
- case catch do_route(State, From, To, Packet) of
+handle_info({route, Packet}, State) ->
+ case catch do_route(State, Packet) of
{'EXIT', _} = Err ->
try
- ?ERROR_MSG("failed to route packet ~p from '~s' to '~s': ~p",
- [Packet, jid:to_string(From), jid:to_string(To), Err]),
+ ?ERROR_MSG("failed to route packet:~n~s~nReason: ~p",
+ [xmpp:pp(Packet), Err]),
Error = xmpp:err_internal_server_error(),
- ejabberd_router:route_error(To, From, Packet, Error)
+ ejabberd_router:route_error(Packet, Error)
catch _:_ ->
ok
end;
@@ -204,12 +204,12 @@ code_change(_OldVsn, State, _Extra) ->
%%%===================================================================
%%% Internal functions
%%%===================================================================
-do_route(_State, From, To, #iq{} = Packet) ->
- ejabberd_router:process_iq(From, To, Packet);
-do_route(_State, From, To, #presence{type = unavailable})
+do_route(_State, #iq{} = Packet) ->
+ ejabberd_router:process_iq(Packet);
+do_route(_State, #presence{from = From, to = To, type = unavailable})
when To#jid.luser /= <<"">> ->
delete_presence(From, To);
-do_route(_State, _From, _To, _Packet) ->
+do_route(_State, _Packet) ->
ok.
subscribe_nodes(From, To, Nodes) ->