aboutsummaryrefslogtreecommitdiff
path: root/src/ejabberd.erl
blob: 3e100a6a65c3fa432aa05855d1237d01c3b37d17 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
%%%----------------------------------------------------------------------
%%% File    : ejabberd.erl
%%% Author  : Alexey Shchepin <alexey@sevcom.net>
%%% Purpose : 
%%% Created : 16 Nov 2002 by Alexey Shchepin <alexey@sevcom.net>
%%% Id      : $Id$
%%%----------------------------------------------------------------------

-module(ejabberd).
-author('alexey@sevcom.net').
-vsn('$Revision$ ').

-export([start/0, init/0]).

start() ->
    spawn(?MODULE, init, []).

init() ->
    register(ejabberd, self()),
    randoms:start(),
    ok = erl_ddll:load_driver(".", expat_erl),
    Port = open_port({spawn, expat_erl}, [binary]),
    db_init(),
    sha:start(),
    translate:start(),
    ejabberd_auth:start(),
    ejabberd_router:start(),
    ejabberd_sm:start(),
    ejabberd_s2s:start(),
    ejabberd_local:start(),
    ejabberd_listener:start(),
    loop(Port).


loop(Port) ->
    receive
	_ ->
	    loop(Port)
    end.

db_init() ->
    mnesia:create_schema([node()]),
    mnesia:start(),
    mnesia:wait_for_tables(mnesia:system_info(tables), infinity).