aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvgeniy Khramtsov <ekhramtsov@process-one.net>2013-06-15 04:17:38 +1000
committerAlexey Shchepin <alexey@process-one.net>2013-06-17 16:10:30 +0300
commit0baf4e608869f0c5ad35049d8692cfaf25c992f0 (patch)
treeae26a475993304cada9eef38441ea98391a60a4d
parentDon't include sub-elements in IQ results where it's not required (diff)
Advertise privacy lists support via disco#info
-rw-r--r--src/mod_privacy.erl2
-rw-r--r--test/ejabberd_SUITE.erl8
2 files changed, 3 insertions, 7 deletions
diff --git a/src/mod_privacy.erl b/src/mod_privacy.erl
index 4c03159f5..4dbf608c6 100644
--- a/src/mod_privacy.erl
+++ b/src/mod_privacy.erl
@@ -64,6 +64,7 @@ start(Host, Opts) ->
update_table();
_ -> ok
end,
+ mod_disco:register_feature(Host, ?NS_PRIVACY),
ejabberd_hooks:add(privacy_iq_get, Host, ?MODULE,
process_iq_get, 50),
ejabberd_hooks:add(privacy_iq_set, Host, ?MODULE,
@@ -80,6 +81,7 @@ start(Host, Opts) ->
?NS_PRIVACY, ?MODULE, process_iq, IQDisc).
stop(Host) ->
+ mod_disco:unregister_feature(Host, ?NS_PRIVACY),
ejabberd_hooks:delete(privacy_iq_get, Host, ?MODULE,
process_iq_get, 50),
ejabberd_hooks:delete(privacy_iq_set, Host, ?MODULE,
diff --git a/test/ejabberd_SUITE.erl b/test/ejabberd_SUITE.erl
index 043b7000b..7b8fddfbf 100644
--- a/test/ejabberd_SUITE.erl
+++ b/test/ejabberd_SUITE.erl
@@ -356,13 +356,7 @@ last(Config) ->
disconnect(Config).
privacy(Config) ->
- %% BUG: the feature MUST be advertised via disco#info:
- %% http://xmpp.org/extensions/xep-0016.html#disco
- %% It seems like this bug exists because Privacy Lists
- %% were implemented according to the old RFC where support
- %% needn't be advertised via service discovery.
- %% TODO: fix in ejabberd
- %% true = is_feature_advertised(Config, ?NS_PRIVACY),
+ true = is_feature_advertised(Config, ?NS_PRIVACY),
I1 = send(Config, #iq{type = get, sub_els = [#privacy{}]}),
#iq{type = result, id = I1, sub_els = [#privacy{}]} = recv(),
JID = <<"tybalt@example.com">>,