aboutsummaryrefslogtreecommitdiffstats
path: root/libmproxy/protocol/tcp.py
diff options
context:
space:
mode:
Diffstat (limited to 'libmproxy/protocol/tcp.py')
-rw-r--r--libmproxy/protocol/tcp.py6
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