From 8b2d3084986defd6045a0c02706415e0e7ae4b3f Mon Sep 17 00:00:00 2001 From: Evgeniy Khramtsov Date: Thu, 16 Feb 2017 11:00:26 +0300 Subject: 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} --- src/mod_echo.erl | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) (limited to 'src/mod_echo.erl') diff --git a/src/mod_echo.erl b/src/mod_echo.erl index 7c8722fc..5db5d49c 100644 --- a/src/mod_echo.erl +++ b/src/mod_echo.erl @@ -104,17 +104,20 @@ handle_cast(_Msg, State) -> {noreply, State}. %% {stop, Reason, State} %% Description: Handling all non call/cast messages %%-------------------------------------------------------------------- -handle_info({route, From, To, Packet}, State) -> +handle_info({route, Packet}, State) -> + From = xmpp:get_from(Packet), + To = xmpp:get_to(Packet), Packet2 = case From#jid.user of <<"">> -> Lang = xmpp:get_lang(Packet), Txt = <<"User part of JID in 'from' is empty">>, xmpp:make_error( Packet, xmpp:err_bad_request(Txt, Lang)); - _ -> Packet + _ -> + xmpp:set_from_to(Packet, To, From) end, do_client_version(disabled, To, From), - ejabberd_router:route(To, From, Packet2), + ejabberd_router:route(Packet2), {noreply, State}; handle_info(_Info, State) -> {noreply, State}. @@ -166,13 +169,14 @@ do_client_version(enabled, From, To) -> From2 = From#jid{resource = Random_resource, lresource = Random_resource}, ID = randoms:get_string(), - Packet = #iq{from = From, to = To, type = get, + Packet = #iq{from = From2, to = To, type = get, id = randoms:get_string(), sub_els = [#version{}]}, - ejabberd_router:route(From2, To, Packet), + ejabberd_router:route(Packet), receive - {route, To, From2, - #iq{id = ID, type = result, sub_els = [#version{} = V]}} -> + {route, + #iq{to = To, from = From2, + id = ID, type = result, sub_els = [#version{} = V]}} -> ?INFO_MSG("Version of the client ~s:~n~s", [jid:to_string(To), xmpp:pp(V)]) after 5000 -> % Timeout in miliseconds: 5 seconds -- cgit v1.2.3