mirror of
https://github.com/tailscale/tailscale.git
synced 2026-05-05 12:16:44 +02:00
tewak
This commit is contained in:
parent
f27a61502d
commit
961a23b9df
@ -2861,17 +2861,17 @@ func (c *RebindingUDPConn) ReadFromNetaddr(b []byte) (n int, ipp netaddr.IPPort,
|
||||
for {
|
||||
pconn := c.currentConn()
|
||||
|
||||
// Optimization: Treat a few conn types specially.
|
||||
// *uring.UDPConn can return netaddr.IPPorts directly.
|
||||
// Optimization: Treat a few pconn types specially.
|
||||
// For *net.UDPConn, ReadFromUDP gets partially inlined, avoiding allocating a *net.UDPAddr,
|
||||
// as long as pAddr itself doesn't escape.
|
||||
// *uring.UDPConn can return netaddr.IPPorts directly.
|
||||
// The default case works, but it allocates.
|
||||
var pAddr *net.UDPAddr
|
||||
switch pconn := pconn.(type) {
|
||||
case *uring.UDPConn:
|
||||
n, ipp, err = pconn.ReadFromNetaddr(b)
|
||||
case *net.UDPConn:
|
||||
n, pAddr, err = pconn.ReadFromUDP(b)
|
||||
case *uring.UDPConn:
|
||||
n, ipp, err = pconn.ReadFromNetaddr(b)
|
||||
default:
|
||||
var addr net.Addr
|
||||
n, addr, err = pconn.ReadFrom(b)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user