aboutsummaryrefslogtreecommitdiff
path: root/src/ejabberd_c2s.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/ejabberd_c2s.erl')
-rw-r--r--src/ejabberd_c2s.erl36
1 files changed, 33 insertions, 3 deletions
diff --git a/src/ejabberd_c2s.erl b/src/ejabberd_c2s.erl
index a444e6028..3199f3585 100644
--- a/src/ejabberd_c2s.erl
+++ b/src/ejabberd_c2s.erl
@@ -624,12 +624,42 @@ handle_info({route, From, To, Packet}, StateName, StateData) ->
From,
jlib:iq_to_xml(ResIQ)),
{false, Attrs, StateData};
- %{iq, ID, Type, ?NS_VCARD, SubEl} ->
- % TODO: don't pass packets until roster loaded
- %{true, Attrs, StateData};
+%-ifdef(PRIVACY_SUPPORT).
+ {iq, _ID, Type, _XMLNS, _SubEl} ->
+ case catch mod_privacy:check_packet(
+ StateData#state.user,
+ StateData#state.privacy_list,
+ {From, To, Packet},
+ in) of
+ {'EXIT', _Reason} ->
+ {true, Attrs, StateData};
+ allow ->
+ {true, Attrs, StateData};
+ deny ->
+ Err = jlib:make_error_reply(
+ Packet, ?ERR_FEATURE_NOT_IMPLEMENTED),
+ ejabberd_router:route(To, From, Err),
+ {false, Attrs, StateData}
+ end;
+%-endif.
_ ->
{true, Attrs, StateData}
end;
+%-ifdef(PRIVACY_SUPPORT).
+ "message" ->
+ case catch mod_privacy:check_packet(
+ StateData#state.user,
+ StateData#state.privacy_list,
+ {From, To, Packet},
+ in) of
+ {'EXIT', _Reason} ->
+ {true, Attrs, StateData};
+ allow ->
+ {true, Attrs, StateData};
+ deny ->
+ {false, Attrs, StateData}
+ end;
+%-endif.
_ ->
{true, Attrs, StateData}
end,