]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_spanningtree/treeserver.cpp
Read uline state in spanningtree; remove ConfigReader::ulines
[user/henk/code/inspircd.git] / src / modules / m_spanningtree / treeserver.cpp
index ecde1726148c40f1735c639345ed41f4eb77db6c..b51c21db65dacd3ef80d2e8bae6ad8833222bf25 100644 (file)
@@ -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;
+               }
        }
 }