aboutsummaryrefslogtreecommitdiffstats
path: root/libmproxy/proxy/server.py
diff options
context:
space:
mode:
authorMaximilian Hils <git@maximilianhils.com>2014-08-08 02:45:24 +0200
committerMaximilian Hils <git@maximilianhils.com>2014-08-08 02:45:24 +0200
commita9e6121a08c745961992c9fd2b4e4593063192f5 (patch)
tree87ab6b3348f0030249555e16b2ac190b674f17ee /libmproxy/proxy/server.py
parentc01b294d8d7c070547b9eb981b6001581b33c7b4 (diff)
downloadmitmproxy-a9e6121a08c745961992c9fd2b4e4593063192f5.tar.gz
mitmproxy-a9e6121a08c745961992c9fd2b4e4593063192f5.tar.bz2
mitmproxy-a9e6121a08c745961992c9fd2b4e4593063192f5.zip
properly express state information on server connections, refs #315
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)