]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/cmd_stats.cpp
Stability fix
[user/henk/code/inspircd.git] / src / cmd_stats.cpp
index 4f2de6dfeb2708b84610a23c5cc42debb7b7bfa6..871423a579bf601fe4481b1ebcb9ae848feb12dc 100644 (file)
  * ---------------------------------------------------
  */
 
-using namespace std;
-
 #include "inspircd_config.h"
 #include "inspircd.h"
-#include "inspircd_io.h"
-#include <time.h>
-#include <string>
-#ifdef GCC3
-#include <ext/hash_map>
-#else
-#include <hash_map>
-#endif
+#include "configreader.h"
+#include "hash_map.h"
 #include <sys/types.h>
 #include <sys/time.h>
 #include <sys/resource.h>
-#ifdef THREADED_DNS
-#include <pthread.h>
-#endif
 #ifndef RUSAGE_SELF
 #define   RUSAGE_SELF     0
 #define   RUSAGE_CHILDREN     -1
 #endif
-#include <map>
-#include <sstream>
-#include <vector>
-#include <deque>
 #include "users.h"
 #include "ctables.h"
 #include "globals.h"
@@ -55,33 +40,24 @@ using namespace std;
 #include "helperfuncs.h"
 #include "hashcomp.h"
 #include "socketengine.h"
-#include "typedefs.h"
 #include "command_parse.h"
-#include "cmd_stats.h"
+#include "commands/cmd_stats.h"
 
 extern ServerConfig* Config;
 extern InspIRCd* ServerInstance;
 extern int MODCOUNT;
-extern std::vector<Module*> modules;
-extern std::vector<ircd_module*> factory;
+extern ModuleList modules;
+extern FactoryList factory;
 extern time_t TIME;
 extern user_hash clientlist;
 extern chan_hash chanlist;
-extern std::vector<userrec*> all_opers;
-extern std::vector<userrec*> local_users;
-extern userrec* fd_ref_table[MAX_DESCRIPTORS];
 
-void cmd_stats::Handle (char **parameters, int pcnt, userrec *user)
+void cmd_stats::Handle (const char** parameters, int pcnt, userrec *user)
 {
        if (pcnt != 1)
        {
                return;
        }
-       if (parameters[0][1])
-       {
-               /* make the stats query 1 character long */
-               parameters[0][1] = 0;
-       }
 
        if ((*Config->OperOnlyStats) && (strchr(Config->OperOnlyStats,*parameters[0])) && (!*user->oper))
        {
@@ -205,12 +181,12 @@ void cmd_stats::Handle (char **parameters, int pcnt, userrec *user)
 
        if (*parameters[0] == 'T')
        {
-               WriteServ(user->fd,"249 Brain :accepts %d refused %d",ServerInstance->stats->statsAccept,ServerInstance->stats->statsRefused);
-               WriteServ(user->fd,"249 Brain :unknown commands %d",ServerInstance->stats->statsUnknown);
-               WriteServ(user->fd,"249 Brain :nick collisions %d",ServerInstance->stats->statsCollisions);
-               WriteServ(user->fd,"249 Brain :dns requests %d succeeded %d failed %d",ServerInstance->stats->statsDns,ServerInstance->stats->statsDnsGood,ServerInstance->stats->statsDnsBad);
-               WriteServ(user->fd,"249 Brain :connections %d",ServerInstance->stats->statsConnects);
-               WriteServ(user->fd,"249 Brain :bytes sent %dK recv %dK",(ServerInstance->stats->statsSent / 1024),(ServerInstance->stats->statsRecv / 1024));
+               WriteServ(user->fd,"249 %s :accepts %lu refused %lu",user->nick,ServerInstance->stats->statsAccept,ServerInstance->stats->statsRefused);
+               WriteServ(user->fd,"249 %s :unknown commands %lu",user->nick,ServerInstance->stats->statsUnknown);
+               WriteServ(user->fd,"249 %s :nick collisions %lu",user->nick,ServerInstance->stats->statsCollisions);
+               WriteServ(user->fd,"249 %s :dns requests %lu succeeded %lu failed %lu",user->nick,ServerInstance->stats->statsDns,ServerInstance->stats->statsDnsGood,ServerInstance->stats->statsDnsBad);
+               WriteServ(user->fd,"249 %s :connections %lu",user->nick,ServerInstance->stats->statsConnects);
+               WriteServ(user->fd,"249 %s :bytes sent %5.2fK recv %5.2fK",user->nick,ServerInstance->stats->statsSent / 1024,ServerInstance->stats->statsRecv / 1024);
        }
        
        /* stats o */