aboutsummaryrefslogtreecommitdiffstats
path: root/libmproxy/protocol
diff options
context:
space:
mode:
Diffstat (limited to 'libmproxy/protocol')
-rw-r--r--libmproxy/protocol/http.py2
-rw-r--r--libmproxy/protocol/primitives.py1
2 files changed, 3 insertions, 0 deletions
diff --git a/libmproxy/protocol/http.py b/libmproxy/protocol/http.py
index 8a321078..8f9d5f5d 100644
--- a/libmproxy/protocol/http.py
+++ b/libmproxy/protocol/http.py
@@ -1035,12 +1035,14 @@ class HTTPHandler(ProtocolHandler, TemporaryServerChangeMixin):
if not self.c.config.get_upstream_server:
self.c.set_server_address((request.host, request.port),
proxy.AddressPriority.FROM_PROTOCOL)
+ self.c.establish_server_connection()
flow.server_conn = self.c.server_conn # Update server_conn attribute on the flow
self.c.client_conn.send(
'HTTP/1.1 200 Connection established\r\n' +
('Proxy-agent: %s\r\n' % self.c.server_version) +
'\r\n'
)
+
self.ssl_upgrade()
self.skip_authentication = True
return False
diff --git a/libmproxy/protocol/primitives.py b/libmproxy/protocol/primitives.py
index 8c0ea5db..5743bb6a 100644
--- a/libmproxy/protocol/primitives.py
+++ b/libmproxy/protocol/primitives.py
@@ -181,6 +181,7 @@ class TemporaryServerChangeMixin(object):
self.c.del_server_connection()
self.c.set_server_address(address, priority)
+ self.c.establish_server_connection(ask=False)
if ssl:
self.c.establish_ssl(server=True)