summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'net-im/ejabberd/files/ejabberd-2.0.4-fix-EJAB-890.patch')
-rw-r--r--net-im/ejabberd/files/ejabberd-2.0.4-fix-EJAB-890.patch167
1 files changed, 0 insertions, 167 deletions
diff --git a/net-im/ejabberd/files/ejabberd-2.0.4-fix-EJAB-890.patch b/net-im/ejabberd/files/ejabberd-2.0.4-fix-EJAB-890.patch
deleted file mode 100644
index 3da58ce6b83d..000000000000
--- a/net-im/ejabberd/files/ejabberd-2.0.4-fix-EJAB-890.patch
+++ /dev/null
@@ -1,167 +0,0 @@
-diff --git a/src/ejabberd_c2s.erl b/src/ejabberd_c2s.erl
-index 9bd5ba5..40cba2a 100644
---- ejabberd_c2s.erl
-+++ ejabberd_c2s.erl
-@@ -1091,21 +1091,16 @@ handle_info({route, From, To, Packet}, StateName, StateData) ->
- Attrs1 = lists:keydelete("type", 1, Attrs),
- {true, [{"type", "unavailable"} | Attrs1], StateData};
- "subscribe" ->
-- Reason = xml:get_path_s(Packet,[{elem,"status"},cdata]),
-- SRes = check_privacy_subs(in, subscribe, From, To,
-- Packet, Reason, StateData),
-+ SRes = is_privacy_allow(From, To, Packet, StateData#state.privacy_list),
- {SRes, Attrs, StateData};
- "subscribed" ->
-- SRes = check_privacy_subs(in, subscribed, From, To,
-- Packet, "", StateData),
-+ SRes = is_privacy_allow(From, To, Packet, StateData#state.privacy_list),
- {SRes, Attrs, StateData};
- "unsubscribe" ->
-- SRes = check_privacy_subs(in, unsubscribe, From, To,
-- Packet, "", StateData),
-+ SRes = is_privacy_allow(From, To, Packet, StateData#state.privacy_list),
- {SRes, Attrs, StateData};
- "unsubscribed" ->
-- SRes = check_privacy_subs(in, unsubscribed, From, To,
-- Packet, "", StateData),
-+ SRes = is_privacy_allow(From, To, Packet, StateData#state.privacy_list),
- {SRes, Attrs, StateData};
- _ ->
- case ejabberd_hooks:run_fold(
-@@ -1628,35 +1623,18 @@ presence_track(From, To, Packet, StateData) ->
- pres_a = A}
- end.
-
--%% Check privacy rules for subscription requests and call the roster storage
--check_privacy_subs(Dir, Type, From, To, Packet, Reason, StateData) ->
-- case is_privacy_allow(From, To, Dir, Packet, StateData) of
-- true ->
-- ejabberd_hooks:run_fold(
-- roster_in_subscription,
-- To#jid.lserver,
-- false,
-- [To#jid.user, To#jid.server, From, Type, Reason]),
-- true;
-- false ->
-- false
-- end.
--
--%% Check if privacy rules allow this delivery, then push to roster
--is_privacy_allow(From, To, Dir, Packet, StateData) ->
-- case ejabberd_hooks:run_fold(
-- privacy_check_packet, StateData#state.server,
-- allow,
-- [StateData#state.user,
-- StateData#state.server,
-- StateData#state.privacy_list,
-- {From, To, Packet},
-- Dir]) of
-- deny ->
-- false;
-- allow ->
-- true
-- end.
-+%% Check if privacy rules allow this delivery
-+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]).
-
- presence_broadcast(StateData, From, JIDSet, Packet) ->
- lists:foreach(fun(JID) ->
-diff --git a/src/ejabberd_sm.erl b/src/ejabberd_sm.erl
-index 9a56e5f..148ef5a 100644
---- ejabberd_sm.erl
-+++ ejabberd_sm.erl
-@@ -59,6 +59,7 @@
- -include("ejabberd.hrl").
- -include("jlib.hrl").
- -include("ejabberd_ctl.hrl").
-+-include("mod_privacy.hrl").
-
- -record(session, {sid, usr, us, priority, info}).
- -record(state, {}).
-@@ -381,13 +382,40 @@ do_route(From, To, Packet) ->
- {Pass, _Subsc} =
- case xml:get_attr_s("type", Attrs) of
- "subscribe" ->
-- {true, true};
-+ Reason = xml:get_path_s(
-+ Packet,
-+ [{elem, "status"}, cdata]),
-+ {is_privacy_allow(From, To, Packet) andalso
-+ ejabberd_hooks:run_fold(
-+ roster_in_subscription,
-+ LServer,
-+ false,
-+ [User, Server, From, subscribe, Reason]),
-+ true};
- "subscribed" ->
-- {true, true};
-+ {is_privacy_allow(From, To, Packet) andalso
-+ ejabberd_hooks:run_fold(
-+ roster_in_subscription,
-+ LServer,
-+ false,
-+ [User, Server, From, subscribed, ""]),
-+ true};
- "unsubscribe" ->
-- {true, true};
-+ {is_privacy_allow(From, To, Packet) andalso
-+ ejabberd_hooks:run_fold(
-+ roster_in_subscription,
-+ LServer,
-+ false,
-+ [User, Server, From, unsubscribe, ""]),
-+ true};
- "unsubscribed" ->
-- {true, true};
-+ {is_privacy_allow(From, To, Packet) andalso
-+ ejabberd_hooks:run_fold(
-+ roster_in_subscription,
-+ LServer,
-+ false,
-+ [User, Server, From, unsubscribed, ""]),
-+ true};
- _ ->
- {true, false}
- end,
-@@ -446,6 +474,31 @@ do_route(From, To, Packet) ->
- end
- end.
-
-+%% The default list applies to the user as a whole,
-+%% and is processed if there is no active list set
-+%% for the target session/resource to which a stanza is addressed,
-+%% or if there are no current sessions for the user.
-+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
-+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]).
-+
- route_message(From, To, Packet) ->
- LUser = To#jid.luser,
- LServer = To#jid.lserver,