From: Peter Powell Date: Mon, 13 May 2019 18:32:39 +0000 (+0100) Subject: If a parent server is hidden then also hide its child servers. X-Git-Url: https://git.netwichtig.de/gitweb/?a=commitdiff_plain;h=b9e732f73b0cb8e1fde9181a8b5502927feaf339;p=user%2Fhenk%2Fcode%2Finspircd.git If a parent server is hidden then also hide its child servers. This should fix #851. --- diff --git a/src/modules/m_spanningtree/server.cpp b/src/modules/m_spanningtree/server.cpp index 0af91a0ed..13fd0b466 100644 --- a/src/modules/m_spanningtree/server.cpp +++ b/src/modules/m_spanningtree/server.cpp @@ -59,9 +59,8 @@ CmdResult CommandServer::HandleServer(TreeServer* ParentOfThis, Params& params) return CMD_FAILURE; } - - Link* lnk = Utils->FindLink(servername); - + TreeServer* route = ParentOfThis->GetRoute(); + Link* lnk = Utils->FindLink(route->GetName()); TreeServer* Node = new TreeServer(servername, description, sid, ParentOfThis, ParentOfThis->GetSocket(), lnk ? lnk->Hidden : false); HandleExtra(Node, params); @@ -85,8 +84,10 @@ void CommandServer::HandleExtra(TreeServer* newserver, Params& params) val.assign(prop, p+1, std::string::npos); } - if (key == "burst") + if (irc::equals(key, "burst")) newserver->BeginBurst(ConvToNum(val)); + else if (irc::equals(key, "hidden")) + newserver->Hidden = ConvToNum(val); } } @@ -230,5 +231,6 @@ CommandServer::Builder::Builder(TreeServer* server) push(server->GetID()); if (server->IsBursting()) push_property("burst", ConvToStr(server->StartBurst)); + push_property("hidden", ConvToStr(server->Hidden)); push_last(server->GetDesc()); }