aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mitmproxy/proxy/protocol/base.py26
1 files changed, 12 insertions, 14 deletions
diff --git a/mitmproxy/proxy/protocol/base.py b/mitmproxy/proxy/protocol/base.py
index 7c0f78ae..f1b8da6c 100644
--- a/mitmproxy/proxy/protocol/base.py
+++ b/mitmproxy/proxy/protocol/base.py
@@ -96,15 +96,7 @@ class ServerConnectionMixin:
def __init__(self, server_address=None):
super().__init__()
- self.server_conn = None
- if self.config.options.spoof_source_address and self.config.options.upstream_bind_address == '':
- self.server_conn = connections.ServerConnection(
- server_address, (self.ctx.client_conn.address[0], 0), True)
- else:
- self.server_conn = connections.ServerConnection(
- server_address, (self.config.options.upstream_bind_address, 0),
- self.config.options.spoof_source_address
- )
+ self.server_conn = self.__make_server_conn(server_address)
self.__check_self_connect()
@@ -125,6 +117,16 @@ class ServerConnectionMixin:
"The proxy shall not connect to itself.".format(repr(address))
)
+ def __make_server_conn(self, server_address):
+ if self.config.options.spoof_source_address and self.config.options.upstream_bind_address == '':
+ return connections.ServerConnection(
+ server_address, (self.ctx.client_conn.address[0], 0), True)
+ else:
+ return connections.ServerConnection(
+ server_address, (self.config.options.upstream_bind_address, 0),
+ self.config.options.spoof_source_address
+ )
+
def set_server(self, address):
"""
Sets a new server address. If there is an existing connection, it will be closed.
@@ -146,11 +148,7 @@ class ServerConnectionMixin:
self.server_conn.close()
self.channel.tell("serverdisconnect", self.server_conn)
- self.server_conn = connections.ServerConnection(
- address,
- (self.server_conn.source_address[0], 0),
- self.config.options.spoof_source_address
- )
+ self.server_conn = self.__make_server_conn(address)
def connect(self):
"""