aboutsummaryrefslogtreecommitdiffstats
path: root/libmproxy/console
diff options
context:
space:
mode:
authorMaximilian Hils <git@maximilianhils.com>2015-03-26 18:17:36 +0100
committerMaximilian Hils <git@maximilianhils.com>2015-03-26 18:17:36 +0100
commit04f2467e84905d44483469cf43ada4ec44faa203 (patch)
tree9076642f7439a877d1839293739b75d3c0f805c5 /libmproxy/console
parent9854379046a5464f4fd638785bafca87b91a495a (diff)
parent423530fc258ddd09642de401c4fd5cf71ed06be6 (diff)
downloadmitmproxy-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__.py6
-rw-r--r--libmproxy/console/common.py2
-rw-r--r--libmproxy/console/contentview.py24
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"
))