diff options
Diffstat (limited to 'src')
| -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 */ |
