diff --git a/src/ejabberd_c2s.erl b/src/ejabberd_c2s.erl index 863ce83ce..f2d16e878 100644 --- a/src/ejabberd_c2s.erl +++ b/src/ejabberd_c2s.erl @@ -1292,15 +1292,13 @@ session_established2(El, StateData) -> ejabberd_hooks:run(user_send_packet, Server, [FromJID, ToJID, NewEl]), check_privacy_route(FromJID, NewStateData, - FromJID, ToJID, NewEl), - NewStateData + FromJID, ToJID, NewEl) end; <<"message">> -> ejabberd_hooks:run(user_send_packet, Server, [FromJID, ToJID, NewEl]), check_privacy_route(FromJID, NewStateData, FromJID, - ToJID, NewEl), - NewStateData; + ToJID, NewEl); _ -> NewStateData end end, @@ -2138,37 +2136,29 @@ presence_track(From, To, Packet, StateData) -> Server = StateData#state.server, case xml:get_attr_s(<<"type">>, Attrs) of <<"unavailable">> -> - check_privacy_route(From, StateData, From, To, Packet), A = remove_element(LTo, StateData#state.pres_a), - StateData#state{pres_a = A}; + check_privacy_route(From, StateData#state{pres_a = A}, From, To, Packet); <<"subscribe">> -> - try_roster_subscribe(subscribe, User, Server, From, To, Packet, StateData), - StateData; + try_roster_subscribe(subscribe, User, Server, From, To, Packet, StateData); <<"subscribed">> -> ejabberd_hooks:run(roster_out_subscription, Server, [User, Server, To, subscribed]), check_privacy_route(From, StateData, - jlib:jid_remove_resource(From), To, Packet), - StateData; + jlib:jid_remove_resource(From), To, Packet); <<"unsubscribe">> -> - try_roster_subscribe(unsubscribe, User, Server, From, To, Packet, StateData), - StateData; + try_roster_subscribe(unsubscribe, User, Server, From, To, Packet, StateData); <<"unsubscribed">> -> ejabberd_hooks:run(roster_out_subscription, Server, [User, Server, To, unsubscribed]), check_privacy_route(From, StateData, - jlib:jid_remove_resource(From), To, Packet), - StateData; + jlib:jid_remove_resource(From), To, Packet); <<"error">> -> - check_privacy_route(From, StateData, From, To, Packet), - StateData; + check_privacy_route(From, StateData, From, To, Packet); <<"probe">> -> - check_privacy_route(From, StateData, From, To, Packet), - StateData; + check_privacy_route(From, StateData, From, To, Packet); _ -> - check_privacy_route(From, StateData, From, To, Packet), A = (?SETS):add_element(LTo, StateData#state.pres_a), - StateData#state{pres_a = A} + check_privacy_route(From, StateData#state{pres_a = A}, From, To, Packet) end. check_privacy_route(From, StateData, FromRoute, To, @@ -2183,9 +2173,10 @@ check_privacy_route(From, StateData, FromRoute, To, Err = jlib:make_error_reply(Packet, ?ERRT_NOT_ACCEPTABLE(Lang, ErrText)), Err2 = jlib:replace_from_to(To, From, Err), - send_element(StateData, Err2), - ok; - allow -> ejabberd_router:route(FromRoute, To, Packet) + send_stanza(StateData, Err2); + allow -> + ejabberd_router:route(FromRoute, To, Packet), + StateData end. %% Check if privacy rules allow this delivery @@ -2208,7 +2199,7 @@ try_roster_subscribe(Type, User, Server, From, To, Packet, StateData) -> case acl:match_rule(Server, Access, JID1) of deny -> %% Silently drop this (un)subscription request - ok; + StateData; allow -> ejabberd_hooks:run(roster_out_subscription, Server,