Add routeOnly sniffing option

This commit is contained in:
世界 2021-09-16 15:05:48 +08:00
parent 6c9e57d624
commit a3023e43ef
No known key found for this signature in database
GPG key ID: CD109927C34A63C4
8 changed files with 121 additions and 89 deletions

View file

@ -17,10 +17,6 @@ type ResolvableContext struct {
// GetTargetIPs overrides original routing.Context's implementation.
func (ctx *ResolvableContext) GetTargetIPs() []net.IP {
if ips := ctx.Context.GetTargetIPs(); len(ips) != 0 {
return ips
}
if len(ctx.resolvedIPs) > 0 {
return ctx.resolvedIPs
}
@ -38,6 +34,10 @@ func (ctx *ResolvableContext) GetTargetIPs() []net.IP {
newError("resolve ip for ", domain).Base(err).WriteToLog()
}
if ips := ctx.Context.GetTargetIPs(); len(ips) != 0 {
return ips
}
return nil
}

View file

@ -70,7 +70,12 @@ func (ctx *Context) GetTargetDomain() string {
if ctx.Outbound == nil || !ctx.Outbound.Target.IsValid() {
return ""
}
dest := ctx.Outbound.Target
dest := ctx.Outbound.RouteTarget
if dest.IsValid() && dest.Address.Family().IsDomain() {
return dest.Address.Domain()
}
dest = ctx.Outbound.Target
if !dest.Address.Family().IsDomain() {
return ""
}