conn: move booleans to bottom of StdNetBind struct

This results in a more compact structure.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
This commit is contained in:
Jason A. Donenfeld 2023-03-24 16:21:46 +01:00
parent 6a07b2a355
commit 6f895be10d

View File

@ -29,17 +29,19 @@ var (
// methods for sending and receiving multiple datagrams per-syscall. See the // methods for sending and receiving multiple datagrams per-syscall. See the
// proposal in https://github.com/golang/go/issues/45886#issuecomment-1218301564. // proposal in https://github.com/golang/go/issues/45886#issuecomment-1218301564.
type StdNetBind struct { type StdNetBind struct {
mu sync.Mutex // protects following fields mu sync.Mutex // protects all fields except as specified
ipv4 *net.UDPConn ipv4 *net.UDPConn
ipv6 *net.UDPConn ipv6 *net.UDPConn
blackhole4 bool ipv4PC *ipv4.PacketConn // will be nil on non-Linux
blackhole6 bool ipv6PC *ipv6.PacketConn // will be nil on non-Linux
ipv4PC *ipv4.PacketConn // will be nil on non-Linux
ipv6PC *ipv6.PacketConn // will be nil on non-Linux
udpAddrPool sync.Pool // following fields are not guarded by mu // these three fields are not guarded by mu
udpAddrPool sync.Pool
ipv4MsgsPool sync.Pool ipv4MsgsPool sync.Pool
ipv6MsgsPool sync.Pool ipv6MsgsPool sync.Pool
blackhole4 bool
blackhole6 bool
} }
func NewStdNetBind() Bind { func NewStdNetBind() Bind {