aboutsummaryrefslogtreecommitdiffstats
path: root/libmproxy
diff options
context:
space:
mode:
authorChris Czub <chris.czub@gmail.com>2015-11-16 11:53:08 -0500
committerThomas Kriechbaumer <thomas@kriechbaumer.name>2016-01-10 11:57:37 +0100
commit493302d1805d49935d4ab9d2fad3311b4f3d3541 (patch)
tree31bb5cad15c54b214a399b25c071c38114d24f7c /libmproxy
parentf07008b8a640fcece90199b1e5ed44e0126a5d58 (diff)
downloadmitmproxy-493302d1805d49935d4ab9d2fad3311b4f3d3541.tar.gz
mitmproxy-493302d1805d49935d4ab9d2fad3311b4f3d3541.tar.bz2
mitmproxy-493302d1805d49935d4ab9d2fad3311b4f3d3541.zip
Support writing to outfile from mitmweb
Diffstat (limited to 'libmproxy')
-rw-r--r--libmproxy/console/__init__.py9
-rw-r--r--libmproxy/flow.py12
-rw-r--r--libmproxy/web/__init__.py10
3 files changed, 21 insertions, 10 deletions
diff --git a/libmproxy/console/__init__.py b/libmproxy/console/__init__.py
index cef2013e..31edca81 100644
--- a/libmproxy/console/__init__.py
+++ b/libmproxy/console/__init__.py
@@ -290,15 +290,6 @@ class ConsoleMaster(flow.FlowMaster):
self.loop.widget = window
self.loop.draw_screen()
- def start_stream_to_path(self, path, mode="wb"):
- path = os.path.expanduser(path)
- try:
- f = file(path, mode)
- self.start_stream(f, None)
- except IOError as v:
- return str(v)
- self.stream_path = path
-
def _run_script_method(self, method, s, f):
status, val = s.run(method, f)
if val:
diff --git a/libmproxy/flow.py b/libmproxy/flow.py
index a2b069ed..f02b5767 100644
--- a/libmproxy/flow.py
+++ b/libmproxy/flow.py
@@ -665,7 +665,7 @@ class FlowMaster(controller.Master):
self.add_event("Script error:\n" + str(e), "error")
script.reloader.unwatch(script_obj)
self.scripts.remove(script_obj)
-
+
def load_script(self, command, use_reloader=False):
"""
Loads a script. Returns an error description if something went
@@ -1066,6 +1066,16 @@ class FlowMaster(controller.Master):
self.stream.fo.close()
self.stream = None
+ def start_stream_to_path(self, path, mode="wb"):
+ path = os.path.expanduser(path)
+ try:
+ f = file(path, mode)
+ self.start_stream(f, None)
+ except IOError as v:
+ return str(v)
+ self.stream_path = path
+
+
def read_flows_from_paths(paths):
"""
Given a list of filepaths, read all flows and return a list of them.
diff --git a/libmproxy/web/__init__.py b/libmproxy/web/__init__.py
index a0af7315..90da6ffe 100644
--- a/libmproxy/web/__init__.py
+++ b/libmproxy/web/__init__.py
@@ -134,6 +134,16 @@ class WebMaster(flow.FlowMaster):
"Could not read flow file: %s" % v,
"error"
)
+
+ if options.outfile:
+ err = self.start_stream_to_path(
+ options.outfile[0],
+ options.outfile[1]
+ )
+ if err:
+ print >> sys.stderr, "Stream file error:", err
+ sys.exit(1)
+
if self.options.app:
self.start_app(self.options.app_host, self.options.app_port)