diff options
author | Evgeniy Khramtsov <ekhramtsov@process-one.net> | 2017-01-09 17:02:17 +0300 |
---|---|---|
committer | Evgeniy Khramtsov <ekhramtsov@process-one.net> | 2017-01-09 17:02:17 +0300 |
commit | 1e55e018e534aa82541c5f460063a237192b768c (patch) | |
tree | 9584ed46fe2b18770343399254b0ba15ff591e51 /src/ejabberd_sm.erl | |
parent | Get rid of "jlib.hrl" header in some files (diff) |
Adopt remaining code to support new hooks
Diffstat (limited to 'src/ejabberd_sm.erl')
-rw-r--r-- | src/ejabberd_sm.erl | 37 |
1 files changed, 13 insertions, 24 deletions
diff --git a/src/ejabberd_sm.erl b/src/ejabberd_sm.erl index a15d788d..38b7ed15 100644 --- a/src/ejabberd_sm.erl +++ b/src/ejabberd_sm.erl @@ -83,7 +83,6 @@ -include("xmpp.hrl"). -include("ejabberd_commands.hrl"). --include("mod_privacy.hrl"). -include("ejabberd_sm.hrl"). -callback init() -> ok | {error, any()}. @@ -576,24 +575,10 @@ do_route(From, To, Packet) -> %% or if there are no current sessions for the user. -spec is_privacy_allow(jid(), jid(), stanza()) -> boolean(). is_privacy_allow(From, To, Packet) -> - User = To#jid.user, - Server = To#jid.server, - PrivacyList = - ejabberd_hooks:run_fold(privacy_get_user_list, Server, - #userlist{}, [User, Server]), - is_privacy_allow(From, To, Packet, PrivacyList). - -%% Check if privacy rules allow this delivery -%% Function copied from ejabberd_c2s.erl --spec is_privacy_allow(jid(), jid(), stanza(), #userlist{}) -> boolean(). -is_privacy_allow(From, To, Packet, PrivacyList) -> - User = To#jid.user, - Server = To#jid.server, - allow == - ejabberd_hooks:run_fold(privacy_check_packet, Server, - allow, - [User, Server, PrivacyList, {From, To, Packet}, - in]). + LServer = To#jid.server, + allow == ejabberd_hooks:run_fold( + privacy_check_packet, LServer, allow, + [To, xmpp:set_from_to(Packet, From, To), in]). -spec route_message(jid(), jid(), message(), message_type()) -> any(). route_message(From, To, Packet, Type) -> @@ -757,10 +742,14 @@ process_iq(From, To, #iq{type = T, lang = Lang, sub_els = [El]} = Packet) Err = xmpp:err_service_unavailable(Txt, Lang), ejabberd_router:route_error(To, From, Packet, Err) end; -process_iq(From, To, #iq{type = T} = Packet) when T == get; T == set -> - Err = xmpp:err_bad_request(), - ejabberd_router:route_error(To, From, Packet, Err), - ok; +process_iq(From, To, #iq{type = T, lang = Lang, sub_els = SubEls} = Packet) + when T == get; T == set -> + Txt = case SubEls of + [] -> <<"No child elements found">>; + _ -> <<"Too many child elements">> + end, + Err = xmpp:err_bad_request(Txt, Lang), + ejabberd_router:route_error(To, From, Packet, Err); process_iq(_From, _To, #iq{}) -> ok. @@ -770,7 +759,7 @@ force_update_presence({LUser, LServer}) -> Mod = get_sm_backend(LServer), Ss = online(Mod:get_sessions(LUser, LServer)), lists:foreach(fun (#session{sid = {_, Pid}}) -> - Pid ! {force_update_presence, LUser, LServer} + Pid ! force_update_presence end, Ss). |