diff --git a/transport/internet/system_dialer.go b/transport/internet/system_dialer.go index cdb6cb9c..2c2fdf85 100644 --- a/transport/internet/system_dialer.go +++ b/transport/internet/system_dialer.go @@ -66,6 +66,18 @@ func (d *DefaultSystemDialer) Dial(ctx context.Context, src net.Address, dest ne if err != nil { return nil, err } + if sockopt != nil || len(d.controllers) > 0 { + file, err := packetConn.(*net.UDPConn).File() + if err != nil { + return nil, err + } + fd := file.Fd() + if sockopt != nil { + if err := applyOutboundSocketOptions("udp", dest.NetAddr(), fd, sockopt); err != nil { + newError("failed to apply socket options").Base(err).WriteToLog(session.ExportIDToError(ctx)) + } + } + } return &PacketConnWrapper{ Conn: packetConn, Dest: destAddr,