summaryrefslogtreecommitdiff
path: root/src/modules/m_chanlog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/modules/m_chanlog.cpp')
-rw-r--r--src/modules/m_chanlog.cpp9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/modules/m_chanlog.cpp b/src/modules/m_chanlog.cpp
index 85e7ca2eb..afe213f61 100644
--- a/src/modules/m_chanlog.cpp
+++ b/src/modules/m_chanlog.cpp
@@ -33,8 +33,7 @@ class ModuleChanLog : public Module
{
std::string snomasks;
std::string channel;
-
- logstreams.clear();
+ ChanLogTargets newlogs;
ConfigTagList tags = ServerInstance->Config->ConfTags("chanlog");
for (ConfigIter i = tags.first; i != tags.second; ++i)
@@ -44,16 +43,16 @@ class ModuleChanLog : public Module
if (channel.empty() || snomasks.empty())
{
- ServerInstance->Logs->Log(MODNAME, LOG_DEFAULT, "Malformed chanlog tag, ignoring");
- continue;
+ throw ModuleException("Malformed chanlog tag at " + i->second->getTagLocation());
}
for (std::string::const_iterator it = snomasks.begin(); it != snomasks.end(); it++)
{
- logstreams.insert(std::make_pair(*it, channel));
+ newlogs.insert(std::make_pair(*it, channel));
ServerInstance->Logs->Log(MODNAME, LOG_DEFAULT, "Logging %c to %s", *it, channel.c_str());
}
}
+ logstreams.swap(newlogs);
}