diff --git a/wgengine/magicsock/magicsock.go b/wgengine/magicsock/magicsock.go index e5bc28b44..e3596e319 100644 --- a/wgengine/magicsock/magicsock.go +++ b/wgengine/magicsock/magicsock.go @@ -2931,7 +2931,16 @@ func (c *RebindingUDPConn) WriteTo(b []byte, addr net.Addr) (int, error) { pconn := c.pconn c.mu.Unlock() - n, err := pconn.WriteTo(b, addr) + var n int + var err error + switch pconn := pconn.(type) { + case *net.UDPConn: + n, err = pconn.WriteTo(b, addr) + case *uring.UDPConn: + n, err = pconn.WriteTo(b, addr) + default: + n, err = pconn.WriteTo(b, addr) + } if err != nil { c.mu.Lock() pconn2 := c.pconn