aboutsummaryrefslogtreecommitdiffstats
path: root/netlib
diff options
context:
space:
mode:
authorAldo Cortesi <aldo@nullcube.com>2016-06-03 12:06:36 +1200
committerAldo Cortesi <aldo@nullcube.com>2016-06-03 12:06:36 +1200
commite60860e65d06d2b4452b7ea94902d79eed11d78c (patch)
tree91a635bef6421248fa63a26255b52a6e96f98631 /netlib
parent36383a6146d605879bf8c2834370b09f42bfec06 (diff)
downloadmitmproxy-e60860e65d06d2b4452b7ea94902d79eed11d78c.tar.gz
mitmproxy-e60860e65d06d2b4452b7ea94902d79eed11d78c.tar.bz2
mitmproxy-e60860e65d06d2b4452b7ea94902d79eed11d78c.zip
Make tcp.Client.connect return a context manager that closes the connection
Diffstat (limited to 'netlib')
-rw-r--r--netlib/tcp.py8
1 files changed, 8 insertions, 0 deletions
diff --git a/netlib/tcp.py b/netlib/tcp.py
index bb0c93a9..61209d64 100644
--- a/netlib/tcp.py
+++ b/netlib/tcp.py
@@ -6,6 +6,7 @@ import sys
import threading
import time
import traceback
+import contextlib
import binascii
from six.moves import range
@@ -577,6 +578,12 @@ class _Connection(object):
return context
+@contextlib.contextmanager
+def _closer(client):
+ yield
+ client.close()
+
+
class TCPClient(_Connection):
def __init__(self, address, source_address=None):
@@ -708,6 +715,7 @@ class TCPClient(_Connection):
self.connection = connection
self.ip_address = Address(connection.getpeername())
self._makefile()
+ return _closer(self)
def settimeout(self, n):
self.connection.settimeout(n)