Versions in this module Expand all Collapse all v1 v1.4.1 May 30, 2023 Changes in this version + func ClearOnlineIP() error + func DeleteLimiter(tag string) + func Init() + func UpdateLimiter(tag string, added []panel.UserInfo, deleted []panel.UserInfo) error + type ConnLimiter struct + func NewConnLimiter(conn int, ip int, realtime bool) *ConnLimiter + func (c *ConnLimiter) AddConnCount(user string, ip string, isTcp bool) (limit bool) + func (c *ConnLimiter) ClearOnlineIP() + func (c *ConnLimiter) DelConnCount(user string, ip string) + type Limiter struct + ConnLimiter *ConnLimiter + ProtocolRules []string + Rules []*regexp.Regexp + SpeedLimit int + SpeedLimiter *sync.Map + UserLimitInfo *sync.Map + func AddLimiter(tag string, l *conf.LimitConfig, users []panel.UserInfo) *Limiter + func GetLimiter(tag string) (info *Limiter, err error) + func (l *Limiter) AddDynamicSpeedLimit(tag string, userInfo *panel.UserInfo, limitNum int, expire int64) error + func (l *Limiter) CheckDomainRule(destination string) (reject bool) + func (l *Limiter) CheckLimit(email string, ip string, isTcp bool) (Bucket *ratelimit.Bucket, Reject bool) + func (l *Limiter) CheckProtocolRule(protocol string) (reject bool) + func (l *Limiter) UpdateRule(newRuleList []*regexp.Regexp) error + type UserIpList struct + IpList []string + Uid int + type UserLimitInfo struct + DynamicSpeedLimit int + ExpireTime int64 + SpeedLimit int + UID int