improve chain node bypass

This commit is contained in:
ginuerzh
2022-08-24 23:12:20 +08:00
parent ff51aef518
commit 81bf7b985a
2 changed files with 26 additions and 5 deletions

View File

@ -29,14 +29,15 @@ func (c *Chain) Route(network, address string) (r *Route) {
chain: c,
}
for _, group := range c.groups {
node := group.Next()
if node == nil {
return
}
if node.Bypass != nil && node.Bypass.Contains(address) {
// hop level bypass test
if group.bypass != nil && group.bypass.Contains(address) {
break
}
node := group.filter(address).Next()
if node == nil {
return
}
if node.Transport.Multiplex() {
tr := node.Transport.Copy().
WithRoute(r)