}
#ifdef _WIN32
- if (remove(permchannelsconf.c_str()))
- {
- ServerInstance->Logs->Log("m_permchannels",DEFAULT, "permchannels: Cannot remove old database! %s (%d)", strerror(errno), errno);
- ServerInstance->SNO->WriteToSnoMask('a', "database: cannot remove old database: %s (%d)", strerror(errno), errno);
- return false;
- }
+ 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.
if (rename(tempname.c_str(), permchannelsconf.c_str()) < 0)
{
PermChannel p;
bool dirty;
+ bool loaded;
bool save_listmodes;
public:
- ModulePermanentChannels() : p(this), dirty(false)
+ ModulePermanentChannels()
+ : p(this), dirty(false), loaded(false)
{
}
c->SetTopic(NULL, topic, true);
c->setby = tag->getString("topicsetby");
+ if (c->setby.empty())
+ c->setby = ServerInstance->Config->ServerName;
unsigned int topicset = tag->getInt("topicts");
// SetTopic() sets the topic TS to now, if there was no topicts saved then don't overwrite that with a 0
if (topicset > 0)
ServerInstance->Logs->Log("m_permchannels", DEBUG, "Added %s with topic %s", channel.c_str(), topic.c_str());
+ if (modes.find('P') == std::string::npos)
+ {
+ ServerInstance->Logs->Log("m_permchannels", DEFAULT, "%s (%s) does not have +P set in <permchannels:modes>; it will be deleted when empty!",
+ c->name.c_str(), tag->getTagLocation().c_str());
+ }
+
if (modes.empty())
continue;
// to be able to set the modes they provide (e.g.: m_stripcolor is inited after us)
// Prioritize() is called after all module initialization is complete, consequently
// all modes are available now
-
- static bool loaded = false;
if (loaded)
return;