#else
if (signal == SIGHUP)
{
- Rehash("Caught SIGHUP");
+ ServerInstance->SNO->WriteGlobalSno('a', "Rehashing due to SIGHUP");
+ Rehash();
}
else if (signal == SIGTERM)
#endif
exit (status);
}
-void RehashHandler::Call(const std::string &reason)
+void InspIRCd::Rehash(const std::string& uuid)
{
- ServerInstance->SNO->WriteToSnoMask('a', "Rehashing config file %s %s",ServerConfig::CleanFilename(ServerInstance->ConfigFileName.c_str()), reason.c_str());
- FOREACH_MOD(OnGarbageCollect, ());
if (!ServerInstance->ConfigThread)
{
- ServerInstance->ConfigThread = new ConfigReaderThread("");
- ServerInstance->Threads->Start(ServerInstance->ConfigThread);
+ ServerInstance->ConfigThread = new ConfigReaderThread(uuid);
+ ServerInstance->Threads.Start(ServerInstance->ConfigThread);
}
}
std::string InspIRCd::GetVersionString(bool getFullVersion)
{
if (getFullVersion)
- return VERSION " " + Config->ServerName + " :" SYSTEM " [" REVISION "," + SE->GetName() + "," + Config->sid + "]";
- return BRANCH " " + Config->ServerName + " :" + Config->CustomVersion;
+ return INSPIRCD_VERSION " " + Config->ServerName + " :" INSPIRCD_SYSTEM " [" INSPIRCD_REVISION "," INSPIRCD_SOCKETENGINE_NAME "," + Config->sid + "]";
+ return INSPIRCD_BRANCH " " + Config->ServerName + " :" + Config->CustomVersion;
}
std::string UIDGenerator::GenerateSID(const std::string& servername, const std::string& serverdesc)
tokens["AWAYLEN"] = ConvToStr(ServerInstance->Config->Limits.MaxAway);
tokens["CASEMAPPING"] = "rfc1459";
- tokens["CHANMODES"] = ServerInstance->Modes->GiveModeList(MASK_CHANNEL);
+ tokens["CHANMODES"] = ServerInstance->Modes->GiveModeList(MODETYPE_CHANNEL);
tokens["CHANNELLEN"] = ConvToStr(ServerInstance->Config->Limits.ChanMax);
tokens["CHANTYPES"] = "#";
- tokens["CHARSET"] = "ascii";
tokens["ELIST"] = "MU";
tokens["KICKLEN"] = ConvToStr(ServerInstance->Config->Limits.MaxKick);
tokens["MAXBANS"] = "64"; // TODO: make this a config setting.
tokens["STATUSMSG"] = ServerInstance->Modes->BuildPrefixes(false);
tokens["TOPICLEN"] = ConvToStr(ServerInstance->Config->Limits.MaxTopic);
- tokens["FNC"] = tokens["MAP"] = tokens["VBANLIST"] =
- tokens["WALLCHOPS"] = tokens["WALLVOICES"];
+ tokens["FNC"] = tokens["VBANLIST"];
// Modules can add new tokens and also edit or remove existing tokens
FOREACH_MOD(On005Numeric, (tokens));
std::map<std::string, std::string>::iterator extban = tokens.find("EXTBAN");
if (extban != tokens.end())
{
- sort(extban->second.begin(), extban->second.end());
+ std::sort(extban->second.begin(), extban->second.end());
extban->second.insert(0, ",");
}
// Transform the map into a list of lines, ready to be sent to clients
- std::vector<std::string>& lines = this->Lines;
std::string line;
unsigned int token_count = 0;
- lines.clear();
+ cachedlines.clear();
for (std::map<std::string, std::string>::const_iterator it = tokens.begin(); it != tokens.end(); ++it)
{
// Reached maximum number of tokens for this line or the current token
// is the last one; finalize the line and store it for later use
line.append(":are supported by this server");
- lines.push_back(line);
+ cachedlines.push_back(line);
line.clear();
}
}
void ISupportManager::SendTo(LocalUser* user)
{
- for (std::vector<std::string>::const_iterator i = this->Lines.begin(); i != this->Lines.end(); ++i)
- user->WriteNumeric(RPL_ISUPPORT, "%s %s", user->nick.c_str(), i->c_str());
+ for (std::vector<std::string>::const_iterator i = cachedlines.begin(); i != cachedlines.end(); ++i)
+ user->WriteNumeric(RPL_ISUPPORT, *i);
}