aboutsummaryrefslogtreecommitdiffstats
path: root/libmproxy/proxy/server.py
diff options
context:
space:
mode:
Diffstat (limited to 'libmproxy/proxy/server.py')
-rw-r--r--libmproxy/proxy/server.py12
1 files changed, 9 insertions, 3 deletions
diff --git a/libmproxy/proxy/server.py b/libmproxy/proxy/server.py
index c817b3b5..c3f1e048 100644
--- a/libmproxy/proxy/server.py
+++ b/libmproxy/proxy/server.py
@@ -7,7 +7,7 @@ from netlib import tcp
from .primitives import ProxyServerError, Log, ProxyError, ConnectionTypeChange, \
AddressPriority
from .connection import ClientConnection, ServerConnection
-from ..protocol.handle import handle_messages, handle_error
+from ..protocol.handle import handle_messages, handle_error, handle_server_reconnect
from .. import version
@@ -207,16 +207,22 @@ class ConnectionHandler:
ca_file=self.config.ca_file
)
- def server_reconnect(self, no_ssl=False):
+ def server_reconnect(self):
address = self.server_conn.address
had_ssl = self.server_conn.ssl_established
priority = self.server_conn.priority
+ state = self.server_conn.state
sni = self.sni
self.log("(server reconnect follows)", "debug")
self.del_server_connection()
self.set_server_address(address, priority)
self.establish_server_connection()
- if had_ssl and not no_ssl:
+
+ for s in state:
+ handle_server_reconnect(s[0], self, s[1])
+ self.server_conn.state = state
+
+ if had_ssl:
self.sni = sni
self.establish_ssl(server=True)