From 9a2639f40a596dba8adf92767339c17d1cb1059a Mon Sep 17 00:00:00 2001 From: KdeInit <162863344+KdeInit@users.noreply.github.com> Date: Sat, 5 Apr 2025 17:12:35 -0400 Subject: [PATCH] fix --- route/rule/rule_action.go | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/route/rule/rule_action.go b/route/rule/rule_action.go index 8989ff3c..a667105f 100644 --- a/route/rule/rule_action.go +++ b/route/rule/rule_action.go @@ -279,22 +279,25 @@ func (r *RuleActionReject) Error(ctx context.Context) error { default: panic(F.ToString("unknown reject method: ", r.Method)) } - r.dropAccess.Lock() - defer r.dropAccess.Unlock() - timeNow := time.Now() - r.dropCounter = common.Filter(r.dropCounter, func(t time.Time) bool { - return timeNow.Sub(t) <= 30*time.Second - }) - r.dropCounter = append(r.dropCounter, timeNow) - if len(r.dropCounter) > 50 { - if ctx != nil { - r.logger.DebugContext(ctx, "dropped due to flooding") + if !r.NoDrop { + r.dropAccess.Lock() + defer r.dropAccess.Unlock() + timeNow := time.Now() + r.dropCounter = common.Filter(r.dropCounter, func(t time.Time) bool { + return timeNow.Sub(t) <= 30*time.Second + }) + r.dropCounter = append(r.dropCounter, timeNow) + if len(r.dropCounter) > 50 { + if ctx != nil { + r.logger.DebugContext(ctx, "dropped due to flooding") + } + return tun.ErrDrop } - return tun.ErrDrop } return returnErr } + type RuleActionHijackDNS struct{} func (r *RuleActionHijackDNS) Type() string {