aboutsummaryrefslogtreecommitdiffstats
path: root/libmproxy/console/common.py
diff options
context:
space:
mode:
Diffstat (limited to 'libmproxy/console/common.py')
-rw-r--r--libmproxy/console/common.py16
1 files changed, 13 insertions, 3 deletions
diff --git a/libmproxy/console/common.py b/libmproxy/console/common.py
index f417aade..ba6ba5b0 100644
--- a/libmproxy/console/common.py
+++ b/libmproxy/console/common.py
@@ -202,6 +202,7 @@ def save_data(path, data, master, state):
except IOError, v:
signals.status_message.send(message=v.strerror)
+
def ask_save_overwite(path, data, master, state):
if not path:
return
@@ -222,6 +223,7 @@ def ask_save_overwite(path, data, master, state):
else:
save_data(path, data, master, state)
+
def ask_save_path(prompt, data, master, state):
signals.status_prompt_path.send(
prompt = prompt,
@@ -236,6 +238,8 @@ def copy_flow_format_data(part, scope, flow):
else:
data = ""
if scope in ("q", "a"):
+ if flow.request.content is None or flow.request.content == CONTENT_MISSING:
+ return None, "Request content is missing"
with decoded(flow.request):
if part == "h":
data += flow.request.assemble()
@@ -247,6 +251,8 @@ def copy_flow_format_data(part, scope, flow):
# Add padding between request and response
data += "\r\n" * 2
if scope in ("s", "a") and flow.response:
+ if flow.response.content is None or flow.response.content == CONTENT_MISSING:
+ return None, "Response content is missing"
with decoded(flow.response):
if part == "h":
data += flow.response.assemble()
@@ -254,15 +260,19 @@ def copy_flow_format_data(part, scope, flow):
data += flow.response.content
else:
raise ValueError("Unknown part: {}".format(part))
- return data
+ return data, False
def copy_flow(part, scope, flow, master, state):
"""
- part: _c_ontent, _a_ll, _u_rl
+ part: _c_ontent, _h_eaders+content, _u_rl
scope: _a_ll, re_q_uest, re_s_ponse
"""
- data = copy_flow_format_data(part, scope, flow)
+ data, err = copy_flow_format_data(part, scope, flow)
+
+ if err:
+ signals.status_message.send(message=err)
+ return
if not data:
if scope == "q":