|
@@ -140,8 +140,8 @@ func (r *Router) routeConnection(ctx context.Context, conn net.Conn, metadata ad
|
|
for _, buffer := range buffers {
|
|
for _, buffer := range buffers {
|
|
conn = bufio.NewCachedConn(conn, buffer)
|
|
conn = bufio.NewCachedConn(conn, buffer)
|
|
}
|
|
}
|
|
- if r.tracker != nil {
|
|
|
|
- conn = r.tracker.RoutedConnection(ctx, conn, metadata, selectedRule, selectedOutbound)
|
|
|
|
|
|
+ for _, tracker := range r.trackers {
|
|
|
|
+ conn = tracker.RoutedConnection(ctx, conn, metadata, selectedRule, selectedOutbound)
|
|
}
|
|
}
|
|
if outboundHandler, isHandler := selectedOutbound.(adapter.ConnectionHandlerEx); isHandler {
|
|
if outboundHandler, isHandler := selectedOutbound.(adapter.ConnectionHandlerEx); isHandler {
|
|
outboundHandler.NewConnectionEx(ctx, conn, metadata, onClose)
|
|
outboundHandler.NewConnectionEx(ctx, conn, metadata, onClose)
|
|
@@ -258,8 +258,8 @@ func (r *Router) routePacketConnection(ctx context.Context, conn N.PacketConn, m
|
|
conn = bufio.NewCachedPacketConn(conn, buffer.Buffer, buffer.Destination)
|
|
conn = bufio.NewCachedPacketConn(conn, buffer.Buffer, buffer.Destination)
|
|
N.PutPacketBuffer(buffer)
|
|
N.PutPacketBuffer(buffer)
|
|
}
|
|
}
|
|
- if r.tracker != nil {
|
|
|
|
- conn = r.tracker.RoutedPacketConnection(ctx, conn, metadata, selectedRule, selectedOutbound)
|
|
|
|
|
|
+ for _, tracker := range r.trackers {
|
|
|
|
+ conn = tracker.RoutedPacketConnection(ctx, conn, metadata, selectedRule, selectedOutbound)
|
|
}
|
|
}
|
|
if metadata.FakeIP {
|
|
if metadata.FakeIP {
|
|
conn = bufio.NewNATPacketConn(bufio.NewNetPacketConn(conn), metadata.OriginDestination, metadata.Destination)
|
|
conn = bufio.NewNATPacketConn(bufio.NewNetPacketConn(conn), metadata.OriginDestination, metadata.Destination)
|