aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/ejabberd.hrl3
-rw-r--r--src/ejabberd_c2s.erl36
-rw-r--r--src/ejabberd_sm.erl1
3 files changed, 36 insertions, 4 deletions
diff --git a/src/ejabberd.hrl b/src/ejabberd.hrl
index 2574c709b..29d2fcb24 100644
--- a/src/ejabberd.hrl
+++ b/src/ejabberd.hrl
@@ -36,3 +36,6 @@
-define(CONFIG_PATH, "ejabberd.cfg").
-define(LOG_PATH, "ejabberd.log").
+
+-define(PRIVACY_SUPPORT, true).
+
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,
diff --git a/src/ejabberd_sm.erl b/src/ejabberd_sm.erl
index bb9122d7d..a16f4b4f3 100644
--- a/src/ejabberd_sm.erl
+++ b/src/ejabberd_sm.erl
@@ -192,7 +192,6 @@ do_route(From, To, Packet) ->
{xmlelement, Name, Attrs, Els} = Packet,
case Resource of
"" ->
- % TODO
case Name of
"presence" ->
{FU, FS, FR} = From,