/*
* InspIRCd -- Internet Relay Chat Daemon
*
+ * Copyright (C) 2014 Justin Crawford <Justasic@Gmail.com>
+ * Copyright (C) 2013-2014, 2017-2021 Sadie Powell <sadie@witchery.services>
+ * Copyright (C) 2013-2014, 2016 Attila Molnar <attilamolnar@hush.com>
+ * Copyright (C) 2012, 2019 Robby <robby@chatbelgie.be>
+ * Copyright (C) 2012, 2014 Adam <Adam@anope.org>
+ * Copyright (C) 2010 Craig Edwards <brain@inspircd.org>
* Copyright (C) 2009-2010 Daniel De Graaf <danieldg@inspircd.org>
+ * Copyright (C) 2009 Uli Schlachter <psychon@inspircd.org>
* Copyright (C) 2008-2009 Robin Burchell <robin+git@viroteck.net>
*
* This file is part of InspIRCd. InspIRCd is free software: you can
}
};
-// Not in a class due to circular dependancy hell.
+// Not in a class due to circular dependency hell.
static std::string permchannelsconf;
static bool WriteDatabase(PermChannel& permchanmode, Module* mod, bool save_listmodes)
{
return false;
}
- stream << "# This file is automatically generated by m_permchannels. Any changes will be overwritten." << std::endl
+ stream
+ << "# This file was automatically generated by the " << INSPIRCD_VERSION << " permchannels module on " << InspIRCd::TimeString(ServerInstance->Time()) << "." << std::endl
+ << "# Any changes to this file will be automatically overwritten." << std::endl
+ << std::endl
<< "<config format=\"xml\">" << std::endl;
const chan_hash& chans = ServerInstance->GetChans();
#ifdef _WIN32
remove(permchannelsconf.c_str());
#endif
- // Use rename to move temporary to new db - this is guarenteed not to fuck up, even in case of a crash.
+ // Use rename to move temporary to new db - this is guaranteed not to fuck up, even in case of a crash.
if (rename(permchannelsnewconf.c_str(), permchannelsconf.c_str()) < 0)
{
ServerInstance->Logs->Log(MODNAME, LOG_DEFAULT, "Cannot replace old database \"%s\" with new database \"%s\"! %s (%d)", permchannelsconf.c_str(), permchannelsnewconf.c_str(), strerror(errno), errno);
{
ConfigTag* tag = ServerInstance->Config->ConfValue("permchanneldb");
permchannelsconf = tag->getString("filename");
- save_listmodes = tag->getBool("listmodes");
+ save_listmodes = tag->getBool("listmodes", true);
SetInterval(tag->getDuration("saveperiod", 5));
if (!permchannelsconf.empty())
topicset = ServerInstance->Time();
std::string topicsetby = tag->getString("topicsetby");
if (topicsetby.empty())
- topicsetby = ServerInstance->Config->ServerName;
+ topicsetby = ServerInstance->Config->GetServerName();
c->SetTopic(ServerInstance->FakeClient, topic, topicset, &topicsetby);
}
Version GetVersion() CXX11_OVERRIDE
{
- return Version("Provides channel mode +P to provide permanent channels", VF_VENDOR);
+ return Version("Adds channel mode P (permanent) which prevents the channel from being deleted when the last user leaves.", VF_VENDOR);
}
ModResult OnChannelPreDelete(Channel *c) CXX11_OVERRIDE