X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fcmd_stats.cpp;h=b3ae20a5ef81fd0773c5825fb44bd8dd4b29a344;hb=76ebc88ccd6fef0bf2d97b607829fb3466e273af;hp=194b8b24c29ebb853f603f36f5beb7b9d2679659;hpb=396c9ef9f7a96934d3227bb7d1d091315e3d4fa8;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/cmd_stats.cpp b/src/cmd_stats.cpp index 194b8b24c..b3ae20a5e 100644 --- a/src/cmd_stats.cpp +++ b/src/cmd_stats.cpp @@ -31,7 +31,6 @@ #include "modules.h" #include "dynamic.h" #include "wildcard.h" -#include "message.h" #include "commands.h" #include "mode.h" #include "xline.h" @@ -42,22 +41,15 @@ #include "command_parse.h" #include "commands/cmd_stats.h" -extern InspIRCd* ServerInstance; -extern InspIRCd* ServerInstance; -extern int MODCOUNT; -extern ModuleList modules; -extern FactoryList factory; -extern time_t TIME; - void cmd_stats::Handle (const char** parameters, int pcnt, userrec *user) { string_list values; - DoStats(*parameters[0], user, values); + DoStats(this->ServerInstance, *parameters[0], user, values); for (size_t i = 0; i < values.size(); i++) user->Write(":%s", values[i].c_str()); } -void DoStats(char statschar, userrec* user, string_list &results) +void DoStats(InspIRCd* ServerInstance, char statschar, userrec* user, string_list &results) { std::string sn = ServerInstance->Config->ServerName; @@ -114,7 +106,7 @@ void DoStats(char statschar, userrec* user, string_list &results) { if (*i->second->oper) { - results.push_back(sn+" 249 "+user->nick+" :"+i->second->nick+" ("+i->second->ident+"@"+i->second->dhost+") Idle: "+ConvToStr(TIME - i->second->idle_lastmsg)); + results.push_back(sn+" 249 "+user->nick+" :"+i->second->nick+" ("+i->second->ident+"@"+i->second->dhost+") Idle: "+ConvToStr(ServerInstance->Time() - i->second->idle_lastmsg)); idx++; } } @@ -164,12 +156,13 @@ void DoStats(char statschar, userrec* user, string_list &results) if (statschar == 'z') { rusage R; + results.push_back(sn+" 240 "+user->nick+" :InspIRCd(CLASS) "+ConvToStr(sizeof(InspIRCd))+" bytes"); results.push_back(sn+" 249 "+user->nick+" :Users(HASH_MAP) "+ConvToStr(ServerInstance->clientlist.size())+" ("+ConvToStr(ServerInstance->clientlist.size()*sizeof(userrec))+" bytes, "+ConvToStr(ServerInstance->clientlist.bucket_count())+" buckets)"); results.push_back(sn+" 249 "+user->nick+" :Channels(HASH_MAP) "+ConvToStr(ServerInstance->chanlist.size())+" ("+ConvToStr(ServerInstance->chanlist.size()*sizeof(chanrec))+" bytes, "+ConvToStr(ServerInstance->chanlist.bucket_count())+" buckets)"); results.push_back(sn+" 249 "+user->nick+" :Commands(VECTOR) "+ConvToStr(ServerInstance->Parser->cmdlist.size())+" ("+ConvToStr(ServerInstance->Parser->cmdlist.size()*sizeof(command_t))+" bytes)"); results.push_back(sn+" 249 "+user->nick+" :MOTD(VECTOR) "+ConvToStr(ServerInstance->Config->MOTD.size())+", RULES(VECTOR) "+ConvToStr(ServerInstance->Config->RULES.size())); - results.push_back(sn+" 249 "+user->nick+" :Modules(VECTOR) "+ConvToStr(modules.size())+" ("+ConvToStr(modules.size()*sizeof(Module))+")"); - results.push_back(sn+" 249 "+user->nick+" :ClassFactories(VECTOR) "+ConvToStr(factory.size())+" ("+ConvToStr(factory.size()*sizeof(ircd_module))+")"); + results.push_back(sn+" 249 "+user->nick+" :Modules(VECTOR) "+ConvToStr(ServerInstance->modules.size())+" ("+ConvToStr(ServerInstance->modules.size()*sizeof(Module))+")"); + results.push_back(sn+" 249 "+user->nick+" :ClassFactories(VECTOR) "+ConvToStr(ServerInstance->factory.size())+" ("+ConvToStr(ServerInstance->factory.size()*sizeof(ircd_module))+")"); if (!getrusage(RUSAGE_SELF,&R)) { results.push_back(sn+" 249 "+user->nick+" :Total allocation: "+ConvToStr(R.ru_maxrss)+"K"); @@ -214,9 +207,9 @@ void DoStats(char statschar, userrec* user, string_list &results) for (std::vector::iterator n = ServerInstance->local_users.begin(); n != ServerInstance->local_users.end(); n++) { userrec* i = *n; - if (isnick(i->nick)) + if (ServerInstance->IsNick(i->nick)) { - 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(TIME - i->age)); + 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(ServerInstance->Time() - i->age)); } } } @@ -228,9 +221,9 @@ void DoStats(char statschar, userrec* user, string_list &results) for (std::vector::iterator n = ServerInstance->local_users.begin(); n != ServerInstance->local_users.end(); n++) { userrec* i = *n; - if (isnick(i->nick)) + if (ServerInstance->IsNick(i->nick)) { - 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(TIME - i->age)); + 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(ServerInstance->Time() - i->age)); } } } @@ -239,7 +232,7 @@ void DoStats(char statschar, userrec* user, string_list &results) if (statschar == 'u') { time_t current_time = 0; - current_time = TIME; + current_time = ServerInstance->Time(); time_t server_uptime = current_time - ServerInstance->startup_time; struct tm* stime; stime = gmtime(&server_uptime);