X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fmodules%2Fm_spanningtree%2Ftreeserver.cpp;h=b51c21db65dacd3ef80d2e8bae6ad8833222bf25;hb=d379dcab405bd4b0542e3c645a2de3c1a27832b8;hp=ecde1726148c40f1735c639345ed41f4eb77db6c;hpb=9136136ac373a922cd0875f77d3212a419fb9100;p=user%2Fhenk%2Fcode%2Finspircd.git 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::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; + } } }