summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAttila Molnar <attilamolnar@hush.com>2014-06-17 13:45:57 +0200
committerAttila Molnar <attilamolnar@hush.com>2014-06-17 13:45:57 +0200
commit782c8303d7dbf379e1cd807b59ec6a0ba701ca7d (patch)
treec0caac4cf1569bcaa645193c5ba397e4b331b50d
parentdaa907cb09e394cb88737ddef9299d0c4ba5ee98 (diff)
Update the description field in the Server object representing the local server on rehash
-rw-r--r--include/server.h9
-rw-r--r--src/configreader.cpp3
2 files changed, 10 insertions, 2 deletions
diff --git a/include/server.h b/include/server.h
index 3d8854734..e54a379bc 100644
--- a/include/server.h
+++ b/include/server.h
@@ -26,9 +26,10 @@ class CoreExport Server : public classbase
*/
const std::string name;
- /** The description of this server
+ /** The description of this server.
+ * This can be updated by the protocol module (for remote servers) or by a rehash (for the local server).
*/
- const std::string description;
+ std::string description;
/** True if this server is ulined
*/
@@ -38,6 +39,10 @@ class CoreExport Server : public classbase
*/
bool silentuline;
+ /** Allow ConfigReaderThread to update the description on a rehash
+ */
+ friend class ConfigReaderThread;
+
public:
Server(const std::string& srvname, const std::string& srvdesc)
: name(srvname), description(srvdesc), uline(false), silentuline(false) { }
diff --git a/src/configreader.cpp b/src/configreader.cpp
index 0ec53c482..a922543a3 100644
--- a/src/configreader.cpp
+++ b/src/configreader.cpp
@@ -783,6 +783,9 @@ void ConfigReaderThread::Finish()
for (ModuleManager::ModuleMap::const_iterator i = mods.begin(); i != mods.end(); ++i)
i->second->ReadConfig(status);
+ // The description of this server may have changed - update it for WHOIS etc.
+ ServerInstance->FakeClient->server->description = Config->ServerDesc;
+
ServerInstance->ISupport.Build();
ServerInstance->Logs->CloseLogs();