summaryrefslogtreecommitdiff
path: root/src/mod_delegation.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_delegation.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_delegation.erl')
-rw-r--r--src/mod_delegation.erl17
1 files changed, 8 insertions, 9 deletions
diff --git a/src/mod_delegation.erl b/src/mod_delegation.erl
index 2037bfa3..ec58b3c4 100644
--- a/src/mod_delegation.erl
+++ b/src/mod_delegation.erl
@@ -162,7 +162,7 @@ handle_cast({disco_info, Type, Host, NS, Info}, State) ->
Delegations = dict:store({NS, Type}, {Host, Info}, State#state.delegations),
gen_iq_handler:add_iq_handler(Type, State#state.server_host, NS,
?MODULE, Type, one_queue),
- ejabberd_router:route(From, To, Msg),
+ ejabberd_router:route(Msg),
?INFO_MSG("Namespace '~s' is delegated to external component '~s'",
[NS, Host]),
{noreply, State#state{delegations = Delegations}};
@@ -238,7 +238,6 @@ process_iq(#iq{to = To, lang = Lang, sub_els = [SubEl]} = IQ, Type) ->
NewFrom = jid:make(LServer),
NewTo = jid:make(Host),
ejabberd_local:route_iq(
- NewFrom, NewTo,
#iq{type = set,
from = NewFrom,
to = NewTo,
@@ -259,22 +258,22 @@ process_iq_result(#iq{from = From, to = To, id = ID, lang = Lang} = IQ,
case xmpp:decode(SubEl, ?NS_CLIENT, [ignore_els]) of
#iq{from = To, to = From, type = Type, id = ID} = Reply
when Type == error; Type == result ->
- ejabberd_router:route(To, From, Reply)
+ ejabberd_router:route(Reply)
end
catch _:_ ->
?ERROR_MSG("got iq-result with invalid delegated "
"payload:~n~s", [xmpp:pp(ResIQ)]),
Txt = <<"External component failure">>,
Err = xmpp:err_internal_server_error(Txt, Lang),
- ejabberd_router:route_error(To, From, IQ, Err)
+ ejabberd_router:route_error(IQ, Err)
end;
process_iq_result(#iq{from = From, to = To}, #iq{type = error} = ResIQ) ->
Err = xmpp:set_from_to(ResIQ, To, From),
- ejabberd_router:route(To, From, Err);
-process_iq_result(#iq{from = From, to = To, lang = Lang} = IQ, timeout) ->
+ ejabberd_router:route(Err);
+process_iq_result(#iq{lang = Lang} = IQ, timeout) ->
Txt = <<"External component timeout">>,
Err = xmpp:err_internal_server_error(Txt, Lang),
- ejabberd_router:route_error(To, From, IQ, Err).
+ ejabberd_router:route_error(IQ, Err).
-spec send_disco_queries(binary(), binary(), binary()) -> ok.
send_disco_queries(LServer, Host, NS) ->
@@ -283,8 +282,8 @@ send_disco_queries(LServer, Host, NS) ->
lists:foreach(
fun({Type, Node}) ->
ejabberd_local:route_iq(
- From, To, #iq{type = get, from = From, to = To,
- sub_els = [#disco_info{node = Node}]},
+ #iq{type = get, from = From, to = To,
+ sub_els = [#disco_info{node = Node}]},
fun(#iq{type = result, sub_els = [SubEl]}) ->
try xmpp:decode(SubEl) of
#disco_info{} = Info->