From 06b84afea65aa8dc93f5f856fd027b3f5642e0f6 Mon Sep 17 00:00:00 2001 From: CloseHandle <88403145+closehandle@users.noreply.github.com> Date: Sat, 23 Nov 2024 22:16:27 +0800 Subject: [PATCH] Bring back override destination --- option/rule_action.go | 5 +++-- route/rule/rule_action.go | 14 +++++++------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/option/rule_action.go b/option/rule_action.go index ce3b92d9..2079d01b 100644 --- a/option/rule_action.go +++ b/option/rule_action.go @@ -270,8 +270,9 @@ func (r *RejectActionOptions) UnmarshalJSON(bytes []byte) error { } type RouteActionSniff struct { - Sniffer badoption.Listable[string] `json:"sniffer,omitempty"` - Timeout badoption.Duration `json:"timeout,omitempty"` + Sniffer badoption.Listable[string] `json:"sniffer,omitempty"` + Timeout badoption.Duration `json:"timeout,omitempty"` + OverrideDestination bool `json:"override_destination,omitempty"` } type RouteActionResolve struct { diff --git a/route/rule/rule_action.go b/route/rule/rule_action.go index 1b4099c9..1972adb2 100644 --- a/route/rule/rule_action.go +++ b/route/rule/rule_action.go @@ -78,8 +78,9 @@ func NewRuleAction(ctx context.Context, logger logger.ContextLogger, action opti return &RuleActionHijackDNS{}, nil case C.RuleActionTypeSniff: sniffAction := &RuleActionSniff{ - snifferNames: action.SniffOptions.Sniffer, - Timeout: time.Duration(action.SniffOptions.Timeout), + snifferNames: action.SniffOptions.Sniffer, + Timeout: time.Duration(action.SniffOptions.Timeout), + OverrideDestination: action.SniffOptions.OverrideDestination, } return sniffAction, sniffAction.build() case C.RuleActionTypeResolve: @@ -286,11 +287,10 @@ func (r *RuleActionHijackDNS) String() string { } type RuleActionSniff struct { - snifferNames []string - StreamSniffers []sniff.StreamSniffer - PacketSniffers []sniff.PacketSniffer - Timeout time.Duration - // Deprecated + snifferNames []string + StreamSniffers []sniff.StreamSniffer + PacketSniffers []sniff.PacketSniffer + Timeout time.Duration OverrideDestination bool }