aboutsummaryrefslogtreecommitdiffstats
path: root/mitmproxy/tools/web/master.py
diff options
context:
space:
mode:
authorAldo Cortesi <aldo@corte.si>2016-11-01 11:30:07 +1300
committerGitHub <noreply@github.com>2016-11-01 11:30:07 +1300
commitdef0127cddca3fae9e90ac87516e67a558873286 (patch)
treefe3ed281b25452e24efddb00b999e98cc6771752 /mitmproxy/tools/web/master.py
parent2c85b262d5036db08a1c1b8df50d84f8ed6410da (diff)
parentc33557a230a0dc6694db9144179cd1a429c16a3d (diff)
downloadmitmproxy-def0127cddca3fae9e90ac87516e67a558873286.tar.gz
mitmproxy-def0127cddca3fae9e90ac87516e67a558873286.tar.bz2
mitmproxy-def0127cddca3fae9e90ac87516e67a558873286.zip
Merge pull request #1696 from cortesi/rmstate
Remove addons.State entirely
Diffstat (limited to 'mitmproxy/tools/web/master.py')
-rw-r--r--mitmproxy/tools/web/master.py93
1 files changed, 39 insertions, 54 deletions
diff --git a/mitmproxy/tools/web/master.py b/mitmproxy/tools/web/master.py
index cf0bfd73..d283e5d5 100644
--- a/mitmproxy/tools/web/master.py
+++ b/mitmproxy/tools/web/master.py
@@ -1,5 +1,4 @@
import sys
-import collections
import tornado.httpserver
import tornado.ioloop
@@ -8,7 +7,7 @@ from typing import Optional
from mitmproxy import addons
from mitmproxy import exceptions
-from mitmproxy.addons import state
+from mitmproxy.addons import view
from mitmproxy.addons import intercept
from mitmproxy import options
from mitmproxy import master
@@ -20,53 +19,7 @@ class Stop(Exception):
pass
-class WebFlowView(state.FlowView):
-
- def __init__(self, store):
- super().__init__(store, None)
-
- def _add(self, f):
- super()._add(f)
- app.ClientConnection.broadcast(
- type="UPDATE_FLOWS",
- cmd="add",
- data=app.convert_flow_to_json_dict(f)
- )
-
- def _update(self, f):
- super()._update(f)
- app.ClientConnection.broadcast(
- type="UPDATE_FLOWS",
- cmd="update",
- data=app.convert_flow_to_json_dict(f)
- )
-
- def _remove(self, f):
- super()._remove(f)
- app.ClientConnection.broadcast(
- type="UPDATE_FLOWS",
- cmd="remove",
- data=dict(id=f.id)
- )
-
- def _recalculate(self, flows):
- super()._recalculate(flows)
- app.ClientConnection.broadcast(
- type="UPDATE_FLOWS",
- cmd="reset"
- )
-
-
-class WebState(state.State):
-
- def __init__(self):
- super().__init__()
- self.view._close()
- self.view = WebFlowView(self.flows)
-
- self._last_event_id = 0
- self.events = collections.deque(maxlen=1000)
-
+class _WebState():
def add_log(self, e, level):
self._last_event_id += 1
entry = {
@@ -136,9 +89,14 @@ class WebMaster(master.Master):
def __init__(self, options, server):
super().__init__(options, server)
- self.state = WebState()
+ self.view = view.View()
+ self.view.sig_add.connect(self._sig_add)
+ self.view.sig_remove.connect(self._sig_remove)
+ self.view.sig_update.connect(self._sig_update)
+ self.view.sig_refresh.connect(self._sig_refresh)
+
self.addons.add(*addons.default_addons())
- self.addons.add(self.state, intercept.Intercept())
+ self.addons.add(self.view, intercept.Intercept())
self.app = app.Application(
self, self.options.wdebug, self.options.wauthenticator
)
@@ -162,6 +120,33 @@ class WebMaster(master.Master):
print("Stream file error: {}".format(err), file=sys.stderr)
sys.exit(1)
+ def _sig_add(self, view, flow):
+ app.ClientConnection.broadcast(
+ type="UPDATE_FLOWS",
+ cmd="add",
+ data=app.convert_flow_to_json_dict(flow)
+ )
+
+ def _sig_update(self, view, flow):
+ app.ClientConnection.broadcast(
+ type="UPDATE_FLOWS",
+ cmd="update",
+ data=app.convert_flow_to_json_dict(flow)
+ )
+
+ def _sig_remove(self, view, flow):
+ app.ClientConnection.broadcast(
+ type="UPDATE_FLOWS",
+ cmd="remove",
+ data=dict(id=flow.id)
+ )
+
+ def _sig_refresh(self, view):
+ app.ClientConnection.broadcast(
+ type="UPDATE_FLOWS",
+ cmd="reset"
+ )
+
def run(self): # pragma: no cover
iol = tornado.ioloop.IOLoop.instance()
@@ -178,6 +163,6 @@ class WebMaster(master.Master):
except (Stop, KeyboardInterrupt):
self.shutdown()
- def add_log(self, e, level="info"):
- super().add_log(e, level)
- return self.state.add_log(e, level)
+ # def add_log(self, e, level="info"):
+ # super().add_log(e, level)
+ # return self.state.add_log(e, level)