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:
authorAlexey Shchepin <alexey@process-one.net>2003-01-28 22:45:13 +0300
committerAlexey Shchepin <alexey@process-one.net>2003-01-28 22:45:13 +0300
commit275b31b0cf7c91a549a996b9c714def5bac5c4a4 (patch)
treed668270265dd3402075cb3949bad11599d61dbf7 /src/mod_echo.erl
parentaed24c637fea62e0a72636fd0a1714a9ecd16a6b (diff)
*** empty log message ***
SVN Revision: 52
Diffstat (limited to 'src/mod_echo.erl')
-rw-r--r--src/mod_echo.erl18
1 files changed, 12 insertions, 6 deletions
diff --git a/src/mod_echo.erl b/src/mod_echo.erl
index 03a25d25e..5f02c4002 100644
--- a/src/mod_echo.erl
+++ b/src/mod_echo.erl
@@ -12,7 +12,7 @@
-behaviour(gen_mod).
--export([start/1, init/1]).
+-export([start/1, init/1, stop/0]).
-include("ejabberd.hrl").
-include("namespaces.hrl").
@@ -22,18 +22,24 @@
start(Opts) ->
%Host = gen_mod:get_opt(host, Opts),
Host = gen_mod:get_opt(host, Opts, "echo." ++ ?MYNAME),
- spawn(?MODULE, init, [Host]).
+ register(ejabberd_mod_echo, spawn(?MODULE, init, [Host])).
init(Host) ->
ejabberd_router:register_local_route(Host),
- loop().
+ loop(Host).
-loop() ->
+loop(Host) ->
receive
{route, From, To, Packet} ->
ejabberd_router:route(To, From, Packet),
- loop();
+ loop(Host);
+ stop ->
+ ejabberd_router:unregister_local_route(Host),
+ ok;
_ ->
- loop()
+ loop(Host)
end.
+stop() ->
+ ejabberd_mod_echo ! stop,
+ ok.