X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fstats.cpp;h=b7b92d9a6395f48f845723455cb6bf7a736ca968;hb=934d9a6a184b7a8600fcda30e012ba6f29f17b64;hp=d385112c298dbbd6cecca3416c77398052e739f0;hpb=f4472dd6dcdfbb5d4a2a50ddc615644c3b2c8145;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/stats.cpp b/src/stats.cpp index d385112c2..b7b92d9a6 100644 --- a/src/stats.cpp +++ b/src/stats.cpp @@ -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 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::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::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;