diff options
author | Maximilian Hils <git@maximilianhils.com> | 2015-03-26 18:17:36 +0100 |
---|---|---|
committer | Maximilian Hils <git@maximilianhils.com> | 2015-03-26 18:17:36 +0100 |
commit | 04f2467e84905d44483469cf43ada4ec44faa203 (patch) | |
tree | 9076642f7439a877d1839293739b75d3c0f805c5 /libmproxy/console | |
parent | 9854379046a5464f4fd638785bafca87b91a495a (diff) | |
parent | 423530fc258ddd09642de401c4fd5cf71ed06be6 (diff) | |
download | mitmproxy-04f2467e84905d44483469cf43ada4ec44faa203.tar.gz mitmproxy-04f2467e84905d44483469cf43ada4ec44faa203.tar.bz2 mitmproxy-04f2467e84905d44483469cf43ada4ec44faa203.zip |
Merge branch 'master' of github.com:mitmproxy/mitmproxy
Diffstat (limited to 'libmproxy/console')
-rw-r--r-- | libmproxy/console/__init__.py | 6 | ||||
-rw-r--r-- | libmproxy/console/common.py | 2 | ||||
-rw-r--r-- | libmproxy/console/contentview.py | 24 |
3 files changed, 8 insertions, 24 deletions
diff --git a/libmproxy/console/__init__.py b/libmproxy/console/__init__.py index 90c8bd89..9375f973 100644 --- a/libmproxy/console/__init__.py +++ b/libmproxy/console/__init__.py @@ -293,16 +293,20 @@ class ConsoleMaster(flow.FlowMaster): - a list of flows, otherwise. """ try: - return flow.read_flows_from_paths([path]) + return flow.read_flows_from_paths(path) except flow.FlowReadError as e: signals.status_message.send(message=e.strerror) def client_playback_path(self, path): + if not isinstance(path, list): + path = [path] flows = self._readflows(path) if flows: self.start_client_playback(flows, False) def server_playback_path(self, path): + if not isinstance(path, list): + path = [path] flows = self._readflows(path) if flows: self.start_server_playback( diff --git a/libmproxy/console/common.py b/libmproxy/console/common.py index 2f143f01..bc8a2aad 100644 --- a/libmproxy/console/common.py +++ b/libmproxy/console/common.py @@ -252,7 +252,7 @@ def copy_flow(part, scope, flow, master, state): try: master.add_event(str(len(data))) pyperclip.copy(data) - except RuntimeError: + except (RuntimeError, UnicodeDecodeError): def save(k): if k == "y": ask_save_path("Save data", data, master, state) diff --git a/libmproxy/console/contentview.py b/libmproxy/console/contentview.py index 95d908a4..12ed5b64 100644 --- a/libmproxy/console/contentview.py +++ b/libmproxy/console/contentview.py @@ -240,33 +240,13 @@ class ViewMultipart: content_types = ["multipart/form-data"] def __call__(self, hdrs, content, limit): - v = hdrs.get_first("content-type") + v = utils.multipartdecode(hdrs, content) if v: - v = utils.parse_content_type(v) - if not v: - return - boundary = v[2].get("boundary") - if not boundary: - return - - rx = re.compile(r'\bname="([^"]+)"') - keys = [] - vals = [] - - for i in content.split("--" + boundary): - parts = i.splitlines() - if len(parts) > 1 and parts[0][0:2] != "--": - match = rx.search(parts[1]) - if match: - keys.append(match.group(1) + ":") - vals.append(netlib.utils.cleanBin( - "\n".join(parts[3+parts[2:].index(""):]) - )) r = [ urwid.Text(("highlight", "Form data:\n")), ] r.extend(common.format_keyvals( - zip(keys, vals), + v, key = "header", val = "text" )) |