aboutsummaryrefslogtreecommitdiffstats
path: root/libmproxy/console
diff options
context:
space:
mode:
Diffstat (limited to 'libmproxy/console')
-rw-r--r--libmproxy/console/__init__.py5
-rw-r--r--libmproxy/console/contentview.py7
-rw-r--r--libmproxy/console/flowview.py9
-rw-r--r--libmproxy/console/grideditor.py2
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: