]> git.netwichtig.de Git - user/henk/code/inspircd.git/commitdiff
If a parent server is hidden then also hide its child servers.
authorPeter Powell <petpow@saberuk.com>
Mon, 13 May 2019 18:32:39 +0000 (19:32 +0100)
committerPeter Powell <petpow@saberuk.com>
Mon, 13 May 2019 23:58:52 +0000 (00:58 +0100)
This should fix #851.

src/modules/m_spanningtree/server.cpp

index 0af91a0ed35a020f0310bba22c5b5a384555f47f..13fd0b4664c70817b5f545776138860ed58058e2 100644 (file)
@@ -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<uint64_t>(val));
+               else if (irc::equals(key, "hidden"))
+                       newserver->Hidden = ConvToNum<bool>(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());
 }