fix traffic limiter
This commit is contained in:
@ -4,58 +4,28 @@ import (
|
||||
limiter "github.com/go-gost/core/limiter/traffic"
|
||||
)
|
||||
|
||||
type TrafficLimitGenerator interface {
|
||||
In() limiter.Limiter
|
||||
Out() limiter.Limiter
|
||||
}
|
||||
|
||||
type trafficLimitGenerator struct {
|
||||
type limitGenerator struct {
|
||||
in int
|
||||
out int
|
||||
}
|
||||
|
||||
func NewTrafficLimitGenerator(in, out int) TrafficLimitGenerator {
|
||||
return &trafficLimitGenerator{
|
||||
func newLimitGenerator(in, out int) *limitGenerator {
|
||||
return &limitGenerator{
|
||||
in: in,
|
||||
out: out,
|
||||
}
|
||||
}
|
||||
|
||||
func (p *trafficLimitGenerator) In() limiter.Limiter {
|
||||
func (p *limitGenerator) In() limiter.Limiter {
|
||||
if p == nil || p.in <= 0 {
|
||||
return nil
|
||||
}
|
||||
return NewLimiter(p.in)
|
||||
}
|
||||
|
||||
func (p *trafficLimitGenerator) Out() limiter.Limiter {
|
||||
func (p *limitGenerator) Out() limiter.Limiter {
|
||||
if p == nil || p.out <= 0 {
|
||||
return nil
|
||||
}
|
||||
return NewLimiter(p.out)
|
||||
}
|
||||
|
||||
type trafficLimitSingleGenerator struct {
|
||||
in limiter.Limiter
|
||||
out limiter.Limiter
|
||||
}
|
||||
|
||||
func NewTrafficLimitSingleGenerator(in, out int) TrafficLimitGenerator {
|
||||
p := &trafficLimitSingleGenerator{}
|
||||
if in > 0 {
|
||||
p.in = NewLimiter(in)
|
||||
}
|
||||
if out > 0 {
|
||||
p.out = NewLimiter(out)
|
||||
}
|
||||
|
||||
return p
|
||||
}
|
||||
|
||||
func (p *trafficLimitSingleGenerator) In() limiter.Limiter {
|
||||
return p.in
|
||||
}
|
||||
|
||||
func (p *trafficLimitSingleGenerator) Out() limiter.Limiter {
|
||||
return p.out
|
||||
}
|
||||
|
Reference in New Issue
Block a user