proxy/protocol/base: Allow spoofing fixed source

Allow combining --spoof-source-address and --upstream-bind-address to
spoof a fixed source address.  Also update the help text for
--spoof-source-address to indicate this new possibility.
This commit is contained in:
Doug Freed 2016-11-16 13:50:36 +00:00
parent d6cfd93357
commit 0ff1967226
2 changed files with 6 additions and 3 deletions

View File

@ -109,12 +109,14 @@ class ServerConnectionMixin:
super().__init__()
self.server_conn = None
if self.config.options.spoof_source_address:
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.host, 0), True)
else:
self.server_conn = connections.ServerConnection(
server_address, (self.config.options.upstream_bind_address, 0))
server_address, (self.config.options.upstream_bind_address, 0),
self.config.options.spoof_source_address
)
self.__check_self_connect()

View File

@ -485,7 +485,8 @@ def proxy_options(parser):
group.add_argument(
"--spoof-source-address",
action="store_true", dest="spoof_source_address",
help="Use the client's IP for server-side connections"
help="Use the client's IP for server-side connections. "
"Combine with --upstream-bind-address to spoof a fixed source address."
)
group.add_argument(
"--upstream-bind-address",