diff options
Diffstat (limited to 'libmproxy/console')
-rw-r--r-- | libmproxy/console/__init__.py | 5 | ||||
-rw-r--r-- | libmproxy/console/contentview.py | 7 | ||||
-rw-r--r-- | libmproxy/console/flowview.py | 9 | ||||
-rw-r--r-- | libmproxy/console/grideditor.py | 2 |
4 files changed, 16 insertions, 7 deletions
diff --git a/libmproxy/console/__init__.py b/libmproxy/console/__init__.py index fe75a047..ef799167 100644 --- a/libmproxy/console/__init__.py +++ b/libmproxy/console/__init__.py @@ -479,7 +479,7 @@ class ConsoleMaster(flow.FlowMaster): def _readflow(self, path): path = os.path.expanduser(path) try: - f = file(path, "r") + f = file(path, "rb") flows = list(flow.FlowReader(f).stream()) except (IOError, flow.FlowReadError), v: return True, v.strerror @@ -519,13 +519,14 @@ class ConsoleMaster(flow.FlowMaster): except: self.statusbar.message("Can't start editor: %s" % " ".join(c)) else: - data = open(name).read() + data = open(name,"rb").read() self.ui.start() os.unlink(name) return data def spawn_external_viewer(self, data, contenttype): if contenttype: + contenttype = contenttype.split(";")[0] ext = mimetypes.guess_extension(contenttype) or "" else: ext = "" 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) diff --git a/libmproxy/console/flowview.py b/libmproxy/console/flowview.py index 8932b912..da5a6c65 100644 --- a/libmproxy/console/flowview.py +++ b/libmproxy/console/flowview.py @@ -16,7 +16,7 @@ import os, sys import urwid import common, grideditor, contentview -from .. import utils, flow +from .. import utils, flow, controller def _mkhelp(): text = [] @@ -341,7 +341,12 @@ class FlowView(common.WWrap): conn = self.flow.request else: if not self.flow.response: - self.flow.response = flow.Response(self.flow.request, 200, "OK", flow.ODictCaseless(), "", None) + self.flow.response = flow.Response( + self.flow.request, + self.flow.request.httpversion, + 200, "OK", flow.ODictCaseless(), "", None + ) + self.flow.response.reply = controller.DummyReply() conn = self.flow.response self.flow.backup() diff --git a/libmproxy/console/grideditor.py b/libmproxy/console/grideditor.py index 314d6e88..55f3ba0f 100644 --- a/libmproxy/console/grideditor.py +++ b/libmproxy/console/grideditor.py @@ -294,7 +294,7 @@ class GridEditor(common.WWrap): if p: try: p = os.path.expanduser(p) - d = file(p, "r").read() + d = file(p, "rb").read() self.walker.set_current_value(d, unescaped) self.walker._modified() except IOError, v: |