aboutsummaryrefslogtreecommitdiffstats
path: root/libpathod/pathoc.py
diff options
context:
space:
mode:
authorAldo Cortesi <aldo@nullcube.com>2013-01-05 20:29:46 +1300
committerAldo Cortesi <aldo@nullcube.com>2013-01-05 20:29:46 +1300
commit5493925ea07aabc569d0f6cddffff49fda59383c (patch)
tree1d62dbecab9c97ad1de1349157c1e2dc83fb8121 /libpathod/pathoc.py
parentc744ef2dcbb95182668ed8897542029c6c6734b9 (diff)
downloadmitmproxy-5493925ea07aabc569d0f6cddffff49fda59383c.tar.gz
mitmproxy-5493925ea07aabc569d0f6cddffff49fda59383c.tar.bz2
mitmproxy-5493925ea07aabc569d0f6cddffff49fda59383c.zip
CONNECT through proxy mode for pathoc
Also, use this to unit test the pathod CONNECT implementation.
Diffstat (limited to 'libpathod/pathoc.py')
-rw-r--r--libpathod/pathoc.py17
1 files changed, 16 insertions, 1 deletions
diff --git a/libpathod/pathoc.py b/libpathod/pathoc.py
index 3384dd11..a2d89aaf 100644
--- a/libpathod/pathoc.py
+++ b/libpathod/pathoc.py
@@ -15,8 +15,23 @@ class Pathoc(tcp.TCPClient):
)
self.ssl, self.sni = ssl, sni
- def connect(self):
+ def http_connect(self, connect_to, wfile, rfile):
+ wfile.write(
+ 'CONNECT %s:%s HTTP/1.1\r\n'%tuple(connect_to) +
+ '\r\n'
+ )
+ wfile.flush()
+ rfile.readline()
+ headers = http.read_headers(self.rfile)
+
+ def connect(self, connect_to=None):
+ """
+ connect_to: A (host, port) tuple, which will be connected to with an
+ HTTP CONNECT request.
+ """
tcp.TCPClient.connect(self)
+ if connect_to:
+ self.http_connect(connect_to, self.wfile, self.rfile)
if self.ssl:
try:
self.convert_to_ssl(sni=self.sni)