aboutsummaryrefslogtreecommitdiffstats
path: root/netlib/tcp.py
diff options
context:
space:
mode:
authorAldo Cortesi <aldo@nullcube.com>2012-09-24 10:47:41 +1200
committerAldo Cortesi <aldo@nullcube.com>2012-09-24 10:47:41 +1200
commit8a6cca530c5293aa2b77edd3bf928540ec771928 (patch)
tree2adadf22050196e0489cc68b9dd5ba634e4dc6f5 /netlib/tcp.py
parent1c80c2fdd7dd9873abc7b0a74936dab7beda7c5c (diff)
downloadmitmproxy-8a6cca530c5293aa2b77edd3bf928540ec771928.tar.gz
mitmproxy-8a6cca530c5293aa2b77edd3bf928540ec771928.tar.bz2
mitmproxy-8a6cca530c5293aa2b77edd3bf928540ec771928.zip
Don't create fresh FileLike objects when converting to SSL
Diffstat (limited to 'netlib/tcp.py')
-rw-r--r--netlib/tcp.py11
1 files changed, 7 insertions, 4 deletions
diff --git a/netlib/tcp.py b/netlib/tcp.py
index e7bc79a8..0fed7380 100644
--- a/netlib/tcp.py
+++ b/netlib/tcp.py
@@ -44,6 +44,9 @@ class FileLike:
def __init__(self, o):
self.o = o
+ def set_descriptor(self, o):
+ self.o = o
+
def __getattr__(self, attr):
return getattr(self.o, attr)
@@ -140,8 +143,8 @@ class TCPClient:
except SSL.Error, v:
raise NetLibError("SSL handshake error: %s"%str(v))
self.cert = certutils.SSLCert(self.connection.get_peer_certificate())
- self.rfile = FileLike(self.connection)
- self.wfile = FileLike(self.connection)
+ self.rfile.set_descriptor(self.connection)
+ self.wfile.set_descriptor(self.connection)
def connect(self):
try:
@@ -209,8 +212,8 @@ class BaseHandler:
self.connection.do_handshake()
except SSL.Error, v:
raise NetLibError("SSL handshake error: %s"%str(v))
- self.rfile = FileLike(self.connection)
- self.wfile = FileLike(self.connection)
+ self.rfile.set_descriptor(self.connection)
+ self.wfile.set_descriptor(self.connection)
def finish(self):
self.finished = True