diff options
author | Alexey Shchepin <alexey@process-one.net> | 2003-10-17 19:15:38 +0000 |
---|---|---|
committer | Alexey Shchepin <alexey@process-one.net> | 2003-10-17 19:15:38 +0000 |
commit | 392d64ee8bd137c75fc6187e49a4757533e77e3c (patch) | |
tree | 9ac5a9eac735d08984c7ca0cbd47bc7ea6b90c95 /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.erl | 16 |
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() -> |