]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/cmd_stats.cpp
Skip certificate generation if we're running non-interactive
[user/henk/code/inspircd.git] / src / cmd_stats.cpp
index 201f9c0e23f7fd5108ba968fba8fc2c662c8dc78..614511bf98b727b4a742bf4f1e11c8211f0171be 100644 (file)
  * ---------------------------------------------------
  */
 
-#include "inspircd_config.h"
 #include "inspircd.h"
 #include "configreader.h"
-#include "hash_map.h"
-#include <sys/types.h>
-#include <sys/time.h>
 #include <sys/resource.h>
-#ifndef RUSAGE_SELF
-#define   RUSAGE_SELF     0
-#define   RUSAGE_CHILDREN     -1
-#endif
 #include "users.h"
-#include "ctables.h"
-#include "globals.h"
 #include "modules.h"
-#include "dynamic.h"
-#include "wildcard.h"
-#include "commands.h"
-#include "mode.h"
 #include "xline.h"
-#include "inspstring.h"
-
-#include "hashcomp.h"
-#include "socketengine.h"
-#include "command_parse.h"
 #include "commands/cmd_stats.h"
 
-void cmd_stats::Handle (const char** parameters, int pcnt, userrec *user)
+
+
+extern "C" command_t* init_command(InspIRCd* Instance)
+{
+       return new cmd_stats(Instance);
+}
+
+CmdResult cmd_stats::Handle (const char** parameters, int pcnt, userrec *user)
 {
        string_list values;
        DoStats(this->ServerInstance, *parameters[0], user, values);
        for (size_t i = 0; i < values.size(); i++)
                user->Write(":%s", values[i].c_str());
+
+       return CMD_SUCCESS;
 }
 
 void DoStats(InspIRCd* ServerInstance, char statschar, userrec* user, string_list &results)
@@ -104,7 +94,7 @@ void DoStats(InspIRCd* ServerInstance, char statschar, userrec* user, string_lis
                int idx = 0;
                for (user_hash::iterator i = ServerInstance->clientlist.begin(); i != ServerInstance->clientlist.end(); i++)
                {
-                       if (*i->second->oper)
+                       if ((*i->second->oper) && (!ServerInstance->ULine(i->second->server)))
                        {
                                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++;
@@ -163,7 +153,7 @@ void DoStats(InspIRCd* ServerInstance, char statschar, userrec* user, string_lis
                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(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))
+               if (!getrusage(0,&R))   /* RUSAGE_SELF */
                {
                        results.push_back(sn+" 249 "+user->nick+" :Total allocation: "+ConvToStr(R.ru_maxrss)+"K");
                        results.push_back(sn+" 249 "+user->nick+" :Signals:          "+ConvToStr(R.ru_nsignals));
@@ -253,7 +243,7 @@ void DoStats(InspIRCd* ServerInstance, char statschar, userrec* user, string_lis
        }
 
        results.push_back(sn+" 219 "+user->nick+" "+statschar+" :End of /STATS report");
-       ServerInstance->WriteOpers("*** Notice: %s '%c' requested by %s (%s@%s)",(!strcmp(user->server,ServerInstance->Config->ServerName) ? "Stats" : "Remote stats"),statschar,user->nick,user->ident,user->host);
+       ServerInstance->SNO->WriteToSnoMask('t',"%s '%c' requested by %s (%s@%s)",(!strcmp(user->server,ServerInstance->Config->ServerName) ? "Stats" : "Remote stats"),statschar,user->nick,user->ident,user->host);
 
        return;
 }