diff options
-rw-r--r-- | include/servers.h | 5 | ||||
-rw-r--r-- | modules/protocol/inspircd12.cpp | 3 | ||||
-rw-r--r-- | modules/protocol/inspircd20.cpp | 3 | ||||
-rw-r--r-- | modules/protocol/plexus.cpp | 3 | ||||
-rw-r--r-- | modules/protocol/ratbox.cpp | 3 | ||||
-rw-r--r-- | src/init.cpp | 6 | ||||
-rw-r--r-- | src/servers.cpp | 8 |
7 files changed, 19 insertions, 12 deletions
diff --git a/include/servers.h b/include/servers.h index f2a8ce1b5..f23f20fc5 100644 --- a/include/servers.h +++ b/include/servers.h @@ -107,6 +107,11 @@ class CoreExport Server : public Flags<ServerFlag> */ const Anope::string &GetDescription() const; + /** Change this servers SID + * @param sid The new SID + */ + void SetSID(const Anope::string &sid); + /** Get the server numeric/SID * @return The numeric/SID */ diff --git a/modules/protocol/inspircd12.cpp b/modules/protocol/inspircd12.cpp index 58f46c48b..22acb54a1 100644 --- a/modules/protocol/inspircd12.cpp +++ b/modules/protocol/inspircd12.cpp @@ -759,9 +759,6 @@ class ProtoInspIRCd : public Module Implementation i[] = { I_OnUserNickChange, I_OnServerSync }; ModuleManager::Attach(i, this, sizeof(i) / sizeof(Implementation)); - - if (Config->Numeric.empty()) - Config->Numeric = ts6_sid_retrieve(); } void OnUserNickChange(User *u, const Anope::string &) diff --git a/modules/protocol/inspircd20.cpp b/modules/protocol/inspircd20.cpp index be52a37fd..9da918fd6 100644 --- a/modules/protocol/inspircd20.cpp +++ b/modules/protocol/inspircd20.cpp @@ -754,9 +754,6 @@ class ProtoInspIRCd : public Module Implementation i[] = { I_OnUserNickChange, I_OnServerSync }; ModuleManager::Attach(i, this, sizeof(i) / sizeof(Implementation)); - - if (Config->Numeric.empty()) - Config->Numeric = ts6_sid_retrieve(); } void OnUserNickChange(User *u, const Anope::string &) diff --git a/modules/protocol/plexus.cpp b/modules/protocol/plexus.cpp index fbfb26d0a..2d77696a7 100644 --- a/modules/protocol/plexus.cpp +++ b/modules/protocol/plexus.cpp @@ -660,9 +660,6 @@ class ProtoPlexus : public Module Implementation i[] = { I_OnServerSync }; ModuleManager::Attach(i, this, sizeof(i) / sizeof(Implementation)); - - if (Config->Numeric.empty()) - Config->Numeric = ts6_sid_retrieve(); } void OnServerSync(Server *s) diff --git a/modules/protocol/ratbox.cpp b/modules/protocol/ratbox.cpp index 51eb63457..e29319489 100644 --- a/modules/protocol/ratbox.cpp +++ b/modules/protocol/ratbox.cpp @@ -592,9 +592,6 @@ class ProtoRatbox : public Module Implementation i[] = { I_OnServerSync }; ModuleManager::Attach(i, this, sizeof(i) / sizeof(Implementation)); - - if (Config->Numeric.empty()) - Config->Numeric = ts6_sid_retrieve(); } void OnServerSync(Server *s) diff --git a/src/init.cpp b/src/init.cpp index 0f2f30a58..1a5293f37 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -403,6 +403,12 @@ void Init(int ac, char **av) else if (ModuleManager::FindFirstOf(ENCRYPTION) == NULL) throw FatalException("You must load at least one encryption module"); + if (ircd->ts6 && Config->Numeric.empty()); + { + Anope::string numeric = ts6_sid_retrieve(); + Me->SetSID(numeric); + Config->Numeric = numeric; + } for (botinfo_map::iterator it = BotListByNick.begin(), it_end = BotListByNick.end(); it != it_end; ++it) { it->second->GenerateUID(); diff --git a/src/servers.cpp b/src/servers.cpp index 65aeb4767..2ebf555c7 100644 --- a/src/servers.cpp +++ b/src/servers.cpp @@ -171,6 +171,14 @@ const Anope::string &Server::GetDescription() const return this->Description; } +/** Change this servers SID + * @param sid The new SID + */ +void Server::SetSID(const Anope::string &sid) +{ + this->SID = sid; +} + /** Get the server numeric/SID * @return The numeric/SID */ |