From 67445d0e66bb04e26e25a381510f2114a24a089f Mon Sep 17 00:00:00 2001 From: brain Date: Sun, 6 Apr 2008 21:50:03 +0000 Subject: [PATCH] Remote map only works for opers. Fix problem where only part of the map is shown, and also restrict to opers only so that normal users cant use it to probe network routes git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9390 e03df62e-2008-0410-955e-edbf42e46eb7 --- src/modules/m_spanningtree/override_map.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/modules/m_spanningtree/override_map.cpp b/src/modules/m_spanningtree/override_map.cpp index 7963b45da..495b810f7 100644 --- a/src/modules/m_spanningtree/override_map.cpp +++ b/src/modules/m_spanningtree/override_map.cpp @@ -92,16 +92,16 @@ void ModuleSpanningTree::ShowMap(TreeServer* Current, User* user, int depth, cha ServerInstance->Logs->Log("map",DEBUG,"Hidden? %d HideULines? %d GetName %s", Current->GetChild(q)->Hidden, Utils->HideULines, Current->GetChild(q)->GetName().c_str()); if ((Current->GetChild(q)->Hidden) || ((Utils->HideULines) && (ServerInstance->ULine(Current->GetChild(q)->GetName().c_str())))) { - if (*user->oper) + if (*user->oper || !IS_LOCAL(user)) { - ShowMap(Current->GetChild(q),user,(Utils->FlatLinks && (!*user->oper)) ? depth : depth+2,matrix,totusers,totservers); + ShowMap(Current->GetChild(q),user,(Utils->FlatLinks && (!*user->oper || !IS_LOCAL(user))) ? depth : depth+2,matrix,totusers,totservers); ServerInstance->Logs->Log("map",DEBUG,"Show to oper"); } ServerInstance->Logs->Log("map",DEBUG,"Fall through"); } else { - ShowMap(Current->GetChild(q),user,(Utils->FlatLinks && (!*user->oper)) ? depth : depth+2,matrix,totusers,totservers); + ShowMap(Current->GetChild(q),user,(Utils->FlatLinks && (!*user->oper || !IS_LOCAL(user))) ? depth : depth+2,matrix,totusers,totservers); ServerInstance->Logs->Log("map",DEBUG,"Show to non oper"); } } @@ -121,7 +121,7 @@ void ModuleSpanningTree::ShowMap(TreeServer* Current, User* user, int depth, cha int ModuleSpanningTree::HandleMap(const char* const* parameters, int pcnt, User* user) { ServerInstance->Logs->Log("map",DEBUG,"HandleMap"); - if (pcnt > 0) + if ((pcnt > 0) && (IS_OPER(user))) { ServerInstance->Logs->Log("remotemap", DEBUG, "remote map request for %s", parameters[0]); -- 2.39.5