Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/processone/ejabberd.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristophe Romain <christophe.romain@process-one.net>2008-07-03 13:56:31 +0400
committerChristophe Romain <christophe.romain@process-one.net>2008-07-03 13:56:31 +0400
commit35d25d3420c267b52c33b6d46956c8e05920b17e (patch)
treece69b2d9b5bf5e62a2462fd5133cd9fad4481144 /src/ejabberd_local.erl
parent2ccf410a7574bdb76402f75849841425322a6887 (diff)
PubSub improvements, and solves (EJAB-453) (EJAB-608)
SVN Revision: 1408
Diffstat (limited to 'src/ejabberd_local.erl')
-rw-r--r--src/ejabberd_local.erl7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/ejabberd_local.erl b/src/ejabberd_local.erl
index b54173581..67f5b9636 100644
--- a/src/ejabberd_local.erl
+++ b/src/ejabberd_local.erl
@@ -37,6 +37,7 @@
register_iq_handler/5,
register_iq_response_handler/4,
unregister_iq_handler/2,
+ unregister_iq_response_handler/2,
refresh_iq_handlers/0,
bounce_resource_packet/3
]).
@@ -138,6 +139,9 @@ register_iq_handler(Host, XMLNS, Module, Fun) ->
register_iq_handler(Host, XMLNS, Module, Fun, Opts) ->
ejabberd_local ! {register_iq_handler, Host, XMLNS, Module, Fun, Opts}.
+unregister_iq_response_handler(Host, ID) ->
+ ejabberd_local ! {unregister_iq_response_handler, Host, ID}.
+
unregister_iq_handler(Host, XMLNS) ->
ejabberd_local ! {unregister_iq_handler, Host, XMLNS}.
@@ -214,6 +218,9 @@ handle_info({route, From, To, Packet}, State) ->
handle_info({register_iq_response_handler, _Host, ID, Module, Function}, State) ->
mnesia:dirty_write(#iq_response{id = ID, module = Module, function = Function}),
{noreply, State};
+handle_info({unregister_iq_response_handler, _Host, ID}, State) ->
+ mnesia:dirty_delete({iq_response, ID}),
+ {noreply, State};
handle_info({register_iq_handler, Host, XMLNS, Module, Function}, State) ->
ets:insert(?IQTABLE, {{XMLNS, Host}, Module, Function}),
catch mod_disco:register_feature(Host, XMLNS),