From 80000ed73799aec98aa180d3b27a4e3ac4cb7704 Mon Sep 17 00:00:00 2001 From: evilsocket Date: Thu, 21 Mar 2019 11:59:41 +0100 Subject: [PATCH] new: the events ignore list is now exported as the events.stream state object via api.rest --- modules/events_stream/events_stream.go | 2 ++ session/events_ignore_list.go | 11 +++++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/modules/events_stream/events_stream.go b/modules/events_stream/events_stream.go index 8fc56466..58b0e00b 100644 --- a/modules/events_stream/events_stream.go +++ b/modules/events_stream/events_stream.go @@ -49,6 +49,8 @@ func NewEventsStream(s *session.Session) *EventsStream { triggerList: NewTriggerList(), } + mod.State.Store("ignoring", &mod.Session.EventsIgnoreList) + mod.AddHandler(session.NewModuleHandler("events.stream on", "", "Start events stream.", func(args []string) error { diff --git a/session/events_ignore_list.go b/session/events_ignore_list.go index 05f23212..711a57cb 100644 --- a/session/events_ignore_list.go +++ b/session/events_ignore_list.go @@ -1,6 +1,7 @@ package session import ( + "encoding/json" "errors" "fmt" "strings" @@ -30,6 +31,12 @@ func NewEventsIgnoreList() *EventsIgnoreList { } } +func (l *EventsIgnoreList) MarshalJSON() ([]byte, error) { + l.RLock() + defer l.RUnlock() + return json.Marshal(l.filters) +} + func (l *EventsIgnoreList) checkExpression(expr string) (string, error) { expr = str.Trim(expr) if expr == "" { @@ -88,8 +95,8 @@ func (l *EventsIgnoreList) Remove(expr string) (err error) { } func (l *EventsIgnoreList) Clear() { - l.RLock() - defer l.RUnlock() + l.Lock() + defer l.Unlock() l.filters = make([]filter, 0) }