]> granicus.if.org Git - ejabberd/commitdiff
Text legacy IQ handler support
authorEvgeniy Khramtsov <ekhramtsov@process-one.net>
Sun, 25 Sep 2016 07:17:03 +0000 (10:17 +0300)
committerEvgeniy Khramtsov <ekhramtsov@process-one.net>
Sun, 25 Sep 2016 07:17:03 +0000 (10:17 +0300)
test/ejabberd_SUITE.erl
test/ejabberd_SUITE_data/ejabberd.yml
test/mod_legacy.erl [new file with mode: 0644]

index 4e02389d4886da36e45d15dea9769ab56448e2ab..81e35d52a457f6346bbc3e64567fd4e6deb6bddf 100644 (file)
@@ -303,6 +303,7 @@ no_db_tests() ->
        unsupported_query,
        bad_nonza,
        invalid_from,
+       legacy_iq,
        ping,
        version,
        time,
@@ -895,6 +896,14 @@ presence_broadcast(Config) ->
          end, [], [0, 100, 200, 2000, 5000, 10000]),
     disconnect(Config).
 
+legacy_iq(Config) ->
+    true = is_feature_advertised(Config, ?NS_EVENT),
+    ServerJID = server_jid(Config),
+    #iq{type = result, sub_els = []} =
+       send_recv(Config, #iq{to = ServerJID, type = get,
+                             sub_els = [#xevent{}]}),
+    disconnect(Config).
+
 ping(Config) ->
     true = is_feature_advertised(Config, ?NS_PING),
     #iq{type = result, sub_els = []} =
index c9ea5fd7abca26632f20db6ba66a45305d4bff12..2d2e098dea22111f8082a6894059e130649544c4 100644 (file)
@@ -442,6 +442,7 @@ modules:
   mod_disco: []
   mod_ping: []
   mod_proxy65: []
+  mod_legacy: []
   mod_register: 
     welcome_message: 
       subject: "Welcome!"
diff --git a/test/mod_legacy.erl b/test/mod_legacy.erl
new file mode 100644 (file)
index 0000000..6024acf
--- /dev/null
@@ -0,0 +1,32 @@
+%%%-------------------------------------------------------------------
+%%% @author Evgeny Khramtsov <ekhramtsov@process-one.net>
+%%% @copyright (C) 2016, Evgeny Khramtsov
+%%% @doc
+%%%
+%%% @end
+%%% Created : 25 Sep 2016 by Evgeny Khramtsov <ekhramtsov@process-one.net>
+%%%-------------------------------------------------------------------
+-module(mod_legacy).
+-behaviour(gen_mod).
+
+%% API
+-export([start/2, stop/1, process_iq/3]).
+-include("jlib.hrl").
+
+%%%===================================================================
+%%% API
+%%%===================================================================
+start(Host, Opts) ->
+    IQDisc = gen_mod:get_opt(iqdisc, Opts, fun gen_iq_handler:check_type/1,
+                             one_queue),
+    gen_iq_handler:add_iq_handler(ejabberd_local, Host, ?NS_EVENT,
+                                 ?MODULE, process_iq, IQDisc).
+
+stop(Host) ->
+    gen_iq_handler:remove_iq_handler(ejabberd_local, Host, ?MODULE).
+
+%%%===================================================================
+%%% Internal functions
+%%%===================================================================
+process_iq(_From, _To, IQ) ->
+    IQ#iq{type = result, sub_el = []}.