github.com/crowdsecurity/crowdsec@v1.6.1/pkg/leakybucket/processor.go (about) 1 package leakybucket 2 3 import "github.com/crowdsecurity/crowdsec/pkg/types" 4 5 type Processor interface { 6 OnBucketInit(Bucket *BucketFactory) error 7 OnBucketPour(Bucket *BucketFactory) func(types.Event, *Leaky) *types.Event 8 OnBucketOverflow(Bucket *BucketFactory) func(*Leaky, types.RuntimeAlert, *types.Queue) (types.RuntimeAlert, *types.Queue) 9 10 AfterBucketPour(Bucket *BucketFactory) func(types.Event, *Leaky) *types.Event 11 } 12 13 type DumbProcessor struct { 14 } 15 16 func (d *DumbProcessor) OnBucketInit(bucketFactory *BucketFactory) error { 17 return nil 18 } 19 20 func (d *DumbProcessor) OnBucketPour(bucketFactory *BucketFactory) func(types.Event, *Leaky) *types.Event { 21 return func(msg types.Event, leaky *Leaky) *types.Event { 22 return &msg 23 } 24 } 25 26 func (d *DumbProcessor) OnBucketOverflow(b *BucketFactory) func(*Leaky, types.RuntimeAlert, *types.Queue) (types.RuntimeAlert, *types.Queue) { 27 return func(leaky *Leaky, alert types.RuntimeAlert, queue *types.Queue) (types.RuntimeAlert, *types.Queue) { 28 return alert, queue 29 } 30 } 31 32 func (d *DumbProcessor) AfterBucketPour(bucketFactory *BucketFactory) func(types.Event, *Leaky) *types.Event { 33 return func(msg types.Event, leaky *Leaky) *types.Event { 34 return &msg 35 } 36 }