diff options
author | Alexey Shchepin <alexey@process-one.net> | 2008-03-03 11:55:19 +0000 |
---|---|---|
committer | Alexey Shchepin <alexey@process-one.net> | 2008-03-03 11:55:19 +0000 |
commit | 76245f0fcf441442f0a4a4429d8a6bab98e5796e (patch) | |
tree | 31269c1a8372dbd90bfc0069f88b4e83767c30cd | |
parent | * src/ejabberd_check.erl: Fixed missing clause (EJAB-533). (diff) |
* src/tls/tls.erl: recv_data/2 doesn't throw exceptions now
* src/ejabberd_zlib/ejabberd_zlib.erl: Likewise
SVN Revision: 1217
Diffstat (limited to '')
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | src/ejabberd_zlib/ejabberd_zlib.erl | 12 | ||||
-rw-r--r-- | src/tls/tls.erl | 10 |
3 files changed, 24 insertions, 3 deletions
@@ -1,3 +1,8 @@ +2008-03-03 Alexey Shchepin <alexey@process-one.net> + + * src/tls/tls.erl: recv_data/2 doesn't throw exceptions now + * src/ejabberd_zlib/ejabberd_zlib.erl: Likewise + 2008-02-29 Alexey Shchepin <alexey@process-one.net> * src/mod_roster.erl: Fixed "from" attribute in roster pushes diff --git a/src/ejabberd_zlib/ejabberd_zlib.erl b/src/ejabberd_zlib/ejabberd_zlib.erl index 0d9ecbe5..22bcaa8d 100644 --- a/src/ejabberd_zlib/ejabberd_zlib.erl +++ b/src/ejabberd_zlib/ejabberd_zlib.erl @@ -100,7 +100,7 @@ enable_zlib(SockMod, Socket) -> end, Port = open_port({spawn, ejabberd_zlib_drv}, [binary]), {ok, #zlibsock{sockmod = SockMod, socket = Socket, zlibport = Port}}. - + disable_zlib(#zlibsock{sockmod = SockMod, socket = Socket, zlibport = Port}) -> port_close(Port), {SockMod, Socket}. @@ -116,7 +116,15 @@ recv(#zlibsock{sockmod = SockMod, socket = Socket} = ZlibSock, Error end. -recv_data(#zlibsock{zlibport = Port} = _ZlibSock, Packet) -> +recv_data(ZlibSock, Packet) -> + case catch recv_data1(ZlibSock, Packet) of + {'EXIT', Reason} -> + {error, Reason}; + Res -> + Res + end. + +recv_data1(#zlibsock{zlibport = Port} = _ZlibSock, Packet) -> case port_control(Port, ?INFLATE, Packet) of <<0, In/binary>> -> {ok, In}; diff --git a/src/tls/tls.erl b/src/tls/tls.erl index aeeebaac..e8b8557b 100644 --- a/src/tls/tls.erl +++ b/src/tls/tls.erl @@ -149,7 +149,15 @@ recv(#tlssock{tcpsock = TCPSocket} = TLSSock, Error end. -recv_data(#tlssock{tcpsock = TCPSocket, tlsport = Port}, Packet) -> +recv_data(TLSSock, Packet) -> + case catch recv_data1(TLSSock, Packet) of + {'EXIT', Reason} -> + {error, Reason}; + Res -> + Res + end. + +recv_data1(#tlssock{tcpsock = TCPSocket, tlsport = Port}, Packet) -> case port_control(Port, ?SET_ENCRYPTED_INPUT, Packet) of <<0>> -> case port_control(Port, ?GET_DECRYPTED_INPUT, []) of |