diff options
author | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2008-04-06 21:50:03 +0000 |
---|---|---|
committer | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2008-04-06 21:50:03 +0000 |
commit | 67445d0e66bb04e26e25a381510f2114a24a089f (patch) | |
tree | b818f2e1acb2dc3e86f6bd326751940cd9027bc1 /src | |
parent | b5502c9aaf984dd8de34282b2f3e778e1d4ffec4 (diff) |
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
Diffstat (limited to 'src')
-rw-r--r-- | src/modules/m_spanningtree/override_map.cpp | 8 |
1 files 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]); |