]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/commands/cmd_stats.cpp
Put back different stats numerics for /stats g, /stats k etc
[user/henk/code/inspircd.git] / src / commands / cmd_stats.cpp
index fb2e32232859dc60ce727d8845440162a345ee71..767966caa7c4298b2e7a29cfad3dafcfb6183432 100644 (file)
@@ -47,6 +47,7 @@ CmdResult CommandStats::Handle (const char** parameters, int /* pcnt */, User *u
 DllExport void DoStats(InspIRCd* ServerInstance, char statschar, User* user, string_list &results)
 {
        std::string sn = ServerInstance->Config->ServerName;
+       int statsnumber = 0;
 
        if ((!*ServerInstance->Config->UserStats && !IS_OPER(user)) || (!IS_OPER(user) && !ServerInstance->ULine(user->server) && !strchr(ServerInstance->Config->UserStats,statschar)))
        {
@@ -92,7 +93,8 @@ DllExport void DoStats(InspIRCd* ServerInstance, char statschar, User* user, str
                        int idx = 0;
                        for (ClassVector::iterator i = ServerInstance->Config->Classes.begin(); i != ServerInstance->Config->Classes.end(); i++)
                        {
-                               results.push_back(sn+" 215 "+user->nick+" I NOMATCH * "+i->GetHost()+" "+ConvToStr(MAXCLIENTS)+" "+ConvToStr(idx)+" "+ServerInstance->Config->ServerName+" *");
+                               ConnectClass* c = *i;
+                               results.push_back(sn+" 215 "+user->nick+" I NOMATCH * "+c->GetHost()+" "+ConvToStr(MAXCLIENTS)+" "+ConvToStr(idx)+" "+ServerInstance->Config->ServerName+" *");
                                idx++;
                        }
                }
@@ -103,8 +105,9 @@ DllExport void DoStats(InspIRCd* ServerInstance, char statschar, User* user, str
                        int idx = 0;
                        for (ClassVector::iterator i = ServerInstance->Config->Classes.begin(); i != ServerInstance->Config->Classes.end(); i++)
                        {
-                               results.push_back(sn+" 218 "+user->nick+" Y "+ConvToStr(idx)+" "+ConvToStr(i->GetPingTime())+" 0 "+ConvToStr(i->GetSendqMax())+" :"+
-                                               ConvToStr(i->GetFlood())+" "+ConvToStr(i->GetRegTimeout()));
+                               ConnectClass* c = *i;
+                               results.push_back(sn+" 218 "+user->nick+" Y "+ConvToStr(idx)+" "+ConvToStr(c->GetPingTime())+" 0 "+ConvToStr(c->GetSendqMax())+" :"+
+                                               ConvToStr(c->GetFlood())+" "+ConvToStr(c->GetRegTimeout()));
                                idx++;
                        }
                }
@@ -138,23 +141,21 @@ DllExport void DoStats(InspIRCd* ServerInstance, char statschar, User* user, str
                break;
  
                case 'k':
-                       ServerInstance->XLines->stats_k(user,results);
-               break;
-
+                       statsnumber = 216;
                case 'g':
-                       ServerInstance->XLines->stats_g(user,results);
-               break;
-
+                       statsnumber = 223;
                case 'q':
-                       ServerInstance->XLines->stats_q(user,results);
-               break;
-
+                       statsnumber = 217;
                case 'Z':
-                       ServerInstance->XLines->stats_z(user,results);
-               break;
-
+                       statsnumber = 223;
                case 'e':
-                       ServerInstance->XLines->stats_e(user,results);
+               {
+                       if (!statsnumber)
+                               statsnumber = 223;
+                       std::string stat;
+                       stat += toupper(statschar);
+                       ServerInstance->XLines->InvokeStats(stat,statsnumber,user,results);
+               }
                break;
 
                /* stats m (list number of times each command has been used, plus bytecount) */