aboutsummaryrefslogtreecommitdiffstats
path: root/netlib
diff options
context:
space:
mode:
authorAldo Cortesi <aldo@nullcube.com>2012-06-30 10:52:28 +1200
committerAldo Cortesi <aldo@nullcube.com>2012-06-30 10:52:28 +1200
commit67669a2a578157782a621fa1ac5531bbb2db8029 (patch)
tree2bf645771508a71aaf9790ea9b894452408bc2be /netlib
parent7480f87cd721de6ca9d0cdb7c9437bdb58b16ba0 (diff)
downloadmitmproxy-67669a2a578157782a621fa1ac5531bbb2db8029.tar.gz
mitmproxy-67669a2a578157782a621fa1ac5531bbb2db8029.tar.bz2
mitmproxy-67669a2a578157782a621fa1ac5531bbb2db8029.zip
Allow control of buffer size for TCPClient, improve error messages.
Diffstat (limited to 'netlib')
-rw-r--r--netlib/http.py6
-rw-r--r--netlib/tcp.py5
2 files changed, 7 insertions, 4 deletions
diff --git a/netlib/http.py b/netlib/http.py
index 9c72c601..acd9d85e 100644
--- a/netlib/http.py
+++ b/netlib/http.py
@@ -260,15 +260,15 @@ def read_response(rfile, method, body_size_limit):
if len(parts) == 2: # handle missing message gracefully
parts.append("")
if not len(parts) == 3:
- raise HttpError(502, "Invalid server response: %s."%line)
+ raise HttpError(502, "Invalid server response: %s"%repr(line))
proto, code, msg = parts
httpversion = parse_http_protocol(proto)
if httpversion is None:
- raise HttpError(502, "Invalid HTTP version: %s."%httpversion)
+ raise HttpError(502, "Invalid HTTP version: %s"%repr(httpversion))
try:
code = int(code)
except ValueError:
- raise HttpError(502, "Invalid server response: %s."%line)
+ raise HttpError(502, "Invalid server response: %s"%repr(line))
headers = read_headers(rfile)
if code >= 100 and code <= 199:
return read_response(rfile, method, body_size_limit)
diff --git a/netlib/tcp.py b/netlib/tcp.py
index b3fc2212..bb0a00b9 100644
--- a/netlib/tcp.py
+++ b/netlib/tcp.py
@@ -50,6 +50,8 @@ class FileLike:
class TCPClient:
+ rbufsize = -1
+ wbufsize = -1
def __init__(self, host, port):
self.host, self.port = host, port
self.connection, self.rfile, self.wfile = None, None, None
@@ -78,7 +80,8 @@ class TCPClient:
addr = socket.gethostbyname(self.host)
connection = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
connection.connect((addr, self.port))
- self.rfile, self.wfile = connection.makefile('rb'), connection.makefile('wb')
+ self.rfile = connection.makefile('rb', self.rbufsize)
+ self.wfile = connection.makefile('wb', self.wbufsize)
except socket.error, err:
raise NetLibError('Error connecting to "%s": %s' % (self.host, err))
self.connection = connection