mirror of
https://github.com/Grasscutters/mitmproxy.git
synced 2024-11-22 15:37:45 +00:00
Merge remote-tracking branch 'base/master'
This commit is contained in:
commit
27950f1972
@ -130,7 +130,7 @@ The main classes you will deal with in writing mitmproxy scripts are:
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>libmproxy.certutils.SSLCert</th>
|
||||
<th>netlib.certutils.SSLCert</th>
|
||||
<td>Exposes information SSL certificates.</td>
|
||||
</tr>
|
||||
</table>
|
||||
@ -174,4 +174,4 @@ matching events will be skipped.
|
||||
## Spaces in the script path
|
||||
By default, spaces are interpreted as separator between the inline script and its arguments (e.g. <code>-s "foo.py
|
||||
42"</code>). Consequently, the script path needs to be wrapped in a separate pair of quotes if it contains spaces:
|
||||
<code>-s "'./foo bar/baz.py' 42"</code>.
|
||||
<code>-s "'./foo bar/baz.py' 42"</code>.
|
||||
|
@ -510,14 +510,22 @@ class ConsoleMaster(flow.FlowMaster):
|
||||
def client_playback_path(self, path):
|
||||
err, ret = self._readflow(path)
|
||||
if err:
|
||||
self.statusbar.message(ret)
|
||||
if not self.statusbar:
|
||||
print >> sys.stderr, ret
|
||||
sys.exit(1)
|
||||
else:
|
||||
self.statusbar.message(ret)
|
||||
else:
|
||||
self.start_client_playback(ret, False)
|
||||
|
||||
def server_playback_path(self, path):
|
||||
err, ret = self._readflow(path)
|
||||
if err:
|
||||
self.statusbar.message(ret)
|
||||
if not self.statusbar:
|
||||
print >> sys.stderr, ret
|
||||
sys.exit(1)
|
||||
else:
|
||||
self.statusbar.message(ret)
|
||||
else:
|
||||
self.start_server_playback(
|
||||
ret,
|
||||
@ -825,8 +833,8 @@ class ConsoleMaster(flow.FlowMaster):
|
||||
if changed:
|
||||
self.statusbar.redraw()
|
||||
size = self.drawscreen()
|
||||
changed = self.tick(self.masterq, 0.01)
|
||||
self.ui.set_input_timeouts(max_wait=0.01)
|
||||
changed = self.tick(self.masterq, timeout=0.1)
|
||||
self.ui.set_input_timeouts(max_wait=0)
|
||||
keys = self.ui.get_input()
|
||||
if keys:
|
||||
changed = True
|
||||
|
@ -108,7 +108,11 @@ class Master(object):
|
||||
self.should_exit.clear()
|
||||
self.server.start_slave(Slave, Channel(self.masterq, self.should_exit))
|
||||
while not self.should_exit.is_set():
|
||||
self.tick(self.masterq, 0.01)
|
||||
|
||||
# Don't choose a very small timeout in Python 2:
|
||||
# https://github.com/mitmproxy/mitmproxy/issues/443
|
||||
# TODO: Lower the timeout value if we move to Python 3.
|
||||
self.tick(self.masterq, 0.1)
|
||||
self.shutdown()
|
||||
|
||||
def handle(self, mtype, obj):
|
||||
|
@ -758,7 +758,7 @@ class FlowMaster(controller.Master):
|
||||
self.shutdown()
|
||||
self.client_playback.tick(self)
|
||||
|
||||
return controller.Master.tick(self, q, timeout)
|
||||
return super(FlowMaster, self).tick(q, timeout)
|
||||
|
||||
def duplicate_flow(self, f):
|
||||
return self.load_flow(f.copy())
|
||||
|
24
test/tools/bench.py
Normal file
24
test/tools/bench.py
Normal file
@ -0,0 +1,24 @@
|
||||
from __future__ import print_function
|
||||
import requests, time
|
||||
|
||||
n = 100
|
||||
url = "http://192.168.1.1/"
|
||||
proxy = "http://192.168.1.115:8080/"
|
||||
|
||||
start = time.time()
|
||||
for _ in range(n):
|
||||
requests.get(url, allow_redirects=False, proxies=dict(http=proxy))
|
||||
print(".", end="")
|
||||
t_mitmproxy = time.time()-start
|
||||
|
||||
print("\r\nTotal time with mitmproxy: {}".format(t_mitmproxy))
|
||||
|
||||
|
||||
|
||||
start = time.time()
|
||||
for _ in range(n):
|
||||
requests.get(url, allow_redirects=False)
|
||||
print(".", end="")
|
||||
t_without = time.time()-start
|
||||
|
||||
print("\r\nTotal time without mitmproxy: {}".format(t_without))
|
Loading…
Reference in New Issue
Block a user