From 85a2b875a3b3ba46a7044bef80f3373b5e625922 Mon Sep 17 00:00:00 2001 From: Doug Hoyte Date: Fri, 10 Jan 2025 16:35:24 -0500 Subject: [PATCH] in router, ensure the configured timeout is installed for first connections --- src/apps/mesh/cmd_router.cpp | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/src/apps/mesh/cmd_router.cpp b/src/apps/mesh/cmd_router.cpp index 5d8c46f..ac9ee3d 100644 --- a/src/apps/mesh/cmd_router.cpp +++ b/src/apps/mesh/cmd_router.cpp @@ -297,6 +297,20 @@ struct Router { try { auto routerConfig = loadRawTaoConfig(routerConfigFile); + // connectionTimeout + + uint64_t newTimeoutUs = defaultConnectionTimeoutUs; + if (routerConfig.get_object().contains("connectionTimeout")) { + newTimeoutUs = routerConfig.at("connectionTimeout").get_unsigned() * 1'000'000; + } + + if (connectionTimeoutUs != newTimeoutUs) { + connectionTimeoutUs = newTimeoutUs; + LI << "Using connection timeout: " << (connectionTimeoutUs / 1'000'000) << " seconds"; + } + + // load streamGroups + for (const auto &[groupName, spec] : routerConfig.at("streams").get_object()) { if (!streamGroups.contains(groupName)) { LI << "New stream group [" << groupName << "]"; @@ -314,18 +328,6 @@ struct Router { for (const auto &[groupName, spec] : routerConfig.at("streams").get_object()) unneededGroups.erase(groupName); for (const auto &groupName : unneededGroups) streamGroups.erase(groupName); } - - // connectionTimeout - - uint64_t newTimeoutUs = defaultConnectionTimeoutUs; - if (routerConfig.get_object().contains("connectionTimeout")) { - newTimeoutUs = routerConfig.at("connectionTimeout").get_unsigned() * 1'000'000; - } - - if (connectionTimeoutUs != newTimeoutUs) { - connectionTimeoutUs = newTimeoutUs; - LI << "Using connection timeout: " << (connectionTimeoutUs / 1'000'000) << " seconds"; - } } catch (std::exception &e) { LE << "Failed to parse router config: " << e.what(); if (!firstConfigLoadSuccess) ::exit(1);