]> git.netwichtig.de Git - user/henk/code/inspircd.git/commitdiff
Test stuff to fix remote stats brokage
authorbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>
Sat, 24 Mar 2007 23:01:52 +0000 (23:01 +0000)
committerbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>
Sat, 24 Mar 2007 23:01:52 +0000 (23:01 +0000)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6710 e03df62e-2008-0410-955e-edbf42e46eb7

include/commands/cmd_stats.h
src/cmd_stats.cpp
src/modules/m_spanningtree/main.cpp

index 00fada76955a05c2494a320fb30e7089aebfc478..632bfa17bcfdc4c35fe685f19750a31b0cad0def 100644 (file)
@@ -30,7 +30,7 @@ void DoStats(InspIRCd* Instance, char statschar, userrec* user, string_list &res
 class cmd_stats : public command_t
 {
  public:
-        cmd_stats (InspIRCd* Instance) : command_t(Instance,"STATS",0,1) { syntax = "[<servername>] <stats-symbol>"; }
+        cmd_stats (InspIRCd* Instance) : command_t(Instance,"STATS",0,1) { syntax = "<stats-symbol> [<servername>]"; }
         CmdResult Handle(const char** parameters, int pcnt, userrec *user);
 };
 
index e2e94db4fcbff35595d3b53fe6412dc993b4ec65..7197b15df7cf2a021bfa44ea79963c380033ff8b 100644 (file)
@@ -28,7 +28,7 @@ extern "C" command_t* init_command(InspIRCd* Instance)
 
 CmdResult cmd_stats::Handle (const char** parameters, int pcnt, userrec *user)
 {
-       if (pcnt < 2)
+       if (IS_LOCAL(user))
        {
                string_list values;
                DoStats(this->ServerInstance, *parameters[0], user, values);
index 4fa165d10805b8ad441dd226796958e4be8c84d8..60d332c576a3f62c63286170295c3d0cda3a7e76 100644 (file)
@@ -241,19 +241,31 @@ int ModuleSpanningTree::HandleStats(const char** parameters, int pcnt, userrec*
 {
        if (pcnt > 1)
        {
+               ServerInstance->Log(DEBUG,"Match %s against %s", ServerInstance->Config->ServerName, parameters[1]);
+               if (match(ServerInstance->Config->ServerName, parameters[1]))
+               {
+                       ServerInstance->Log(DEBUG,"Matched %s against %s", ServerInstance->Config->ServerName, parameters[1]);
+                       return 0;
+               }
+
                /* Remote STATS, the server is within the 2nd parameter */
                std::deque<std::string> params;
                params.push_back(parameters[0]);
                params.push_back(parameters[1]);
                /* Send it out remotely, generate no reply yet */
+
                TreeServer* s = Utils->FindServerMask(parameters[1]);
                if (s)
                {
+                       ServerInstance->Log(DEBUG,"Found %s", s->GetName().c_str());
+
                        params[1] = s->GetName();
                        Utils->DoOneToOne(user->nick, "STATS", params, s->GetName());
                }
                else
-                       user->WriteServ( "402 %s %s :No such server", user->nick, parameters[0]);
+               {
+                       user->WriteServ( "402 %s %s :No such server", user->nick, parameters[1]);
+               }
                return 1;
        }
        return 0;