summaryrefslogtreecommitdiff
path: root/src/ejabberd_local.erl
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/ejabberd_local.erl45
1 files changed, 45 insertions, 0 deletions
diff --git a/src/ejabberd_local.erl b/src/ejabberd_local.erl
new file mode 100644
index 00000000..4241088a
--- /dev/null
+++ b/src/ejabberd_local.erl
@@ -0,0 +1,45 @@
+%%%----------------------------------------------------------------------
+%%% File : ejabberd_local.erl
+%%% Author : Alexey Shchepin <alexey@sevcom.net>
+%%% Purpose :
+%%% Created : 30 Nov 2002 by Alexey Shchepin <alexey@sevcom.net>
+%%% Id : $Id$
+%%%----------------------------------------------------------------------
+
+-module(ejabberd_local).
+-author('alexey@sevcom.net').
+-vsn('$Revision$ ').
+
+%%-export([Function/Arity, ...]).
+
+-export([start/0,init/0]).
+
+-include("ejabberd.hrl").
+
+
+start() ->
+ spawn(ejabberd_local, init, []).
+
+init() ->
+ ejabberd_router:register_local_route("localhost"),
+ loop().
+
+loop() ->
+ receive
+ {route, From, To, Packet} ->
+ do_route(From, To, Packet),
+ loop()
+ end.
+
+
+do_route(From, To, Packet) ->
+ ?DEBUG("local route~n\tfrom ~p~n\tto ~p~n\tpacket ~P~n",
+ [From, To, Packet, 8]),
+ case To of
+ {"", _, _} ->
+ ok;
+ _ ->
+ ejabberd_sm ! {route, From, To, Packet}
+ end,
+ ok.
+