Wireguard dial with context

This commit is contained in:
yuhan6665 2024-05-22 08:44:02 -04:00
parent 416f2df11c
commit 9b6141b83f
2 changed files with 5 additions and 3 deletions

View file

@ -123,12 +123,13 @@ func (bind *netBind) Close() error {
type netBindClient struct {
netBind
ctx context.Context
dialer internet.Dialer
reserved []byte
}
func (bind *netBindClient) connectTo(endpoint *netEndpoint) error {
c, err := bind.dialer.Dial(context.Background(), endpoint.dst)
c, err := bind.dialer.Dial(bind.ctx, endpoint.dst)
if err != nil {
return err
}

View file

@ -76,7 +76,7 @@ func New(ctx context.Context, conf *DeviceConfig) (*Handler, error) {
}, nil
}
func (h *Handler) processWireGuard(dialer internet.Dialer) (err error) {
func (h *Handler) processWireGuard(ctx context.Context, dialer internet.Dialer) (err error) {
h.wgLock.Lock()
defer h.wgLock.Unlock()
@ -108,6 +108,7 @@ func (h *Handler) processWireGuard(dialer internet.Dialer) (err error) {
},
workers: int(h.conf.NumWorkers),
},
ctx: ctx,
dialer: dialer,
reserved: h.conf.Reserved,
}
@ -135,7 +136,7 @@ func (h *Handler) Process(ctx context.Context, link *transport.Link, dialer inte
ob.Name = "wireguard"
ob.CanSpliceCopy = 3
if err := h.processWireGuard(dialer); err != nil {
if err := h.processWireGuard(ctx, dialer); err != nil {
return err
}