aboutsummaryrefslogtreecommitdiffstats
path: root/libmproxy
diff options
context:
space:
mode:
authorMaximilian Hils <git@maximilianhils.com>2015-02-05 15:24:32 +0100
committerMaximilian Hils <git@maximilianhils.com>2015-02-05 15:24:32 +0100
commit310fb18aac972123e0b25e618978d4dce7031078 (patch)
tree12ffe0ab3e8a6884c6ef226db74531b2de5c7003 /libmproxy
parent0ac3227b7bb27a76b6f49aa1605f1b1887a01a10 (diff)
downloadmitmproxy-310fb18aac972123e0b25e618978d4dce7031078.tar.gz
mitmproxy-310fb18aac972123e0b25e618978d4dce7031078.tar.bz2
mitmproxy-310fb18aac972123e0b25e618978d4dce7031078.zip
fix #464
Diffstat (limited to 'libmproxy')
-rw-r--r--libmproxy/protocol/http.py6
-rw-r--r--libmproxy/protocol/tcp.py6
2 files changed, 7 insertions, 5 deletions
diff --git a/libmproxy/protocol/http.py b/libmproxy/protocol/http.py
index da7c4240..bebb4f7b 100644
--- a/libmproxy/protocol/http.py
+++ b/libmproxy/protocol/http.py
@@ -996,7 +996,7 @@ class HTTPHandler(ProtocolHandler):
include_body=False
)
break
- except (tcp.NetLibDisconnect, http.HttpErrorConnClosed), v:
+ except (tcp.NetLibError, http.HttpErrorConnClosed), v:
self.c.log(
"error in server communication: %s" % repr(v),
level="debug"
@@ -1043,7 +1043,7 @@ class HTTPHandler(ProtocolHandler):
self.c.client_conn.rfile,
body_size_limit=self.c.config.body_size_limit
)
- except tcp.NetLibDisconnect:
+ except tcp.NetLibError:
# don't throw an error for disconnects that happen
# before/between requests.
return False
@@ -1141,7 +1141,7 @@ class HTTPHandler(ProtocolHandler):
message = repr(error)
message_debug = None
- if isinstance(error, tcp.NetLibDisconnect):
+ if isinstance(error, tcp.NetLibError):
message = None
message_debug = "TCP connection closed unexpectedly."
elif "tlsv1 alert unknown ca" in message:
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