2002-11-18 21:39:47 +01:00
|
|
|
%%%----------------------------------------------------------------------
|
|
|
|
%%% File : ejabberd_listener.erl
|
|
|
|
%%% Author : Alexey Shchepin <alexey@sevcom.net>
|
|
|
|
%%% Purpose :
|
|
|
|
%%% Created : 16 Nov 2002 by Alexey Shchepin <alexey@sevcom.net>
|
|
|
|
%%% Id : $Id$
|
|
|
|
%%%----------------------------------------------------------------------
|
|
|
|
|
|
|
|
-module(ejabberd_listener).
|
|
|
|
-author('alexey@sevcom.net').
|
|
|
|
-vsn('$Revision$ ').
|
|
|
|
|
2002-12-06 21:59:19 +01:00
|
|
|
-export([start/0, init/2]).
|
2002-11-18 21:39:47 +01:00
|
|
|
|
|
|
|
start() ->
|
2002-12-06 21:59:19 +01:00
|
|
|
register(ejabberd_listener_c2s,
|
|
|
|
spawn(?MODULE, init, [5522, ejabberd_c2s])),
|
|
|
|
register(ejabberd_listener_s2s,
|
|
|
|
spawn(?MODULE, init, [5269, ejabberd_s2s_in])).
|
2002-11-18 21:39:47 +01:00
|
|
|
|
2002-12-06 21:59:19 +01:00
|
|
|
init(Port, CallbackModule) ->
|
|
|
|
{ok, ListenSocket} = gen_tcp:listen(Port, [binary,
|
2002-11-18 21:39:47 +01:00
|
|
|
{packet, 0},
|
|
|
|
{active, false},
|
|
|
|
{reuseaddr, true}]),
|
2002-12-06 21:59:19 +01:00
|
|
|
accept(ListenSocket, CallbackModule).
|
2002-11-18 21:39:47 +01:00
|
|
|
|
2002-12-06 21:59:19 +01:00
|
|
|
accept(ListenSocket, CallbackModule) ->
|
2002-11-18 21:39:47 +01:00
|
|
|
case gen_tcp:accept(ListenSocket) of
|
|
|
|
{ok,Socket} ->
|
2002-12-06 21:59:19 +01:00
|
|
|
apply(CallbackModule, start, [Socket]),
|
|
|
|
%ejabberd_c2s:start(Socket),
|
|
|
|
accept(ListenSocket, CallbackModule)
|
2002-11-18 21:39:47 +01:00
|
|
|
end.
|
|
|
|
|
|
|
|
|