mirror of
https://github.com/Grasscutters/mitmproxy.git
synced 2025-02-01 15:55:28 +00:00
handle a hook changing connection parameters
This commit is contained in:
parent
7b6057fa64
commit
517e5e6688
@ -140,11 +140,15 @@ class ProxyHandler(tcp.BaseHandler):
|
|||||||
single server connection - no multiplexing. If this assumption ever
|
single server connection - no multiplexing. If this assumption ever
|
||||||
breaks, we'll have to do something different with the SNI host
|
breaks, we'll have to do something different with the SNI host
|
||||||
variable on the handler object.
|
variable on the handler object.
|
||||||
|
|
||||||
|
`conn_info` holds the initial connection's parameters.
|
||||||
|
The hook might change them.
|
||||||
"""
|
"""
|
||||||
sc = self.server_conn
|
sc = self.server_conn
|
||||||
if not sni:
|
if not sni:
|
||||||
sni = host
|
sni = host
|
||||||
if sc and (scheme, host, port, sni) != (sc.scheme, sc.host, sc.port, sc.sni):
|
conn_info = (scheme, host, port, sni)
|
||||||
|
if sc and conn_info != sc.conn_info:
|
||||||
sc.terminate()
|
sc.terminate()
|
||||||
self.server_conn = None
|
self.server_conn = None
|
||||||
self.log(
|
self.log(
|
||||||
@ -160,6 +164,7 @@ class ProxyHandler(tcp.BaseHandler):
|
|||||||
try:
|
try:
|
||||||
self.server_conn = ServerConnection(self.config, scheme, host, port, sni)
|
self.server_conn = ServerConnection(self.config, scheme, host, port, sni)
|
||||||
self.server_conn.request = request # the hook might need it
|
self.server_conn.request = request # the hook might need it
|
||||||
|
self.server_conn.conn_info = conn_info
|
||||||
self.channel.ask(self.server_conn)
|
self.channel.ask(self.server_conn)
|
||||||
self.server_conn.connect()
|
self.server_conn.connect()
|
||||||
except tcp.NetLibError, v:
|
except tcp.NetLibError, v:
|
||||||
|
Loading…
Reference in New Issue
Block a user