|
@@ -489,12 +489,8 @@ match:
|
|
|
break match
|
|
|
}
|
|
|
}
|
|
|
- if !preMatch && inputPacketConn != nil && !metadata.Destination.IsFqdn() && !metadata.Destination.Addr.IsGlobalUnicast() {
|
|
|
- var timeout time.Duration
|
|
|
- if metadata.InboundType == C.TypeSOCKS {
|
|
|
- timeout = C.TCPTimeout
|
|
|
- }
|
|
|
- newBuffer, newPacketBuffers, newErr := r.actionSniff(ctx, metadata, &rule.RuleActionSniff{Timeout: timeout}, inputConn, inputPacketConn)
|
|
|
+ if !preMatch && inputPacketConn != nil && (metadata.InboundType == C.TypeSOCKS || metadata.InboundType == C.TypeMixed) && !metadata.Destination.IsFqdn() && !metadata.Destination.Addr.IsGlobalUnicast() {
|
|
|
+ newBuffer, newPacketBuffers, newErr := r.actionSniff(ctx, metadata, &rule.RuleActionSniff{Timeout: C.TCPTimeout}, inputConn, inputPacketConn)
|
|
|
if newErr != nil {
|
|
|
fatalErr = newErr
|
|
|
return
|
|
@@ -590,7 +586,7 @@ func (r *Router) actionSniff(
|
|
|
return
|
|
|
}
|
|
|
} else {
|
|
|
- if !metadata.Destination.Addr.IsGlobalUnicast() {
|
|
|
+ if (metadata.InboundType == C.TypeSOCKS || metadata.InboundType == C.TypeMixed) && !metadata.Destination.IsFqdn() && !metadata.Destination.Addr.IsGlobalUnicast() {
|
|
|
metadata.Destination = destination
|
|
|
}
|
|
|
if len(packetBuffers) > 0 {
|