summaryrefslogtreecommitdiff
path: root/src/jd2ejd.erl
diff options
context:
space:
mode:
authorAlexey Shchepin <alexey@process-one.net>2003-10-17 19:15:38 +0000
committerAlexey Shchepin <alexey@process-one.net>2003-10-17 19:15:38 +0000
commit392d64ee8bd137c75fc6187e49a4757533e77e3c (patch)
tree9ac5a9eac735d08984c7ca0cbd47bc7ea6b90c95 /src/jd2ejd.erl
parent* src/mod_configure.erl: Fixed some error codes (diff)
* src/configure.ac: Build system now done using autoconf (thanks
to Balabanov Dmitry) * src/aclocal.m4: Likewise * src/**/Makefile.in: Likewise * src/mod_roster.erl (process_item_set_t): Slightly improved performance * src/jd2ejd.erl: Added missed closing of XML stream process, removed timeout value from import_file/1 * src/ejabberd_auth.erl: Added checks for invalid user name SVN Revision: 152
Diffstat (limited to 'src/jd2ejd.erl')
-rw-r--r--src/jd2ejd.erl16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/jd2ejd.erl b/src/jd2ejd.erl
index 6c3815d3..d18249a5 100644
--- a/src/jd2ejd.erl
+++ b/src/jd2ejd.erl
@@ -31,7 +31,7 @@
-include("ejabberd.hrl").
-include("jlib.hrl").
--record(state, {socket, pid,
+-record(state, {socket, pid, xml_stream_pid,
user = "", server = ?MYNAME, resource = ""
}).
@@ -66,10 +66,14 @@ start(File, User) ->
%% {stop, StopReason}
%%----------------------------------------------------------------------
init([File, User, Pid]) ->
+ % Profiling
+ %eprof:start(),
+ %eprof:profile([self()]),
XMLStreamPid = xml_stream:start(self()),
{ok, Text} = file:read_file(File),
xml_stream:send_text(XMLStreamPid, Text),
- {ok, wait_for_xdb, #state{user = User, pid = Pid}}.
+ {ok, wait_for_xdb, #state{user = User, pid = Pid,
+ xml_stream_pid = XMLStreamPid}}.
%%----------------------------------------------------------------------
%% Func: StateName/2
@@ -145,7 +149,6 @@ xdb_data({xmlstreamend, Name}, StateData) ->
{stop, normal, StateData};
xdb_data(closed, StateData) ->
- % TODO
{stop, normal, StateData}.
@@ -203,7 +206,12 @@ handle_info(_, StateName, StateData) ->
%% Returns: any
%%----------------------------------------------------------------------
terminate(Reason, StateName, StateData) ->
+ exit(StateData#state.xml_stream_pid, closed),
StateData#state.pid ! {jd2ejd, Reason},
+ % Profiling
+ %eprof:log("/tmp/eprof"),
+ %eprof:analyse(),
+ %eprof:stop(),
ok.
%%%----------------------------------------------------------------------
@@ -233,7 +241,7 @@ import_file(File) ->
start(File),
receive
{jd2ejd, Result} -> Result
- after 4000 -> timeout
+ %after 4000 -> timeout
end.
clear_queue() ->