]> granicus.if.org Git - ejabberd/commitdiff
*** empty log message ***
authorAlexey Shchepin <alexey@process-one.net>
Wed, 5 Feb 2003 20:28:49 +0000 (20:28 +0000)
committerAlexey Shchepin <alexey@process-one.net>
Wed, 5 Feb 2003 20:28:49 +0000 (20:28 +0000)
SVN Revision: 59

doc/guide.html
doc/guide.tex
src/jd2ejd.erl
src/mod_offline.erl

index 078c7c7237850ae0b0c028e36d55cded0d29a681..e4bcb91a7099b039de54c5da1257857dfe46efa0 100644 (file)
@@ -102,7 +102,14 @@ make
 
 <H3>2.4&nbsp;&nbsp; Starting</H3><!--SEC END -->
 
-<A NAME="sec:starting"></A><PRE>
+<A NAME="sec:starting"></A>... To use more then 1024 connections, you need to set environment
+variable <TT>ERL_MAX_PORTS</TT>:
+<PRE>
+export ERL_MAX_PORTS=32000
+</PRE>Note that with this value <TT>ejabberd</TT> will use more memory (approximately 6MB
+more)...<BR>
+<BR>
+<PRE>
 erl -name ejabberd -s ejabberd
 </PRE>TBD<BR>
 <BR>
index da22aca779b88686456080e8f1052abd53a9e90c..46ecc96dcebed56780af80c3bacff5415689efe8 100644 (file)
@@ -128,6 +128,14 @@ TBD
 \subsection{Starting}
 \label{sec:starting}
 
+\ldots{} To use more then 1024 connections, you need to set environment
+variable \texttt{ERL\_MAX\_PORTS}:
+\begin{verbatim}
+export ERL_MAX_PORTS=32000
+\end{verbatim}
+Note that with this value \ejabberd{} will use more memory (approximately 6MB
+more)\ldots{}
+
 \begin{verbatim}
 erl -name ejabberd -s ejabberd
 \end{verbatim}
index 1ec7ce5a12628313f48a1fe861558e9269163c7c..92175e609c56136ec78783ae8147d5fdcd7f6dc1 100644 (file)
@@ -13,8 +13,8 @@
 -behaviour(gen_fsm).
 
 %% External exports
--export([start/1,
-        start/2,
+-export([start_link/1,
+        start_link/2,
         import_file/1,
         import_dir/1]).
 
@@ -31,7 +31,7 @@
 -include("ejabberd.hrl").
 -include("namespaces.hrl").
 
--record(state, {socket,
+-record(state, {socket, pid,
                user = "", server = ?MYNAME, resource = ""
               }).
 
 %%%----------------------------------------------------------------------
 %%% API
 %%%----------------------------------------------------------------------
-start(File) ->
+start_link(File) ->
     User = filename:rootname(filename:basename(File)),
-    start(File, User).
+    start_link(File, User).
 
-start(File, User) ->
-    gen_fsm:start(?MODULE, [File, User], ?FSMOPTS).
+start_link(File, User) ->
+    gen_fsm:start_link(?MODULE, [File, User, self()], ?FSMOPTS).
 
 %%%----------------------------------------------------------------------
 %%% Callback functions from gen_fsm
@@ -65,11 +65,11 @@ start(File, User) ->
 %%          ignore                              |
 %%          {stop, StopReason}                   
 %%----------------------------------------------------------------------
-init([File, User]) ->
+init([File, User, Pid]) ->
     XMLStreamPid = xml_stream:start(self()),
     {ok, Text} = file:read_file(File),
     xml_stream:send_text(XMLStreamPid, Text),
-    {ok, wait_for_xdb, #state{user = User}}.
+    {ok, wait_for_xdb, #state{user = User, pid = Pid}}.
 
 %%----------------------------------------------------------------------
 %% Func: StateName/2
@@ -191,6 +191,7 @@ handle_info(_, StateName, StateData) ->
 %% Returns: any
 %%----------------------------------------------------------------------
 terminate(Reason, StateName, StateData) ->
+    StateData#state.pid ! {jd2ejd, exited},
     ok.
 
 %%%----------------------------------------------------------------------
@@ -216,7 +217,8 @@ process_offline(To, {xmlelement, _, _, Els}) ->
 
 
 import_file(File) ->
-    start(File).
+    start_link(File),
+    receive M -> M end.
 
 import_dir(Dir) ->
     {ok, Files} = file:list_dir(Dir),
index 63391cfc4cfe2454f6abf1cce327041058278303..e5a54a3b7826dfdc1f0a301a441fd7b37706d36f 100644 (file)
@@ -85,6 +85,8 @@ check_event(From, To, Packet) ->
 
 find_x_event([]) ->
     false;
+find_x_event([{xmlcdata, _} | Els]) ->
+    find_x_event(Els);
 find_x_event([El | Els]) ->
     case xml:get_tag_attr_s("xmlns", El) of
        ?NS_EVENT ->