mirror of
https://github.com/logos-messaging/logos-messaging-nim.git
synced 2026-05-12 05:19:33 +00:00
Misc fixes
* Remove auto-port default value (Port==0) from all services * Fixes from Ivan's latest review
This commit is contained in:
parent
689ef70de9
commit
e39a954fe7
@ -99,20 +99,18 @@ suite "Wakunode2 - Waku initialization":
|
||||
(waitFor waku.stop()).isOkOr:
|
||||
raiseAssert error
|
||||
|
||||
test "unspecified service ports default to 0 then bind non-zero":
|
||||
test "explicit port=0 triggers auto-bind across all services":
|
||||
var builder = defaultTestWakuConfBuilder()
|
||||
builder.withP2pTcpPort(Port(0))
|
||||
builder.discv5Conf.withEnabled(true)
|
||||
builder.discv5Conf.withUdpPort(Port(0))
|
||||
builder.restServerConf.withEnabled(true)
|
||||
builder.restServerConf.withRelayCacheCapacity(50'u32)
|
||||
builder.restServerConf.withPort(Port(0))
|
||||
builder.metricsServerConf.withEnabled(true)
|
||||
builder.metricsServerConf.withHttpPort(Port(0))
|
||||
builder.webSocketConf.withEnabled(true)
|
||||
|
||||
# the p2pTcp option is private
|
||||
check:
|
||||
builder.discv5Conf.udpPort.isNone()
|
||||
builder.restServerConf.port.isNone()
|
||||
builder.metricsServerConf.httpPort.isNone()
|
||||
builder.webSocketConf.webSocketPort.isNone()
|
||||
builder.webSocketConf.withWebSocketPort(Port(0))
|
||||
|
||||
let conf = builder.build().valueOr:
|
||||
raiseAssert error
|
||||
|
||||
@ -410,6 +410,8 @@ proc setupDiscoveryV5*(
|
||||
p2pListenAddress: IpAddress,
|
||||
portsShift: uint16,
|
||||
): Result[WakuDiscoveryV5, string] =
|
||||
## Public only for testing. Callers should use `setupAndStartDiscv5`, which
|
||||
## additionally handles `udpPort == 0` via auto-port retry.
|
||||
if conf.udpPort == Port(0):
|
||||
return err(
|
||||
"setupDiscoveryV5: udpPort must be non-zero; " &
|
||||
|
||||
@ -4,6 +4,8 @@ import ../waku_conf
|
||||
logScope:
|
||||
topics = "waku conf builder discv5"
|
||||
|
||||
const DefaultDiscv5UdpPort*: Port = Port(9000)
|
||||
|
||||
###########################
|
||||
## Discv5 Config Builder ##
|
||||
###########################
|
||||
@ -57,7 +59,7 @@ proc build*(b: Discv5ConfBuilder): Result[Option[Discv5Conf], string] =
|
||||
bucketIpLimit: b.bucketIpLimit.get(2),
|
||||
enrAutoUpdate: b.enrAutoUpdate.get(true),
|
||||
tableIpLimit: b.tableIpLimit.get(10),
|
||||
udpPort: b.udpPort.get(Port(0)),
|
||||
udpPort: b.udpPort.get(DefaultDiscv5UdpPort),
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
@ -4,6 +4,8 @@ import ../waku_conf
|
||||
logScope:
|
||||
topics = "waku conf builder metrics server"
|
||||
|
||||
const DefaultMetricsHttpPort*: Port = Port(8008)
|
||||
|
||||
###################################
|
||||
## Metrics Server Config Builder ##
|
||||
###################################
|
||||
@ -40,7 +42,7 @@ proc build*(b: MetricsServerConfBuilder): Result[Option[MetricsServerConf], stri
|
||||
some(
|
||||
MetricsServerConf(
|
||||
httpAddress: b.httpAddress.get(static parseIpAddress("127.0.0.1")),
|
||||
httpPort: b.httpPort.get(Port(0)),
|
||||
httpPort: b.httpPort.get(DefaultMetricsHttpPort),
|
||||
logging: b.logging.get(false),
|
||||
)
|
||||
)
|
||||
|
||||
@ -4,6 +4,8 @@ import ../waku_conf
|
||||
logScope:
|
||||
topics = "waku conf builder rest server"
|
||||
|
||||
const DefaultRestPort*: Port = Port(8645)
|
||||
|
||||
################################
|
||||
## REST Server Config Builder ##
|
||||
################################
|
||||
@ -54,7 +56,7 @@ proc build*(b: RestServerConfBuilder): Result[Option[RestServerConf], string] =
|
||||
RestServerConf(
|
||||
allowOrigin: b.allowOrigin,
|
||||
listenAddress: b.listenAddress.get(),
|
||||
port: b.port.get(Port(0)),
|
||||
port: b.port.get(DefaultRestPort),
|
||||
admin: b.admin.get(false),
|
||||
relayCacheCapacity: b.relayCacheCapacity.get(),
|
||||
)
|
||||
|
||||
@ -34,7 +34,9 @@ import
|
||||
logScope:
|
||||
topics = "waku conf builder"
|
||||
|
||||
const DefaultMaxConnections* = 150
|
||||
const
|
||||
DefaultMaxConnections* = 150
|
||||
DefaultP2pTcpPort*: Port = Port(60000)
|
||||
|
||||
type MaxMessageSizeKind* = enum
|
||||
mmskNone
|
||||
@ -576,7 +578,7 @@ proc build*(
|
||||
warn "Nat Strategy is not specified, defaulting to none"
|
||||
"none"
|
||||
|
||||
let p2pTcpPort = builder.p2pTcpPort.get(Port(0))
|
||||
let p2pTcpPort = builder.p2pTcpPort.get(DefaultP2pTcpPort)
|
||||
|
||||
let p2pListenAddress =
|
||||
if builder.p2pListenAddress.isSome():
|
||||
|
||||
@ -4,6 +4,8 @@ import waku/factory/waku_conf
|
||||
logScope:
|
||||
topics = "waku conf builder websocket"
|
||||
|
||||
const DefaultWebSocketPort*: Port = Port(8000)
|
||||
|
||||
##############################
|
||||
## WebSocket Config Builder ##
|
||||
##############################
|
||||
@ -45,7 +47,8 @@ proc build*(b: WebSocketConfBuilder): Result[Option[WebSocketConf], string] =
|
||||
return ok(
|
||||
some(
|
||||
WebSocketConf(
|
||||
port: b.webSocketPort.get(Port(0)), secureConf: none(WebSocketSecureConf)
|
||||
port: b.webSocketPort.get(DefaultWebSocketPort),
|
||||
secureConf: none(WebSocketSecureConf),
|
||||
)
|
||||
)
|
||||
)
|
||||
@ -58,7 +61,7 @@ proc build*(b: WebSocketConfBuilder): Result[Option[WebSocketConf], string] =
|
||||
return ok(
|
||||
some(
|
||||
WebSocketConf(
|
||||
port: b.webSocketPort.get(Port(0)),
|
||||
port: b.webSocketPort.get(DefaultWebSocketPort),
|
||||
secureConf: some(
|
||||
WebSocketSecureConf(keyPath: b.keyPath.get(), certPath: b.certPath.get())
|
||||
),
|
||||
|
||||
@ -424,9 +424,9 @@ proc startWaku*(waku: ptr Waku): Future[Result[void, string]] {.async: (raises:
|
||||
## Update waku data that is set dynamically on node start
|
||||
try:
|
||||
(await updateWaku(waku)).isOkOr:
|
||||
return err("Error in updateWaku: " & $error)
|
||||
return err("Error in startWaku: " & $error)
|
||||
except CatchableError:
|
||||
return err("Caught exception in updateWaku: " & getCurrentExceptionMsg())
|
||||
return err("Caught exception in startWaku: " & getCurrentExceptionMsg())
|
||||
|
||||
## Reliability
|
||||
if not waku[].deliveryService.isNil():
|
||||
|
||||
@ -45,7 +45,7 @@ proc getNodeInfoItem*(self: WakuStateInfo, infoItemId: NodeInfoId): string =
|
||||
of NodeInfoId.MyPeerId:
|
||||
return $PeerId(self.node.peerId())
|
||||
of NodeInfoId.MyBoundPorts:
|
||||
return self.node.ports.toJsonString()
|
||||
return $self.node.ports
|
||||
else:
|
||||
return "unknown info item id"
|
||||
|
||||
|
||||
@ -16,5 +16,5 @@ proc init*(T: type BoundPorts): BoundPorts =
|
||||
tcp: 0'u16, webSocket: 0'u16, rest: 0'u16, discv5Udp: 0'u16, metrics: 0'u16
|
||||
)
|
||||
|
||||
proc toJsonString*(p: BoundPorts): string =
|
||||
proc `$`*(p: BoundPorts): string =
|
||||
return $(%*p)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user