aboutsummaryrefslogtreecommitdiffstats
path: root/libmproxy/console/common.py
diff options
context:
space:
mode:
authorChoongwoo Han <cwhan.tunz@gmail.com>2015-04-23 15:40:57 +0900
committerChoongwoo Han <cwhan.tunz@gmail.com>2015-04-23 15:40:57 +0900
commitad33d0925fa3ccd20fcd043a4a2c8ba28e8e0436 (patch)
tree65cad489528acb8f0b387c26f4d8ee0ff6258945 /libmproxy/console/common.py
parent10750c9f3025a7e964bfea2866fb84d8a4945e3d (diff)
downloadmitmproxy-ad33d0925fa3ccd20fcd043a4a2c8ba28e8e0436.tar.gz
mitmproxy-ad33d0925fa3ccd20fcd043a4a2c8ba28e8e0436.tar.bz2
mitmproxy-ad33d0925fa3ccd20fcd043a4a2c8ba28e8e0436.zip
Fix crash when save to clipboard before loading
Diffstat (limited to 'libmproxy/console/common.py')
-rw-r--r--libmproxy/console/common.py15
1 files changed, 11 insertions, 4 deletions
diff --git a/libmproxy/console/common.py b/libmproxy/console/common.py
index 74d510eb..6d5579d4 100644
--- a/libmproxy/console/common.py
+++ b/libmproxy/console/common.py
@@ -218,6 +218,9 @@ def copy_flow_format_data(part, scope, flow):
else:
data = ""
if scope in ("q", "a"):
+ if flow.request.content == None:
+ signals.status_message.send(message="Please retry, after finishing loading.")
+ return "", True
with decoded(flow.request):
if part == "h":
data += flow.request.assemble()
@@ -229,6 +232,9 @@ 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 == None:
+ signals.status_message.send(message="Please retry, after finishing loading.")
+ return "", True
with decoded(flow.response):
if part == "h":
data += flow.response.assemble()
@@ -236,17 +242,18 @@ 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
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 not data:
+ if err:
+ return
+ elif not data:
if scope == "q":
signals.status_message.send(message="No request content to copy.")
elif scope == "s":