* no socket associated with it. Its version string is our own local version.
*/
TreeServer::TreeServer()
- : Server(ServerInstance->Config->ServerName)
- , Parent(NULL), Route(NULL), ServerDesc(ServerInstance->Config->ServerDesc)
+ : Server(ServerInstance->Config->ServerName, ServerInstance->Config->ServerDesc)
+ , Parent(NULL), Route(NULL)
, VersionString(ServerInstance->GetVersionString()), Socket(NULL), sid(ServerInstance->Config->GetSID()), ServerUser(ServerInstance->FakeClient)
, age(ServerInstance->Time()), Warned(false), bursting(false), UserCount(0), OperCount(0), rtt(0), StartBurst(0), Hidden(false)
{
* its ping counters so that it will be pinged one minute from now.
*/
TreeServer::TreeServer(const std::string& Name, const std::string& Desc, const std::string& id, TreeServer* Above, TreeSocket* Sock, bool Hide)
- : Server(Name)
- , Parent(Above), ServerDesc(Desc), Socket(Sock), sid(id), ServerUser(new FakeUser(id, this))
+ : Server(Name, Desc)
+ , Parent(Above), Socket(Sock), sid(id), ServerUser(new FakeUser(id, this))
, age(ServerInstance->Time()), Warned(false), bursting(true), UserCount(0), OperCount(0), rtt(0), Hidden(Hide)
{
CheckULine();
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;
+ }
}
}
return Route;
}
-const std::string& TreeServer::GetDesc()
-{
- return ServerDesc;
-}
-
const std::string& TreeServer::GetVersion()
{
return VersionString;