Documentation
¶
Overview ¶
Package limiter is to control the links that go into the dispatcher
Index ¶
- type GlobalDeviceLimitConfig
- type InboundInfo
- type Limiter
- func (l *Limiter) AddInboundLimiter(tag string, nodeSpeedLimit uint64, userList *[]api.UserInfo, ...) error
- func (l *Limiter) DeleteInboundLimiter(tag string) error
- func (l *Limiter) GetOnlineDevice(tag string) (*[]api.OnlineUser, error)
- func (l *Limiter) GetUserBucket(tag string, userKey string, ip string) (limiter *rate.Limiter, SpeedLimit bool, Reject bool)
- func (l *Limiter) RateReader(reader buf.Reader, limiter *rate.Limiter) buf.Reader
- func (l *Limiter) RateWriter(writer buf.Writer, limiter *rate.Limiter) buf.Writer
- func (l *Limiter) UpdateInboundLimiter(tag string, updatedUserList *[]api.UserInfo) error
- type Reader
- type UserInfo
- type Writer
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type GlobalDeviceLimitConfig ¶
type GlobalDeviceLimitConfig struct {
Enable bool `mapstructure:"Enable"`
RedisNetwork string `mapstructure:"RedisNetwork"` // tcp or unix
RedisAddr string `mapstructure:"RedisAddr"` // host:port, or /path/to/unix.sock
RedisUsername string `mapstructure:"RedisUsername"`
RedisPassword string `mapstructure:"RedisPassword"`
RedisDB int `mapstructure:"RedisDB"`
Timeout int `mapstructure:"Timeout"`
Expiry int `mapstructure:"Expiry"` // second
}
type InboundInfo ¶
type InboundInfo struct {
Tag string
NodeSpeedLimit uint64
UserInfo *sync.Map // Key: user identifier (usually UID string) -> UserInfo
BucketHub *sync.Map // Key: user identifier -> *rate.Limiter
UserOnlineIP *sync.Map // Key: user identifier -> {Key: IP, Value: UID}
GlobalLimit struct {
// contains filtered or unexported fields
}
}
type Limiter ¶
func (*Limiter) AddInboundLimiter ¶
func (*Limiter) DeleteInboundLimiter ¶
func (*Limiter) GetOnlineDevice ¶
func (l *Limiter) GetOnlineDevice(tag string) (*[]api.OnlineUser, error)
func (*Limiter) GetUserBucket ¶
func (*Limiter) RateReader ¶ added in v0.9.8
func (*Limiter) RateWriter ¶
type Reader ¶ added in v0.9.8
type Reader struct {
// contains filtered or unexported fields
}
func (*Reader) ReadMultiBuffer ¶ added in v0.9.8
func (r *Reader) ReadMultiBuffer() (buf.MultiBuffer, error)
func (*Reader) ReadMultiBufferTimeout ¶ added in v0.9.8
Click to show internal directories.
Click to hide internal directories.