summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/servers.h5
-rw-r--r--modules/protocol/inspircd12.cpp3
-rw-r--r--modules/protocol/inspircd20.cpp3
-rw-r--r--modules/protocol/plexus.cpp3
-rw-r--r--modules/protocol/ratbox.cpp3
-rw-r--r--src/init.cpp6
-rw-r--r--src/servers.cpp8
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
*/