use resolved addr

This commit is contained in:
风扇滑翔翼 2025-04-03 18:47:34 +00:00 committed by GitHub
parent ea5106e8ec
commit d5698333cd
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -60,10 +60,14 @@ func (d *DefaultSystemDialer) Dial(ctx context.Context, src net.Address, dest ne
}
}
var lc net.ListenConfig
destAddr, err := net.ResolveUDPAddr("udp", dest.NetAddr())
if err != nil {
return nil, err
}
lc.Control = func(network, address string, c syscall.RawConn) error {
return c.Control(func(fd uintptr) {
if sockopt != nil {
if err := applyOutboundSocketOptions(network, dest.NetAddr(), fd, sockopt); err != nil {
if err := applyOutboundSocketOptions(network, destAddr.String(), fd, sockopt); err != nil {
errors.LogInfo(ctx, err, "failed to apply socket options")
}
}
@ -73,10 +77,6 @@ func (d *DefaultSystemDialer) Dial(ctx context.Context, src net.Address, dest ne
if err != nil {
return nil, err
}
destAddr, err := net.ResolveUDPAddr("udp", dest.NetAddr())
if err != nil {
return nil, err
}
return &PacketConnWrapper{
Conn: packetConn,
Dest: destAddr,