diff options
author | Evgeniy Khramtsov <ekhramtsov@process-one.net> | 2017-02-16 11:00:26 +0300 |
---|---|---|
committer | Evgeniy Khramtsov <ekhramtsov@process-one.net> | 2017-02-16 11:10:24 +0300 |
commit | 8b2d3084986defd6045a0c02706415e0e7ae4b3f (patch) | |
tree | 419b64fc2d07646d221fdfa2f526e057fb34c6d2 /src/ejabberd_piefxis.erl | |
parent | Merge 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/ejabberd_piefxis.erl')
-rw-r--r-- | src/ejabberd_piefxis.erl | 21 |
1 files changed, 8 insertions, 13 deletions
diff --git a/src/ejabberd_piefxis.erl b/src/ejabberd_piefxis.erl index 530f7bfb..0e89490a 100644 --- a/src/ejabberd_piefxis.erl +++ b/src/ejabberd_piefxis.erl @@ -524,24 +524,19 @@ process_vcard(El, State = #state{user = U, server = S}) -> process_offline_msg(#message{from = undefined}, _State) -> stop("No 'from' attribute found", []); process_offline_msg(Msg, State = #state{user = U, server = S}) -> - From = xmpp:get_from(Msg), - To = jid:make(U, S, <<>>), - NewMsg = xmpp:set_from_to(Msg, From, To), - case catch mod_offline:store_packet(pass, From, To, NewMsg) of - {'EXIT', _} = Err -> - stop("Failed to store offline message: ~p", [Err]); - _ -> - {ok, State} - end. + To = jid:make(U, S), + ejabberd_hooks:run_fold( + offline_message_hook, To#jid.lserver, pass, + [xmpp:set_to(Msg, To)]), + {ok, State}. -spec process_presence(presence(), state()) -> {ok, state()} | {error, _}. process_presence(#presence{from = undefined}, _State) -> stop("No 'from' attribute found", []); process_presence(Pres, #state{user = U, server = S} = State) -> - From = xmpp:get_from(Pres), - To = jid:make(U, S, <<>>), - NewPres = xmpp:set_from_to(Pres, From, To), - ejabberd_router:route(From, To, NewPres), + To = jid:make(U, S), + NewPres = xmpp:set_to(Pres, To), + ejabberd_router:route(NewPres), {ok, State}. stop(Fmt, Args) -> |