mirror of
https://github.com/Grasscutters/mitmproxy.git
synced 2025-02-01 15:55:28 +00:00
fix server reconnect
This commit is contained in:
parent
6ce1470631
commit
30a44cbb41
@ -15,10 +15,12 @@ class TCPHandler(ProtocolHandler):
|
|||||||
for rfile in r:
|
for rfile in r:
|
||||||
if self.c.client_conn.rfile == rfile:
|
if self.c.client_conn.rfile == rfile:
|
||||||
src, dst = self.c.client_conn, self.c.server_conn
|
src, dst = self.c.client_conn, self.c.server_conn
|
||||||
src_str, dst_str = "client", "server"
|
direction = "-> tcp ->"
|
||||||
|
dst_str = "%s:%s" % self.c.server_conn.address()[:2]
|
||||||
else:
|
else:
|
||||||
dst, src = self.c.client_conn, self.c.server_conn
|
dst, src = self.c.client_conn, self.c.server_conn
|
||||||
dst_str, src_str = "client", "server"
|
direction = "<- tcp <-"
|
||||||
|
dst_str = "client"
|
||||||
|
|
||||||
data = StringIO()
|
data = StringIO()
|
||||||
while range(4096):
|
while range(4096):
|
||||||
@ -52,6 +54,6 @@ class TCPHandler(ProtocolHandler):
|
|||||||
self.c.close = True
|
self.c.close = True
|
||||||
break
|
break
|
||||||
|
|
||||||
self.c.log("%s -> %s" % (src_str, dst_str), ["\r\n" + data])
|
self.c.log("%s %s" % (direction, dst_str), ["\r\n" + data])
|
||||||
dst.wfile.write(data)
|
dst.wfile.write(data)
|
||||||
dst.wfile.flush()
|
dst.wfile.flush()
|
@ -234,6 +234,7 @@ class ConnectionHandler:
|
|||||||
try:
|
try:
|
||||||
protocol.handle_messages(self.conntype, self)
|
protocol.handle_messages(self.conntype, self)
|
||||||
except protocol.ConnectionTypeChange:
|
except protocol.ConnectionTypeChange:
|
||||||
|
self.log("Connection Type Changed: %s" % self.conntype)
|
||||||
continue
|
continue
|
||||||
|
|
||||||
# FIXME: Do we want to persist errors?
|
# FIXME: Do we want to persist errors?
|
||||||
@ -279,7 +280,7 @@ class ConnectionHandler:
|
|||||||
self.server_conn.connect()
|
self.server_conn.connect()
|
||||||
except tcp.NetLibError, v:
|
except tcp.NetLibError, v:
|
||||||
raise ProxyError(502, v)
|
raise ProxyError(502, v)
|
||||||
self.log("serverconnect", ["%s:%s" % address])
|
self.log("serverconnect", ["%s:%s" % address[:2]])
|
||||||
self.channel.tell("serverconnect", self)
|
self.channel.tell("serverconnect", self)
|
||||||
|
|
||||||
def establish_ssl(self, client=False, server=False):
|
def establish_ssl(self, client=False, server=False):
|
||||||
@ -307,7 +308,7 @@ class ConnectionHandler:
|
|||||||
def server_reconnect(self, no_ssl=False):
|
def server_reconnect(self, no_ssl=False):
|
||||||
had_ssl, sni = self.server_conn.ssl_established, self.sni
|
had_ssl, sni = self.server_conn.ssl_established, self.sni
|
||||||
self.log("server reconnect (ssl: %s, sni: %s)" % (had_ssl, sni))
|
self.log("server reconnect (ssl: %s, sni: %s)" % (had_ssl, sni))
|
||||||
self.establish_server_connection(self.server_conn.address)
|
self.establish_server_connection(self.server_conn.address())
|
||||||
if had_ssl and not no_ssl:
|
if had_ssl and not no_ssl:
|
||||||
self.sni = sni
|
self.sni = sni
|
||||||
self.establish_ssl(server=True)
|
self.establish_ssl(server=True)
|
||||||
|
Loading…
Reference in New Issue
Block a user