| 25 | |
| 26 | |
| 27 | class WebMaster(master.Master): |
| 28 | def __init__(self, opts: options.Options, with_termlog: bool = True): |
| 29 | super().__init__(opts, with_termlog=with_termlog) |
| 30 | self.view = view.View() |
| 31 | self.view.sig_view_add.connect(self._sig_view_add) |
| 32 | self.view.sig_view_remove.connect(self._sig_view_remove) |
| 33 | self.view.sig_view_update.connect(self._sig_view_update) |
| 34 | self.view.sig_view_refresh.connect(self._sig_view_refresh) |
| 35 | |
| 36 | self.events = eventstore.EventStore() |
| 37 | self.events.sig_add.connect(self._sig_events_add) |
| 38 | self.events.sig_refresh.connect(self._sig_events_refresh) |
| 39 | |
| 40 | self.options.changed.connect(self._sig_options_update) |
| 41 | |
| 42 | self.addons.add(*addons.default_addons()) |
| 43 | self.addons.add( |
| 44 | webaddons.WebAddon(), |
| 45 | webaddons.WebAuth(), |
| 46 | intercept.Intercept(), |
| 47 | readfile.ReadFileStdin(), |
| 48 | static_viewer.StaticViewer(), |
| 49 | self.view, |
| 50 | self.events, |
| 51 | errorcheck.ErrorCheck(), |
| 52 | ) |
| 53 | self.app = app.Application(self, self.options.web_debug) |
| 54 | self.proxyserver: Proxyserver = self.addons.get("proxyserver") |
| 55 | self.proxyserver.servers.changed.connect(self._sig_servers_changed) |
| 56 | |
| 57 | def _sig_view_add(self, flow: flow.Flow) -> None: |
| 58 | app.ClientConnection.broadcast_flow("flows/add", flow) |
| 59 | |
| 60 | def _sig_view_update(self, flow: flow.Flow) -> None: |
| 61 | app.ClientConnection.broadcast_flow("flows/update", flow) |
| 62 | |
| 63 | def _sig_view_remove(self, flow: flow.Flow, index: int) -> None: |
| 64 | app.ClientConnection.broadcast( |
| 65 | type="flows/remove", |
| 66 | payload=flow.id, |
| 67 | ) |
| 68 | |
| 69 | def _sig_view_refresh(self) -> None: |
| 70 | app.ClientConnection.broadcast_flow_reset() |
| 71 | |
| 72 | def _sig_events_add(self, entry: log.LogEntry) -> None: |
| 73 | app.ClientConnection.broadcast( |
| 74 | type="events/add", |
| 75 | payload=app.logentry_to_json(entry), |
| 76 | ) |
| 77 | |
| 78 | def _sig_events_refresh(self) -> None: |
| 79 | app.ClientConnection.broadcast( |
| 80 | type="events/reset", |
| 81 | ) |
| 82 | |
| 83 | def _sig_options_update(self, updated: set[str]) -> None: |
| 84 | options_dict = optmanager.dump_dicts(self.options, updated) |
no outgoing calls
searching dependent graphs…