diff options
author | Aldo Cortesi <aldo@nullcube.com> | 2013-01-05 20:29:46 +1300 |
---|---|---|
committer | Aldo Cortesi <aldo@nullcube.com> | 2013-01-05 20:29:46 +1300 |
commit | 5493925ea07aabc569d0f6cddffff49fda59383c (patch) | |
tree | 1d62dbecab9c97ad1de1349157c1e2dc83fb8121 /libpathod/pathoc.py | |
parent | c744ef2dcbb95182668ed8897542029c6c6734b9 (diff) | |
download | mitmproxy-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.py | 17 |
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) |