aboutsummaryrefslogtreecommitdiffstats
path: root/libmproxy/protocol
diff options
context:
space:
mode:
authorMaximilian Hils <git@maximilianhils.com>2015-07-26 11:58:21 +0200
committerMaximilian Hils <git@maximilianhils.com>2015-07-26 11:58:21 +0200
commitd2ae6b630e7924479aefbb9f0193fdfcbae8fea6 (patch)
tree86714c62c80155613882fae31930cbfd2ac5baac /libmproxy/protocol
parentee163ed5b0d69a42476751e885ef9548bb6da1d9 (diff)
parent4c50c36345761f2b012c52bff230bdc5347f3d66 (diff)
downloadmitmproxy-d2ae6b630e7924479aefbb9f0193fdfcbae8fea6.tar.gz
mitmproxy-d2ae6b630e7924479aefbb9f0193fdfcbae8fea6.tar.bz2
mitmproxy-d2ae6b630e7924479aefbb9f0193fdfcbae8fea6.zip
Merge pull request #548 from macmantrl/no_serverconn
Prevent unnecessary upstream server connects
Diffstat (limited to 'libmproxy/protocol')
-rw-r--r--libmproxy/protocol/http.py6
-rw-r--r--libmproxy/protocol/primitives.py2
2 files changed, 5 insertions, 3 deletions
diff --git a/libmproxy/protocol/http.py b/libmproxy/protocol/http.py
index 821d759c..f2ac5acc 100644
--- a/libmproxy/protocol/http.py
+++ b/libmproxy/protocol/http.py
@@ -1314,7 +1314,6 @@ class HTTPHandler(ProtocolHandler):
self.c.set_server_address((request.host, request.port))
# Update server_conn attribute on the flow
flow.server_conn = self.c.server_conn
- self.c.establish_server_connection()
self.c.client_conn.send(
('HTTP/%s.%s 200 ' % (request.httpversion[0], request.httpversion[1])) +
'Connection established\r\n' +
@@ -1518,7 +1517,10 @@ class HTTPHandler(ProtocolHandler):
"Received CONNECT request to SSL port. "
"Upgrading to SSL...", "debug"
)
- self.c.establish_ssl(server=True, client=True)
+ server_ssl = not self.c.config.no_upstream_cert
+ if server_ssl:
+ self.c.establish_server_connection()
+ self.c.establish_ssl(server=server_ssl, client=True)
self.c.log("Upgrade to SSL completed.", "debug")
if self.c.config.check_tcp(address):
diff --git a/libmproxy/protocol/primitives.py b/libmproxy/protocol/primitives.py
index 2f8ea3e0..a9193c5f 100644
--- a/libmproxy/protocol/primitives.py
+++ b/libmproxy/protocol/primitives.py
@@ -236,7 +236,7 @@ class LiveConnection(object):
ssl_mismatch = (
ssl is not None and
(
- ssl != self.c.server_conn.ssl_established
+ (self.c.server_conn.connection and ssl != self.c.server_conn.ssl_established)
or
(sni is not None and sni != self.c.server_conn.sni)
)