diff --git a/filter/audit.go b/filter/audit.go index fb34bd5..ef95d16 100644 --- a/filter/audit.go +++ b/filter/audit.go @@ -12,17 +12,14 @@ import ( "github.com/matrix-org/gomatrixserverlib" "github.com/matrix-org/policyserv/filter/classification" - "github.com/matrix-org/policyserv/filter/confidence" "github.com/matrix-org/policyserv/notifiers" ) type auditContext struct { - Event gomatrixserverlib.PDU - IsSpam bool - FinalVectors confidence.Vectors - IncrementalVectors []confidence.Vectors - FilterResponses map[string][]classification.Classification - CommunityId string + Event gomatrixserverlib.PDU + IsSpam bool + FilterResponses map[string][]classification.Classification + CommunityId string lock sync.Mutex // use a lock instead of a sync.Map because sync.Map doesn't support generics (and library support appears lacking in quality) notifier notifiers.MatrixNotifier @@ -30,14 +27,12 @@ type auditContext struct { func newAuditContext(notifier notifiers.MatrixNotifier, communityId string, event gomatrixserverlib.PDU) (*auditContext, error) { return &auditContext{ - Event: event, - FilterResponses: make(map[string][]classification.Classification), - IncrementalVectors: make([]confidence.Vectors, 0), - CommunityId: communityId, + Event: event, + FilterResponses: make(map[string][]classification.Classification), + CommunityId: communityId, // Populated later - IsSpam: false, - FinalVectors: nil, + IsSpam: false, // Internal lock: sync.Mutex{}, @@ -51,12 +46,6 @@ func (c *auditContext) AppendFilterResponse(filterName string, classifications [ c.FilterResponses[filterName] = classifications } -func (c *auditContext) AppendSetGroupVectors(vectors confidence.Vectors) { - c.lock.Lock() - defer c.lock.Unlock() - c.IncrementalVectors = append(c.IncrementalVectors, vectors) -} - func (c *auditContext) Publish() error { c.lock.Lock() defer c.lock.Unlock() diff --git a/filter/set.go b/filter/set.go index f48c38c..22903c9 100644 --- a/filter/set.go +++ b/filter/set.go @@ -137,10 +137,7 @@ func (s *Set) CheckEvent(ctx context.Context, event gomatrixserverlib.PDU, media return nil, errors.Join(fmt.Errorf("error at group %d", i), err) } vecs = s.combineVectors(vecs, v) - - auditCtx.AppendSetGroupVectors(v) } - auditCtx.FinalVectors = vecs auditCtx.IsSpam = s.IsSpamResponse(ctx, vecs) go func(auditCtx *auditContext, s *Set) { // run the audit publishing async to avoid blocking the hot path any more than required err := auditCtx.Publish()