Fix:修复无法使用Sing-box内核urltest出口的问题

This commit is contained in:
wyx2685
2024-07-15 00:33:54 +09:00
parent 8757b955a6
commit b96545649b
6 changed files with 49 additions and 17 deletions

View File

@@ -4,10 +4,14 @@ import (
"sync"
"github.com/InazumaV/V2bX/common/counter"
"github.com/InazumaV/V2bX/common/format"
"github.com/InazumaV/V2bX/limiter"
"go.uber.org/zap"
)
type HookServer struct {
Tag string
logger *zap.Logger
Counter sync.Map
}
@@ -15,6 +19,21 @@ func (h *HookServer) LogTraffic(id string, tx, rx uint64) (ok bool) {
var c interface{}
var exists bool
limiterinfo, err := limiter.GetLimiter(h.Tag)
if err != nil {
h.logger.Error("Get limiter error", zap.String("tag", h.Tag), zap.Error(err))
return false
}
userLimit, ok := limiterinfo.UserLimitInfo.Load(format.UserTag(h.Tag, id))
if ok {
userlimitInfo := userLimit.(*limiter.UserLimitInfo)
if userlimitInfo.OverLimit {
userlimitInfo.OverLimit = false
return false
}
}
if c, exists = h.Counter.Load(h.Tag); !exists {
c = counter.NewTrafficCounter()
h.Counter.Store(h.Tag, c)