mirror of
https://github.com/Grasscutters/mitmproxy.git
synced 2024-11-26 18:18:25 +00:00
allow server replay functionality to run on a different port
By providing the "server_replay_ignore_port" configuration value we're able to run mitmproxy in server replay mode on a different port than the web server in the flows was originally running. This is also useful in case multiple ports are present in a flow (I suspect).
This commit is contained in:
parent
be2865cd79
commit
a5412ab136
@ -68,6 +68,13 @@ class ServerPlayback:
|
|||||||
to replay.
|
to replay.
|
||||||
"""
|
"""
|
||||||
)
|
)
|
||||||
|
loader.add_option(
|
||||||
|
"server_replay_ignore_port", bool, False,
|
||||||
|
"""
|
||||||
|
Ignore request's destination port while searching for a saved flow
|
||||||
|
to replay.
|
||||||
|
"""
|
||||||
|
)
|
||||||
|
|
||||||
@command.command("replay.server")
|
@command.command("replay.server")
|
||||||
def load_flows(self, flows: typing.Sequence[flow.Flow]) -> None:
|
def load_flows(self, flows: typing.Sequence[flow.Flow]) -> None:
|
||||||
@ -110,7 +117,7 @@ class ServerPlayback:
|
|||||||
_, _, path, _, query, _ = urllib.parse.urlparse(r.url)
|
_, _, path, _, query, _ = urllib.parse.urlparse(r.url)
|
||||||
queriesArray = urllib.parse.parse_qsl(query, keep_blank_values=True)
|
queriesArray = urllib.parse.parse_qsl(query, keep_blank_values=True)
|
||||||
|
|
||||||
key: typing.List[typing.Any] = [str(r.port), str(r.scheme), str(r.method), str(path)]
|
key: typing.List[typing.Any] = [str(r.scheme), str(r.method), str(path)]
|
||||||
if not ctx.options.server_replay_ignore_content:
|
if not ctx.options.server_replay_ignore_content:
|
||||||
if ctx.options.server_replay_ignore_payload_params and r.multipart_form:
|
if ctx.options.server_replay_ignore_payload_params and r.multipart_form:
|
||||||
key.extend(
|
key.extend(
|
||||||
@ -129,6 +136,8 @@ class ServerPlayback:
|
|||||||
|
|
||||||
if not ctx.options.server_replay_ignore_host:
|
if not ctx.options.server_replay_ignore_host:
|
||||||
key.append(r.host)
|
key.append(r.host)
|
||||||
|
if not ctx.options.server_replay_ignore_port:
|
||||||
|
key.append(r.port)
|
||||||
|
|
||||||
filtered = []
|
filtered = []
|
||||||
ignore_params = ctx.options.server_replay_ignore_params or []
|
ignore_params = ctx.options.server_replay_ignore_params or []
|
||||||
|
Loading…
Reference in New Issue
Block a user