diff options
author | Aldo Cortesi <aldo@nullcube.com> | 2012-02-09 09:38:11 +1300 |
---|---|---|
committer | Aldo Cortesi <aldo@nullcube.com> | 2012-02-09 09:38:11 +1300 |
commit | 4914dbc971166a8a394c9b5033b63de5c5078036 (patch) | |
tree | fa3838a35013e939ccb68ed3d97ad0186dbf2df6 /libmproxy/console/connview.py | |
parent | e484e667a60831f369c94758c40b1e825d9b6f99 (diff) | |
download | mitmproxy-4914dbc971166a8a394c9b5033b63de5c5078036.tar.gz mitmproxy-4914dbc971166a8a394c9b5033b63de5c5078036.tar.bz2 mitmproxy-4914dbc971166a8a394c9b5033b63de5c5078036.zip |
Allow user to specify non-standard request methods when editing a flow.
Addresses feature request in #27
Diffstat (limited to 'libmproxy/console/connview.py')
-rw-r--r-- | libmproxy/console/connview.py | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/libmproxy/console/connview.py b/libmproxy/console/connview.py index 6391547e..7fe4c899 100644 --- a/libmproxy/console/connview.py +++ b/libmproxy/console/connview.py @@ -61,7 +61,7 @@ cache = CallbackCache() class ConnectionView(common.WWrap): REQ = 0 RESP = 1 - methods = [ + method_options = [ ("get", "g"), ("post", "p"), ("put", "u"), @@ -69,6 +69,7 @@ class ConnectionView(common.WWrap): ("trace", "t"), ("delete", "d"), ("options", "o"), + ("edit raw", "e"), ] def __init__(self, master, state, flow): self.master, self.state, self.flow = master, state, flow @@ -312,11 +313,19 @@ class ConnectionView(common.WWrap): else: self.view_request() + def set_method_raw(self, m): + if m: + self.flow.request.method = m + self.master.refresh_connection(self.flow) + def edit_method(self, m): - for i in self.methods: - if i[1] == m: - self.flow.request.method = i[0].upper() - self.master.refresh_connection(self.flow) + if m == "e": + self.master.prompt_edit("Method", self.flow.request.method, self.set_method_raw) + else: + for i in self.method_options: + if i[1] == m: + self.flow.request.method = i[0].upper() + self.master.refresh_connection(self.flow) def save_body(self, path): if not path: @@ -376,7 +385,7 @@ class ConnectionView(common.WWrap): elif part == "u" and self.state.view_flow_mode == common.VIEW_FLOW_REQUEST: self.master.prompt_edit("URL", conn.get_url(), self.set_url) elif part == "m" and self.state.view_flow_mode == common.VIEW_FLOW_REQUEST: - self.master.prompt_onekey("Method", self.methods, self.edit_method) + self.master.prompt_onekey("Method", self.method_options, self.edit_method) elif part == "c" and self.state.view_flow_mode == common.VIEW_FLOW_RESPONSE: self.master.prompt_edit("Code", str(conn.code), self.set_resp_code) elif part == "m" and self.state.view_flow_mode == common.VIEW_FLOW_RESPONSE: |