mirror of
https://github.com/mitmproxy/mitmproxy.git
synced 2025-02-15 11:19:04 +00:00
Add server replay to mitmproxy.
This commit is contained in:
parent
324d7c3955
commit
8d0152f2ff
@ -679,6 +679,10 @@ class StatusBar(WWrap):
|
||||
r.append("[")
|
||||
r.append(("statusbar_highlight", "cplayback"))
|
||||
r.append(":%s to go]"%self.master.client_playback.count())
|
||||
if self.master.server_playback:
|
||||
r.append("[")
|
||||
r.append(("statusbar_highlight", "splayback"))
|
||||
r.append(":%s to go]"%self.master.server_playback.count())
|
||||
if self.master.state.intercept_txt:
|
||||
r.append("[")
|
||||
r.append(("statusbar_highlight", "i"))
|
||||
@ -691,8 +695,17 @@ class StatusBar(WWrap):
|
||||
r.append("[")
|
||||
r.append(("statusbar_highlight", "t"))
|
||||
r.append(":%s]"%self.master.stickycookie_txt)
|
||||
|
||||
opts = []
|
||||
if self.master.anticache:
|
||||
r.append("[anticache]")
|
||||
opts.append("anticache")
|
||||
if not self.master.refresh_server_playback:
|
||||
opts.append("norefresh")
|
||||
if self.master.killextra:
|
||||
opts.append("killextra")
|
||||
|
||||
if opts:
|
||||
r.append("[%s]"%(":".join(opts)))
|
||||
|
||||
return r
|
||||
|
||||
@ -874,11 +887,19 @@ class ConsoleMaster(flow.FlowMaster):
|
||||
|
||||
self.stickycookie = None
|
||||
self.stickyhosts = {}
|
||||
|
||||
self.refresh_server_playback = options.refresh_server_playback
|
||||
self.anticache = options.anticache
|
||||
self.killextra = options.kill
|
||||
self.rheaders = options.rheaders
|
||||
|
||||
if options.client_replay:
|
||||
self.client_playback_path(options.client_replay)
|
||||
|
||||
if options.server_replay:
|
||||
self.server_playback_path(options.server_replay)
|
||||
|
||||
|
||||
def _readflow(self, path):
|
||||
path = os.path.expanduser(path)
|
||||
try:
|
||||
@ -893,7 +914,18 @@ class ConsoleMaster(flow.FlowMaster):
|
||||
if err:
|
||||
self.statusbar.message(ret)
|
||||
else:
|
||||
self.start_client_playback(ret, True)
|
||||
self.start_client_playback(ret, False)
|
||||
|
||||
def server_playback_path(self, path):
|
||||
err, ret = self._readflow(path)
|
||||
if err:
|
||||
self.statusbar.message(ret)
|
||||
else:
|
||||
self.start_server_playback(
|
||||
ret,
|
||||
self.killextra, self.rheaders,
|
||||
False
|
||||
)
|
||||
|
||||
def spawn_external_viewer(self, data, contenttype):
|
||||
if contenttype:
|
||||
@ -1318,6 +1350,13 @@ class ConsoleMaster(flow.FlowMaster):
|
||||
self.save_flows
|
||||
)
|
||||
k = None
|
||||
elif k == "s":
|
||||
self.path_prompt(
|
||||
"Server replay: ",
|
||||
self.state.last_saveload,
|
||||
self.server_playback_path
|
||||
)
|
||||
k = None
|
||||
elif k == "L":
|
||||
self.path_prompt(
|
||||
"Load flows: ",
|
||||
@ -1355,6 +1394,10 @@ class ConsoleMaster(flow.FlowMaster):
|
||||
def _change_options(self, a):
|
||||
if a == "a":
|
||||
self.anticache = not self.anticache
|
||||
elif a == "k":
|
||||
self.killextra = not self.killextra
|
||||
elif a == "n":
|
||||
self.refresh_server_playback = not self.refresh_server_playback
|
||||
|
||||
def shutdown(self):
|
||||
for i in self.state.flow_list:
|
||||
|
@ -322,8 +322,9 @@ class Response(controller.Msg):
|
||||
for i in refresh_headers:
|
||||
if i in self.headers:
|
||||
d = parsedate_tz(self.headers[i][0])
|
||||
new = mktime_tz(d) + delta
|
||||
self.headers[i] = [formatdate(new)]
|
||||
if d:
|
||||
new = mktime_tz(d) + delta
|
||||
self.headers[i] = [formatdate(new)]
|
||||
c = []
|
||||
for i in self.headers.get("set-cookie", []):
|
||||
c.append(self._refresh_cookie(i, delta))
|
||||
|
Loading…
x
Reference in New Issue
Block a user