diff options
| author | 2025-11-19 13:40:12 +0000 | |
|---|---|---|
| committer | 2025-11-19 13:40:12 +0000 | |
| commit | 6fca27eb78b2073ae84398d065df728d75d04f4c (patch) | |
| tree | da5115a9caa5f5cd7744e86dbda56c161304f819 /src/modules/m_spanningtree | |
| parent | Improve silence list serialization. (diff) | |
Add <autoconnect:bootperiod> to allow quickly connecting after boot.
Diffstat (limited to 'src/modules/m_spanningtree')
| -rw-r--r-- | src/modules/m_spanningtree/link.h | 1 | ||||
| -rw-r--r-- | src/modules/m_spanningtree/main.cpp | 2 | ||||
| -rw-r--r-- | src/modules/m_spanningtree/utils.cpp | 5 | ||||
| -rw-r--r-- | src/modules/m_spanningtree/utils.h | 2 |
4 files changed, 6 insertions, 4 deletions
diff --git a/src/modules/m_spanningtree/link.h b/src/modules/m_spanningtree/link.h index 8c54b3eb6..45caafecd 100644 --- a/src/modules/m_spanningtree/link.h +++ b/src/modules/m_spanningtree/link.h @@ -56,6 +56,7 @@ public: std::shared_ptr<ConfigTag> tag; std::vector<std::string> servers; unsigned long Period; + unsigned long BootPeriod; time_t NextConnectTime; /** Negative == inactive */ int position; diff --git a/src/modules/m_spanningtree/main.cpp b/src/modules/m_spanningtree/main.cpp index c2d9ad537..6ab0981ca 100644 --- a/src/modules/m_spanningtree/main.cpp +++ b/src/modules/m_spanningtree/main.cpp @@ -699,7 +699,7 @@ void ModuleSpanningTree::ReadConfig(ConfigStatus& status) // Re-read config stuff try { - Utils->ReadConfiguration(); + Utils->ReadConfiguration(status); } catch (const ModuleException& e) { diff --git a/src/modules/m_spanningtree/utils.cpp b/src/modules/m_spanningtree/utils.cpp index 57a797405..6de8fe8ad 100644 --- a/src/modules/m_spanningtree/utils.cpp +++ b/src/modules/m_spanningtree/utils.cpp @@ -234,7 +234,7 @@ void SpanningTreeUtilities::RefreshIPCache() } } -void SpanningTreeUtilities::ReadConfiguration() +void SpanningTreeUtilities::ReadConfiguration(ConfigStatus& status) { const auto& options = ServerInstance->Config->ConfValue("options"); AllowOptCommon = options->getBool("allowmismatch"); @@ -349,7 +349,8 @@ void SpanningTreeUtilities::ReadConfiguration() { auto A = std::make_shared<Autoconnect>(tag); A->Period = tag->getDuration("period", 60, 1); - A->NextConnectTime = ServerInstance->Time() + A->Period; + A->BootPeriod = tag->getDuration("bootperiod", A->Period, 1); + A->NextConnectTime = ServerInstance->Time() + (status.initial ? A->BootPeriod : A->Period); A->position = -1; irc::spacesepstream ss(tag->getString("server")); std::string server; diff --git a/src/modules/m_spanningtree/utils.h b/src/modules/m_spanningtree/utils.h index f6ded5bf7..a8d143909 100644 --- a/src/modules/m_spanningtree/utils.h +++ b/src/modules/m_spanningtree/utils.h @@ -139,7 +139,7 @@ public: /** Read the spanningtree module's tags from the config file */ - void ReadConfiguration(); + void ReadConfiguration(ConfigStatus& status); /** Handle nick collision */ |
