From dd81e1d469716328f05c05f0526de2adbcd9a4ea Mon Sep 17 00:00:00 2001 From: Richard Ramos Date: Fri, 22 Mar 2024 14:13:20 -0400 Subject: [PATCH] fix: handle discv5 udp port 0 This will update the UDP port used in the params with whatever value is obtained from ListenUDP --- waku/v2/discv5/discover.go | 1 + waku/v2/protocol/enr/localnode.go | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/waku/v2/discv5/discover.go b/waku/v2/discv5/discover.go index dd9a462a..582e46d2 100644 --- a/waku/v2/discv5/discover.go +++ b/waku/v2/discv5/discover.go @@ -178,6 +178,7 @@ func (d *DiscoveryV5) listen(ctx context.Context) error { } + d.params.udpPort = uint(d.udpAddr.Port) d.localnode.SetFallbackUDP(d.udpAddr.Port) listener, err := discover.ListenV5(ctx, conn, d.localnode, d.config) diff --git a/waku/v2/protocol/enr/localnode.go b/waku/v2/protocol/enr/localnode.go index 08f98c3d..a297d54c 100644 --- a/waku/v2/protocol/enr/localnode.go +++ b/waku/v2/protocol/enr/localnode.go @@ -79,6 +79,10 @@ func WithIP(ipAddr *net.TCPAddr) ENROption { func WithUDPPort(udpPort uint) ENROption { return func(localnode *enode.LocalNode) (err error) { + if udpPort == 0 { + return nil + } + if udpPort > math.MaxUint16 { return errors.New("invalid udp port number") }