diff --git a/storage/conf.nim b/storage/conf.nim index 850f0f62..b965ea39 100644 --- a/storage/conf.nim +++ b/storage/conf.nim @@ -417,6 +417,21 @@ func validateAutonatConfig*(config: StorageConf): ?!void = if config.natMinConfidence < 0.0 or config.natMinConfidence > 1.0: return failure "--nat-min-confidence must be between 0 and 1" + if config.natScheduleInterval <= 0.seconds: + return failure "--nat-schedule-interval must be greater than 0" + + if config.natMaxRelays < 1: + return failure "--nat-max-relays must be at least 1" + + if config.natPortMappingDiscoverTimeout < 1: + return failure "--nat-port-mapping-discover-timeout must be greater than 0" + + if config.natPortMappingTimeout < 1: + return failure "--nat-port-mapping-timeout must be greater than 0" + + if config.natPortMappingRecheckPeriod < 1: + return failure "--nat-port-mapping-recheck-period must be greater than 0" + success() proc getStorageVersion(): string = diff --git a/tests/storage/testconf.nim b/tests/storage/testconf.nim index e82f29f8..836135d5 100644 --- a/tests/storage/testconf.nim +++ b/tests/storage/testconf.nim @@ -11,6 +11,11 @@ proc validConfig(): StorageConf = natNumPeersToAsk: 5, natMinConfidence: 0.7, natObservedAddrMinCount: 1, + natScheduleInterval: DefaultNatScheduleInterval, + natMaxRelays: 2, + natPortMappingDiscoverTimeout: 500, + natPortMappingTimeout: 500, + natPortMappingRecheckPeriod: 300000, ) suite "Conf - validateAutonatConfig": @@ -112,3 +117,33 @@ suite "Conf - validateAutonatConfig": config.natMinConfidence = 1.0 check config.validateAutonatConfig().isOk + + test "rejects nat-schedule-interval of zero": + var config = validConfig() + config.natScheduleInterval = 0.seconds + + check config.validateAutonatConfig().isErr + + test "rejects nat-max-relays below 1": + var config = validConfig() + config.natMaxRelays = 0 + + check config.validateAutonatConfig().isErr + + test "rejects nat-port-mapping-discover-timeout of zero": + var config = validConfig() + config.natPortMappingDiscoverTimeout = 0 + + check config.validateAutonatConfig().isErr + + test "rejects nat-port-mapping-timeout of zero": + var config = validConfig() + config.natPortMappingTimeout = 0 + + check config.validateAutonatConfig().isErr + + test "rejects nat-port-mapping-recheck-period of zero": + var config = validConfig() + config.natPortMappingRecheckPeriod = 0 + + check config.validateAutonatConfig().isErr