]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/stats.cpp
SendQ bugfixes
[user/henk/code/inspircd.git] / src / stats.cpp
index d385112c298dbbd6cecca3416c77398052e739f0..b7b92d9a6395f48f845723455cb6bf7a736ca968 100644 (file)
@@ -30,7 +30,7 @@ void InspIRCd::DoStats(char statschar, User* user, string_list &results)
        }
 
        ModResult MOD_RESULT;
-       FIRST_MOD_RESULT(this, OnStats, MOD_RESULT, (statschar, user, results));
+       FIRST_MOD_RESULT(OnStats, MOD_RESULT, (statschar, user, results));
        if (MOD_RESULT == MOD_RES_DENY)
        {
                results.push_back(sn+" 219 "+user->nick+" "+statschar+" :End of /STATS report");
@@ -79,7 +79,7 @@ void InspIRCd::DoStats(char statschar, User* user, string_list &results)
                        for (ClassVector::iterator i = this->Config->Classes.begin(); i != this->Config->Classes.end(); i++)
                        {
                                ConnectClass* c = *i;
-                               results.push_back(sn+" 218 "+user->nick+" Y "+ConvToStr(idx)+" "+ConvToStr(c->GetPingTime())+" 0 "+ConvToStr(c->GetSendqMax())+" :"+
+                               results.push_back(sn+" 218 "+user->nick+" Y "+ConvToStr(idx)+" "+ConvToStr(c->GetPingTime())+" 0 "+ConvToStr(c->GetSendqHardMax())+" :"+
                                                ConvToStr(c->GetRecvqMax())+" "+ConvToStr(c->GetRegTimeout()));
                                idx++;
                        }
@@ -157,19 +157,13 @@ void InspIRCd::DoStats(char statschar, User* user, string_list &results)
 
                        if (!this->Config->WhoWasGroupSize == 0 && !this->Config->WhoWasMaxGroups == 0)
                        {
-                               Command* whowas_command = this->Parser->GetHandler("WHOWAS");
-                               if (whowas_command)
+                               Module* whowas = Modules->Find("cmd_whowas.so");
+                               if (whowas)
                                {
-                                       std::deque<classbase*> params;
-                                       Extensible whowas_stats;
-                                       params.push_back(&whowas_stats);
-                                       whowas_command->HandleInternal(WHOWAS_STATS, params);
-                                       if (whowas_stats.GetExt("stats"))
-                                       {
-                                               char* statc;
-                                               whowas_stats.GetExt("stats", statc);
-                                               results.push_back(sn+" 249 "+user->nick+" :"+ConvToStr(statc));
-                                       }
+                                       WhowasRequest req(NULL, whowas, WhowasRequest::WHOWAS_STATS);
+                                       req.user = user;
+                                       req.Send();
+                                       results.push_back(sn+" 249 "+user->nick+" :"+req.value);
                                }
                        }
 
@@ -260,7 +254,7 @@ void InspIRCd::DoStats(char statschar, User* user, string_list &results)
                        for (std::vector<User*>::iterator n = this->Users->local_users.begin(); n != this->Users->local_users.end(); n++)
                        {
                                User* i = *n;
-                               results.push_back(sn+" 211 "+user->nick+" "+i->nick+"["+i->ident+"@"+i->dhost+"] "+ConvToStr(i->sendq.length())+" "+ConvToStr(i->cmds_out)+" "+ConvToStr(i->bytes_out)+" "+ConvToStr(i->cmds_in)+" "+ConvToStr(i->bytes_in)+" "+ConvToStr(this->Time() - i->age));
+                               results.push_back(sn+" 211 "+user->nick+" "+i->nick+"["+i->ident+"@"+i->dhost+"] "+ConvToStr(i->getSendQSize())+" "+ConvToStr(i->cmds_out)+" "+ConvToStr(i->bytes_out)+" "+ConvToStr(i->cmds_in)+" "+ConvToStr(i->bytes_in)+" "+ConvToStr(this->Time() - i->age));
                        }
                break;
 
@@ -270,7 +264,7 @@ void InspIRCd::DoStats(char statschar, User* user, string_list &results)
                        for (std::vector<User*>::iterator n = this->Users->local_users.begin(); n != this->Users->local_users.end(); n++)
                        {
                                User* i = *n;
-                               results.push_back(sn+" 211 "+user->nick+" "+i->nick+"["+i->ident+"@"+i->GetIPString()+"] "+ConvToStr(i->sendq.length())+" "+ConvToStr(i->cmds_out)+" "+ConvToStr(i->bytes_out)+" "+ConvToStr(i->cmds_in)+" "+ConvToStr(i->bytes_in)+" "+ConvToStr(this->Time() - i->age));
+                               results.push_back(sn+" 211 "+user->nick+" "+i->nick+"["+i->ident+"@"+i->GetIPString()+"] "+ConvToStr(i->getSendQSize())+" "+ConvToStr(i->cmds_out)+" "+ConvToStr(i->bytes_out)+" "+ConvToStr(i->cmds_in)+" "+ConvToStr(i->bytes_in)+" "+ConvToStr(this->Time() - i->age));
                        }
                break;