diff options
Diffstat (limited to 'libmproxy/protocol/tcp.py')
-rw-r--r-- | libmproxy/protocol/tcp.py | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/libmproxy/protocol/tcp.py b/libmproxy/protocol/tcp.py index da0c9087..d2d21829 100644 --- a/libmproxy/protocol/tcp.py +++ b/libmproxy/protocol/tcp.py @@ -3,6 +3,7 @@ import select import socket from .primitives import ProtocolHandler from netlib.utils import cleanBin +from netlib.tcp import NetLibError class TCPHandler(ProtocolHandler): @@ -76,7 +77,8 @@ class TCPHandler(ProtocolHandler): ), "info" ) - dst.connection.send(contents) + # Do not use dst.connection.send here, which may raise OpenSSL-specific errors. + dst.send(contents) else: # socket.socket.send supports raw bytearrays/memoryviews if self.log: @@ -87,6 +89,6 @@ class TCPHandler(ProtocolHandler): "info" ) dst.connection.send(buf[:size]) - except socket.error as e: + except (socket.error, NetLibError) as e: self.c.log("TCP connection closed unexpectedly.", "debug") return |