aboutsummaryrefslogtreecommitdiffstats
path: root/libmproxy/console
diff options
context:
space:
mode:
authorJason A. Novak <janovak@uchicago.edu>2013-04-21 12:46:37 -0500
committerJason A. Novak <janovak@uchicago.edu>2013-04-21 12:46:37 -0500
commitf78dada550dac02ea1dc69a7a00fcdfc7a8c996f (patch)
treee2e0a7b75428573f01343083ad9e68e259f6c63f /libmproxy/console
parent61c794e08f7b2359f3a7a7658840d3f26db25e16 (diff)
downloadmitmproxy-f78dada550dac02ea1dc69a7a00fcdfc7a8c996f.tar.gz
mitmproxy-f78dada550dac02ea1dc69a7a00fcdfc7a8c996f.tar.bz2
mitmproxy-f78dada550dac02ea1dc69a7a00fcdfc7a8c996f.zip
Add error checking to ViewProtobuf
There are protobufs that protoc can't parse. When protoc --decode_raw fails, it returns nothing to stdin, and writes "Failed to parse input." to stderr. Before this commit, if protoc --decode_raw couldn't parse the protobuf, the blank stdout output would get returned to the view; with this commit stderr gets caught and returned to the view.
Diffstat (limited to 'libmproxy/console')
-rw-r--r--libmproxy/console/contentview.py7
1 files changed, 5 insertions, 2 deletions
diff --git a/libmproxy/console/contentview.py b/libmproxy/console/contentview.py
index 53841c73..8dd8ad1d 100644
--- a/libmproxy/console/contentview.py
+++ b/libmproxy/console/contentview.py
@@ -389,8 +389,11 @@ class ViewProtobuf:
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
- out, _ = p.communicate(input=content)
- return out
+ out, err = p.communicate(input=content)
+ if out:
+ return out
+ else:
+ return err
def __call__(self, hdrs, content, limit):
decoded = self.decode_protobuf(content)