aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexey Shchepin <alexey@process-one.net>2005-10-25 02:19:01 +0000
committerAlexey Shchepin <alexey@process-one.net>2005-10-25 02:19:01 +0000
commit144f9f09e7ec0e4660a57798d39c7d24c981e6a9 (patch)
tree1e47b92f7588d8909a51ee42267746ab9657e096
parent* src/tls/tls_drv.c: Support for "connect" method (diff)
* src/tls/tls.erl: Accept {error,already_loaded} from
erl_ddll:load_driver/2 * src/stringprep/stringprep.erl: Likewise * src/mod_irc/iconv.erl: Likewise * src/ejabberd_app.erl: Likewise SVN Revision: 427
-rw-r--r--ChangeLog6
-rw-r--r--src/ejabberd_app.erl5
-rw-r--r--src/mod_irc/iconv.erl5
-rw-r--r--src/stringprep/stringprep.erl5
-rw-r--r--src/tls/tls.erl15
5 files changed, 30 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index dd32cf530..dbd2552ac 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
2005-10-25 Alexey Shchepin <alexey@sevcom.net>
+ * src/tls/tls.erl: Accept {error,already_loaded} from
+ erl_ddll:load_driver/2
+ * src/stringprep/stringprep.erl: Likewise
+ * src/mod_irc/iconv.erl: Likewise
+ * src/ejabberd_app.erl: Likewise
+
* src/tls/tls_drv.c: Support for "connect" method
* src/tls/tls.erl: Likewise
diff --git a/src/ejabberd_app.erl b/src/ejabberd_app.erl
index 9b6dc7441..109697470 100644
--- a/src/ejabberd_app.erl
+++ b/src/ejabberd_app.erl
@@ -63,7 +63,10 @@ init() ->
end,
error_logger:add_report_handler(ejabberd_logger_h, LogPath),
erl_ddll:load_driver(ejabberd:get_so_path(), tls_drv),
- ok = erl_ddll:load_driver(ejabberd:get_so_path(), expat_erl),
+ case erl_ddll:load_driver(ejabberd:get_so_path(), expat_erl) of
+ ok -> ok;
+ {error, already_loaded} -> ok
+ end,
Port = open_port({spawn, expat_erl}, [binary]),
loop(Port).
diff --git a/src/mod_irc/iconv.erl b/src/mod_irc/iconv.erl
index ced941ac9..1e4ef7a94 100644
--- a/src/mod_irc/iconv.erl
+++ b/src/mod_irc/iconv.erl
@@ -31,7 +31,10 @@ start_link() ->
gen_server:start_link({local, ?MODULE}, ?MODULE, [], []).
init([]) ->
- ok = erl_ddll:load_driver(ejabberd:get_so_path(), iconv_erl),
+ case erl_ddll:load_driver(ejabberd:get_so_path(), iconv_erl) of
+ ok -> ok;
+ {error, already_loaded} -> ok
+ end,
Port = open_port({spawn, iconv_erl}, []),
ets:new(iconv_table, [set, public, named_table]),
ets:insert(iconv_table, {port, Port}),
diff --git a/src/stringprep/stringprep.erl b/src/stringprep/stringprep.erl
index ac06a0965..f2a4e0f58 100644
--- a/src/stringprep/stringprep.erl
+++ b/src/stringprep/stringprep.erl
@@ -39,7 +39,10 @@ start_link() ->
gen_server:start_link({local, ?MODULE}, ?MODULE, [], []).
init([]) ->
- ok = erl_ddll:load_driver(ejabberd:get_so_path(), stringprep_drv),
+ case erl_ddll:load_driver(ejabberd:get_so_path(), stringprep_drv) of
+ ok -> ok;
+ {error, already_loaded} -> ok
+ end,
Port = open_port({spawn, stringprep_drv}, []),
register(?STRINGPREP_PORT, Port),
{ok, Port}.
diff --git a/src/tls/tls.erl b/src/tls/tls.erl
index e1925520f..cdd00570b 100644
--- a/src/tls/tls.erl
+++ b/src/tls/tls.erl
@@ -43,7 +43,10 @@ start_link() ->
gen_server:start_link({local, ?MODULE}, ?MODULE, [], []).
init([]) ->
- ok = erl_ddll:load_driver(ejabberd:get_so_path(), tls_drv),
+ case erl_ddll:load_driver(ejabberd:get_so_path(), tls_drv) of
+ ok -> ok;
+ {error, already_loaded} -> ok
+ end,
Port = open_port({spawn, tls_drv}, [binary]),
Res = port_control(Port, ?SET_CERTIFICATE_FILE_ACCEPT, "./ssl.pem" ++ [0]),
case Res of
@@ -85,7 +88,10 @@ terminate(_Reason, Port) ->
tcp_to_tls(TCPSocket, Options) ->
case lists:keysearch(certfile, 1, Options) of
{value, {certfile, CertFile}} ->
- ok = erl_ddll:load_driver(ejabberd:get_so_path(), tls_drv),
+ case erl_ddll:load_driver(ejabberd:get_so_path(), tls_drv) of
+ ok -> ok;
+ {error, already_loaded} -> ok
+ end,
Port = open_port({spawn, tls_drv}, [binary]),
Command = case lists:member(connect, Options) of
true ->
@@ -164,7 +170,10 @@ close(#tlssock{tcpsock = TCPSocket, tlsport = Port}) ->
test() ->
- ok = erl_ddll:load_driver(ejabberd:get_so_path(), tls_drv),
+ case erl_ddll:load_driver(ejabberd:get_so_path(), tls_drv) of
+ ok -> ok;
+ {error, already_loaded} -> ok
+ end,
Port = open_port({spawn, tls_drv}, [binary]),
io:format("open_port: ~p~n", [Port]),
PCRes = port_control(Port, ?SET_CERTIFICATE_FILE_ACCEPT,