add conn limiter
This commit is contained in:
42
limiter/conn/generator.go
Normal file
42
limiter/conn/generator.go
Normal file
@ -0,0 +1,42 @@
|
||||
package conn
|
||||
|
||||
import (
|
||||
limiter "github.com/go-gost/core/limiter/conn"
|
||||
)
|
||||
|
||||
type ConnLimitGenerator interface {
|
||||
Limiter() limiter.Limiter
|
||||
}
|
||||
|
||||
type connLimitGenerator struct {
|
||||
n int
|
||||
}
|
||||
|
||||
func NewConnLimitGenerator(n int) ConnLimitGenerator {
|
||||
return &connLimitGenerator{
|
||||
n: n,
|
||||
}
|
||||
}
|
||||
|
||||
func (p *connLimitGenerator) Limiter() limiter.Limiter {
|
||||
if p == nil || p.n <= 0 {
|
||||
return nil
|
||||
}
|
||||
return NewLimiter(p.n)
|
||||
}
|
||||
|
||||
type connLimitSingleGenerator struct {
|
||||
limiter limiter.Limiter
|
||||
}
|
||||
|
||||
func NewConnLimitSingleGenerator(n int) ConnLimitGenerator {
|
||||
p := &connLimitSingleGenerator{}
|
||||
if n > 0 {
|
||||
p.limiter = NewLimiter(n)
|
||||
}
|
||||
return p
|
||||
}
|
||||
|
||||
func (p *connLimitSingleGenerator) Limiter() limiter.Limiter {
|
||||
return p.limiter
|
||||
}
|
Reference in New Issue
Block a user