aboutsummaryrefslogtreecommitdiffstats
path: root/mitmproxy
diff options
context:
space:
mode:
authorAldo Cortesi <aldo@nullcube.com>2018-02-24 15:00:40 +1300
committerAldo Cortesi <aldo@nullcube.com>2018-02-24 15:00:40 +1300
commit52c8d7e0f8d86a096946f001f81cd938f3e54b88 (patch)
tree6fe9e59be74eb39c6dd5ee8306439ec39bf86e95 /mitmproxy
parent74a0230788f1e3a1800d8125fca274cda402c769 (diff)
downloadmitmproxy-52c8d7e0f8d86a096946f001f81cd938f3e54b88.tar.gz
mitmproxy-52c8d7e0f8d86a096946f001f81cd938f3e54b88.tar.bz2
mitmproxy-52c8d7e0f8d86a096946f001f81cd938f3e54b88.zip
addon options: shift server_replay options
Diffstat (limited to 'mitmproxy')
-rw-r--r--mitmproxy/addons/serverplayback.py56
-rw-r--r--mitmproxy/options.py61
2 files changed, 54 insertions, 63 deletions
diff --git a/mitmproxy/addons/serverplayback.py b/mitmproxy/addons/serverplayback.py
index d8b2299a..73fb1666 100644
--- a/mitmproxy/addons/serverplayback.py
+++ b/mitmproxy/addons/serverplayback.py
@@ -1,8 +1,6 @@
import hashlib
import urllib
import typing
-from typing import Any # noqa
-from typing import List # noqa
from mitmproxy import ctx
from mitmproxy import flow
@@ -19,6 +17,60 @@ class ServerPlayback:
self.final_flow = None
self.configured = False
+ def load(self, loader):
+ loader.add_option(
+ "server_replay_kill_extra", bool, False,
+ "Kill extra requests during replay."
+ )
+ loader.add_option(
+ "server_replay_nopop", bool, False,
+ """
+ Don't remove flows from server replay state after use. This makes it
+ possible to replay same response multiple times.
+ """
+ )
+ loader.add_option(
+ "server_replay_refresh", bool, True,
+ """
+ Refresh server replay responses by adjusting date, expires and
+ last-modified headers, as well as adjusting cookie expiration.
+ """
+ )
+ loader.add_option(
+ "server_replay_use_headers", typing.Sequence[str], [],
+ "Request headers to be considered during replay."
+ )
+ loader.add_option(
+ "server_replay", typing.Sequence[str], [],
+ "Replay server responses from a saved file."
+ )
+ loader.add_option(
+ "server_replay_ignore_content", bool, False,
+ "Ignore request's content while searching for a saved flow to replay."
+ )
+ loader.add_option(
+ "server_replay_ignore_params", typing.Sequence[str], [],
+ """
+ Request's parameters to be ignored while searching for a saved flow
+ to replay.
+ """
+ )
+ loader.add_option(
+ "server_replay_ignore_payload_params", typing.Sequence[str], [],
+ """
+ Request's payload parameters (application/x-www-form-urlencoded or
+ multipart/form-data) to be ignored while searching for a saved flow
+ to replay.
+ """
+ )
+ loader.add_option(
+ "server_replay_ignore_host", bool, False,
+ """
+ Ignore request's destination host while searching for a saved flow
+ to replay.
+ """
+ )
+
@command.command("replay.server")
def load_flows(self, flows: typing.Sequence[flow.Flow]) -> None:
"""
diff --git a/mitmproxy/options.py b/mitmproxy/options.py
index 31845858..02ae9c0f 100644
--- a/mitmproxy/options.py
+++ b/mitmproxy/options.py
@@ -67,20 +67,11 @@ class Options(optmanager.OptManager):
view_filter = None # type: Optional[str]
# FIXME: Options that should be uncomplicated to migrate to addons
- server_replay_refresh = None # type: bool
replacements = None # type: Sequence[str]
rfile = None # type: Optional[str]
save_stream_file = None # type: Optional[str]
save_stream_filter = None # type: Optional[str]
scripts = None # type: Sequence[str]
- server_replay = None # type: Sequence[str]
- server_replay_ignore_content = None # type: bool
- server_replay_ignore_host = None # type: bool
- server_replay_ignore_params = None # type: Sequence[str]
- server_replay_ignore_payload_params = None # type: Sequence[str]
- server_replay_kill_extra = None # type: bool
- server_replay_nopop = None # type: bool
- server_replay_use_headers = None # type: Sequence[str]
setheaders = None # type: Sequence[str]
stickyauth = None # type: Optional[str]
stickycookie = None # type: Optional[str]
@@ -97,28 +88,10 @@ class Options(optmanager.OptManager):
def __init__(self, **kwargs) -> None:
super().__init__()
self.add_option(
- "server_replay_kill_extra", bool, False,
- "Kill extra requests during replay."
- )
- self.add_option(
"server", bool, True,
"Start a proxy server. Enabled by default."
)
self.add_option(
- "server_replay_nopop", bool, False,
- """
- Don't remove flows from server replay state after use. This makes it
- possible to replay same response multiple times.
- """
- )
- self.add_option(
- "server_replay_refresh", bool, True,
- """
- Refresh server replay responses by adjusting date, expires and
- last-modified headers, as well as adjusting cookie expiration.
- """
- )
- self.add_option(
"rfile", Optional[str], None,
"Read flows from file."
)
@@ -140,10 +113,6 @@ class Options(optmanager.OptManager):
"""
)
self.add_option(
- "server_replay_use_headers", Sequence[str], [],
- "Request headers to be considered during replay."
- )
- self.add_option(
"setheaders", Sequence[str], [],
"""
Header set pattern of the form "/pattern/header/value", where the
@@ -151,10 +120,6 @@ class Options(optmanager.OptManager):
"""
)
self.add_option(
- "server_replay", Sequence[str], [],
- "Replay server responses from a saved file."
- )
- self.add_option(
"stickycookie", Optional[str], None,
"Set sticky cookie filter. Matched against requests."
)
@@ -195,32 +160,6 @@ class Options(optmanager.OptManager):
"save_stream_filter", Optional[str], None,
"Filter which flows are written to file."
)
- self.add_option(
- "server_replay_ignore_content", bool, False,
- "Ignore request's content while searching for a saved flow to replay."
- )
- self.add_option(
- "server_replay_ignore_params", Sequence[str], [],
- """
- Request's parameters to be ignored while searching for a saved flow
- to replay.
- """
- )
- self.add_option(
- "server_replay_ignore_payload_params", Sequence[str], [],
- """
- Request's payload parameters (application/x-www-form-urlencoded or
- multipart/form-data) to be ignored while searching for a saved flow
- to replay.
- """
- )
- self.add_option(
- "server_replay_ignore_host", bool, False,
- """
- Ignore request's destination host while searching for a saved flow
- to replay.
- """
- )
# Proxy options
self.add_option(