aboutsummaryrefslogtreecommitdiff
path: root/src/modules/m_spanningtree/treeserver.cpp
diff options
context:
space:
mode:
authorGravatar Attila Molnar2014-01-08 12:41:01 +0100
committerGravatar Attila Molnar2014-01-08 12:41:01 +0100
commitd379dcab405bd4b0542e3c645a2de3c1a27832b8 (patch)
treeb67b9882cf5ea9df81599732362f71106edc17c6 /src/modules/m_spanningtree/treeserver.cpp
parentAutomatically register and unregister mode watchers (diff)
Read uline state in spanningtree; remove ConfigReader::ulines
Diffstat (limited to 'src/modules/m_spanningtree/treeserver.cpp')
-rw-r--r--src/modules/m_spanningtree/treeserver.cpp21
1 files changed, 17 insertions, 4 deletions
diff --git a/src/modules/m_spanningtree/treeserver.cpp b/src/modules/m_spanningtree/treeserver.cpp
index ecde17261..b51c21db6 100644
--- a/src/modules/m_spanningtree/treeserver.cpp
+++ b/src/modules/m_spanningtree/treeserver.cpp
@@ -160,11 +160,24 @@ int TreeServer::QuitUsers(const std::string &reason)
void TreeServer::CheckULine()
{
uline = silentuline = false;
- std::map<irc::string, bool>::iterator it = ServerInstance->Config->ulines.find(GetName().c_str());
- if (it != ServerInstance->Config->ulines.end())
+
+ ConfigTagList tags = ServerInstance->Config->ConfTags("uline");
+ for (ConfigIter i = tags.first; i != tags.second; ++i)
{
- uline = true;
- silentuline = it->second;
+ ConfigTag* tag = i->second;
+ std::string server = tag->getString("server");
+ if (!strcasecmp(server.c_str(), GetName().c_str()))
+ {
+ if (this->IsRoot())
+ {
+ ServerInstance->Logs->Log(MODNAME, LOG_DEFAULT, "Servers should not uline themselves (at " + tag->getTagLocation() + ")");
+ return;
+ }
+
+ uline = true;
+ silentuline = tag->getBool("silent");
+ break;
+ }
}
}