Add ctx to UDP dispatcherConn (#2024)

This commit is contained in:
rurirei 2023-05-06 03:18:08 +00:00 committed by GitHub
parent 6cc5d1de44
commit d9af02812f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -142,12 +142,14 @@ type dispatcherConn struct {
dispatcher *Dispatcher dispatcher *Dispatcher
cache chan *udp.Packet cache chan *udp.Packet
done *done.Instance done *done.Instance
ctx context.Context
} }
func DialDispatcher(ctx context.Context, dispatcher routing.Dispatcher) (net.PacketConn, error) { func DialDispatcher(ctx context.Context, dispatcher routing.Dispatcher) (net.PacketConn, error) {
c := &dispatcherConn{ c := &dispatcherConn{
cache: make(chan *udp.Packet, 16), cache: make(chan *udp.Packet, 16),
done: done.New(), done: done.New(),
ctx: ctx,
} }
d := &Dispatcher{ d := &Dispatcher{
@ -197,8 +199,7 @@ func (c *dispatcherConn) WriteTo(p []byte, addr net.Addr) (int, error) {
n := copy(raw, p) n := copy(raw, p)
buffer.Resize(0, int32(n)) buffer.Resize(0, int32(n))
ctx := context.Background() c.dispatcher.Dispatch(c.ctx, net.DestinationFromAddr(addr), buffer)
c.dispatcher.Dispatch(ctx, net.DestinationFromAddr(addr), buffer)
return n, nil return n, nil
} }