diff options
author | Sandor Nemes <snemes@users.noreply.github.com> | 2016-01-13 15:05:57 +0100 |
---|---|---|
committer | Sandor Nemes <snemes@users.noreply.github.com> | 2016-01-13 15:05:57 +0100 |
commit | 2753af0ec72e542d5a4dc3e5e200bd1638b2b095 (patch) | |
tree | 8968dca61eac1d68288e85d5be1b0c680f015d6c | |
parent | fe77dd35c67a0dfbd3004fefe97c689f8cfd3291 (diff) | |
parent | aea3837d4ae637af42f716acb27d7ea8394ece35 (diff) | |
download | mitmproxy-2753af0ec72e542d5a4dc3e5e200bd1638b2b095.tar.gz mitmproxy-2753af0ec72e542d5a4dc3e5e200bd1638b2b095.tar.bz2 mitmproxy-2753af0ec72e542d5a4dc3e5e200bd1638b2b095.zip |
Merge branch 'master' into master
-rw-r--r-- | examples/redirect_requests.py | 4 | ||||
-rw-r--r-- | libmproxy/console/__init__.py | 9 | ||||
-rw-r--r-- | libmproxy/dump.py | 12 | ||||
-rw-r--r-- | libmproxy/flow.py | 12 | ||||
-rw-r--r-- | libmproxy/web/__init__.py | 10 |
5 files changed, 29 insertions, 18 deletions
diff --git a/examples/redirect_requests.py b/examples/redirect_requests.py index 5cc81633..a3145083 100644 --- a/examples/redirect_requests.py +++ b/examples/redirect_requests.py @@ -12,11 +12,11 @@ def request(context, flow): # Method 1: Answer with a locally generated response if flow.request.pretty_host.endswith("example.com"): resp = HTTPResponse( - [1, 1], 200, "OK", + "HTTP/1.1", 200, "OK", Headers(Content_Type="text/html"), "helloworld") flow.reply(resp) # Method 2: Redirect the request to a different server if flow.request.pretty_host.endswith("example.org"): - flow.request.host = "mitmproxy.org"
\ No newline at end of file + flow.request.host = "mitmproxy.org" 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/dump.py b/libmproxy/dump.py index 22a2b75c..c2a3268a 100644 --- a/libmproxy/dump.py +++ b/libmproxy/dump.py @@ -85,12 +85,12 @@ class DumpMaster(flow.FlowMaster): self.set_stickyauth(options.stickyauth) if options.outfile: - path = os.path.expanduser(options.outfile[0]) - try: - f = open(path, options.outfile[1]) - self.start_stream(f, self.filt) - except IOError as v: - raise DumpError(v.strerror) + err = self.start_stream_to_path( + options.outfile[0], + options.outfile[1] + ) + if err: + raise DumpError(err) if options.replacements: for i in options.replacements: 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) |