diff --git a/p2p/enode/node.go b/p2p/enode/node.go index c8d521529f67..4d93d3f6be8b 100644 --- a/p2p/enode/node.go +++ b/p2p/enode/node.go @@ -202,12 +202,16 @@ func (n *Node) TCPEndpoint() (netip.AddrPort, bool) { // QUICEndpoint returns the announced QUIC endpoint. func (n *Node) QUICEndpoint() (netip.AddrPort, bool) { - var quic enr.QUIC - n.Load(&quic) + var quic uint16 + if n.ip.Is4() || n.ip.Is4In6() { + n.Load((*enr.QUIC)(&quic)) + } else if n.ip.Is6() { + n.Load((*enr.QUIC6)(&quic)) + } if !n.ip.IsValid() || n.ip.IsUnspecified() || quic == 0 { return netip.AddrPort{}, false } - return netip.AddrPortFrom(n.ip, uint16(quic)), true + return netip.AddrPortFrom(n.ip, quic), true } // Pubkey returns the secp256k1 public key of the node, if present.