diff --git a/execution_chain/nimbus_execution_client.nim b/execution_chain/nimbus_execution_client.nim index 5f564424a1..51aa16faf1 100644 --- a/execution_chain/nimbus_execution_client.nim +++ b/execution_chain/nimbus_execution_client.nim @@ -98,8 +98,17 @@ proc setupP2P(nimbus: NimbusNode, config: ExecutionClientConf, com: CommonRef) = fatal "Get network keys error", msg = error quit(QuitFailure) natId = NimbusName & " " & NimbusVersion - (extIp, extTcpPort, extUdpPort) = - setupAddress(config.nat, config.listenAddress, config.tcpPort, config.udpPort, natId) + (extIp, extPorts) = setupAddress( + config.nat, + config.listenAddress, + @[ + (port: config.tcpPort, protocol: PortProtocol.TCP), + (port: config.udpPort, protocol: PortProtocol.UDP), + ], + natId, + ) + extTcpPort = extPorts[0].toPort() + extUdpPort = extPorts[1].toPort() bootstrapNodes = config.getBootstrapNodes() fc = nimbus.fc diff --git a/portal/client/nimbus_portal_client.nim b/portal/client/nimbus_portal_client.nim index fd12d60343..3e730ce01a 100644 --- a/portal/client/nimbus_portal_client.nim +++ b/portal/client/nimbus_portal_client.nim @@ -105,10 +105,13 @@ proc run(portalClient: PortalClient, config: PortalConf) {.raises: [CatchableErr let bindIp = config.listenAddress udpPort = Port(config.udpPort) - # TODO: allow for no TCP port mapping! - (extIp, _, extUdpPort) = setupAddress( - config.nat, config.listenAddress, udpPort, udpPort, "nimbus_portal_client" + (extIp, extPorts) = setupAddress( + config.nat, + config.listenAddress, + @[(port: udpPort, protocol: PortProtocol.UDP)], + "nimbus_portal_client", ) + extUdpPort = extPorts[0].toPort() (netkey, newNetKey) = if config.networkKey.isSome(): (config.networkKey.get(), true) diff --git a/portal/tools/portalcli.nim b/portal/tools/portalcli.nim index 781cc73538..2b57a49a63 100644 --- a/portal/tools/portalcli.nim +++ b/portal/tools/portalcli.nim @@ -220,9 +220,13 @@ proc run(config: PortalCliConf) = rng = newRng() bindIp = config.listenAddress udpPort = Port(config.udpPort) - # TODO: allow for no TCP port mapping! - (extIp, _, extUdpPort) = - setupAddress(config.nat, config.listenAddress, udpPort, udpPort, "portalcli") + (extIp, extPorts) = setupAddress( + config.nat, + config.listenAddress, + @[(port: udpPort, protocol: PortProtocol.UDP)], + "portalcli", + ) + extUdpPort = extPorts[0].toPort() var bootstrapRecords: seq[Record] loadBootstrapFile(string config.bootstrapNodesFile, bootstrapRecords)