Hysteria outbound: Fix ContextWithRequireDatagram() (#5558)

Fixes https://github.com/XTLS/Xray-core/pull/5549
This commit is contained in:
LjhAUMEM
2026-01-18 12:25:36 +08:00
committed by GitHub
parent 5836f36f69
commit a6aca101d6
2 changed files with 5 additions and 5 deletions

View File

@@ -56,10 +56,7 @@ func (c *Client) Process(ctx context.Context, link *transport.Link, dialer inter
ob.CanSpliceCopy = 3
target := ob.Target
if target.Network == net.Network_UDP {
hyCtx.ContextWithRequireDatagram(ctx)
}
conn, err := dialer.Dial(ctx, c.server.Destination)
conn, err := dialer.Dial(hyCtx.ContextWithRequireDatagram(ctx, target.Network == net.Network_UDP), c.server.Destination)
if err != nil {
return errors.New("failed to find an available destination").AtWarning().Base(err)
}

View File

@@ -10,7 +10,10 @@ const (
requireDatagram key = iota
)
func ContextWithRequireDatagram(ctx context.Context) context.Context {
func ContextWithRequireDatagram(ctx context.Context, udp bool) context.Context {
if !udp {
return ctx
}
return context.WithValue(ctx, requireDatagram, struct{}{})
}