X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fcmd_stats.cpp;h=20c573f879850cf174354e6cdd7ba5075730686d;hb=8f9d0a68cd77b6a78eccfa7df9c1045d453ce581;hp=53c37181638a6d09fdb67de98b88552809d16798;hpb=3973b83ca279b9c45467afdf0ebf6091d04e4086;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/cmd_stats.cpp b/src/cmd_stats.cpp index 53c371816..20c573f87 100644 --- a/src/cmd_stats.cpp +++ b/src/cmd_stats.cpp @@ -2,10 +2,10 @@ * | Inspire Internet Relay Chat Daemon | * +------------------------------------+ * - * Inspire is copyright (C) 2002-2005 ChatSpike-Dev. + * InspIRCd is copyright (C) 2002-2006 ChatSpike-Dev. * E-mail: - * - * + * + * * * Written by Craig Edwards, Craig McLure, and others. * This program is free but copyrighted software; see @@ -14,32 +14,17 @@ * --------------------------------------------------- */ -using namespace std; - #include "inspircd_config.h" #include "inspircd.h" -#include "inspircd_io.h" -#include -#include -#ifdef GCC3 -#include -#else -#include -#endif +#include "configreader.h" +#include "hash_map.h" #include #include #include -#ifdef THREADED_DNS -#include -#endif #ifndef RUSAGE_SELF #define RUSAGE_SELF 0 #define RUSAGE_CHILDREN -1 #endif -#include -#include -#include -#include #include "users.h" #include "ctables.h" #include "globals.h" @@ -55,22 +40,17 @@ 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 modules; -extern std::vector factory; +extern ModuleList modules; +extern FactoryList factory; extern time_t TIME; extern user_hash clientlist; extern chan_hash chanlist; -extern whowas_hash whowas; -extern std::vector all_opers; -extern std::vector local_users; -extern userrec* fd_ref_table[65536]; void cmd_stats::Handle (char **parameters, int pcnt, userrec *user) { @@ -78,15 +58,15 @@ void cmd_stats::Handle (char **parameters, int pcnt, userrec *user) { return; } - if (strlen(parameters[0])>1) + if (parameters[0][1]) { /* make the stats query 1 character long */ - parameters[0][1] = '\0'; + parameters[0][1] = 0; } - if ((strchr(Config->OperOnlyStats,*parameters[0])) && (!*user->oper)) + if ((*Config->OperOnlyStats) && (strchr(Config->OperOnlyStats,*parameters[0])) && (!*user->oper)) { - WriteServ(user->fd,"481 %s :Permission denied - This stats character is set as oper-only"); + WriteServ(user->fd,"481 %s :Permission denied - STATS %c is oper-only",user->nick,*parameters[0]); return; } @@ -124,9 +104,9 @@ void cmd_stats::Handle (char **parameters, int pcnt, userrec *user) if (*parameters[0] == 'U') { char ulined[MAXBUF]; - for (int i = 0; i < Config->ConfValueEnum("uline",&Config->config_f); i++) + for (int i = 0; i < Config->ConfValueEnum(Config->config_data, "uline"); i++) { - Config->ConfValue("uline","server",i,ulined,&Config->config_f); + Config->ConfValue(Config->config_data, "uline","server", i, ulined, MAXBUF); WriteServ(user->fd,"248 %s U %s",user->nick,ulined); } } @@ -136,7 +116,7 @@ void cmd_stats::Handle (char **parameters, int pcnt, userrec *user) int idx = 0; for (user_hash::iterator i = clientlist.begin(); i != clientlist.end(); i++) { - if (strchr(i->second->modes,'o')) + if (*i->second->oper) { WriteServ(user->fd,"249 %s :%s (%s@%s) Idle: %d",user->nick,i->second->nick,i->second->ident,i->second->dhost,(TIME - i->second->idle_lastmsg)); idx++; @@ -206,25 +186,25 @@ 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 %d refused %d",user->nick,ServerInstance->stats->statsAccept,ServerInstance->stats->statsRefused); + WriteServ(user->fd,"249 %s :unknown commands %d",user->nick,ServerInstance->stats->statsUnknown); + WriteServ(user->fd,"249 %s :nick collisions %d",user->nick,ServerInstance->stats->statsCollisions); + WriteServ(user->fd,"249 %s :dns requests %d succeeded %d failed %d",user->nick,ServerInstance->stats->statsDns,ServerInstance->stats->statsDnsGood,ServerInstance->stats->statsDnsBad); + WriteServ(user->fd,"249 %s :connections %d",user->nick,ServerInstance->stats->statsConnects); + WriteServ(user->fd,"249 %s :bytes sent %dK recv %dK",user->nick,(ServerInstance->stats->statsSent / 1024),(ServerInstance->stats->statsRecv / 1024)); } /* stats o */ if (*parameters[0] == 'o') { - for (int i = 0; i < Config->ConfValueEnum("oper",&Config->config_f); i++) + for (int i = 0; i < Config->ConfValueEnum(Config->config_data, "oper"); i++) { char LoginName[MAXBUF]; char HostName[MAXBUF]; char OperType[MAXBUF]; - Config->ConfValue("oper","name",i,LoginName,&Config->config_f); - Config->ConfValue("oper","host",i,HostName,&Config->config_f); - Config->ConfValue("oper","type",i,OperType,&Config->config_f); + Config->ConfValue(Config->config_data, "oper","name", i, LoginName, MAXBUF); + Config->ConfValue(Config->config_data, "oper","host", i, HostName, MAXBUF); + Config->ConfValue(Config->config_data, "oper","type", i, OperType, MAXBUF); WriteServ(user->fd,"243 %s O %s * %s %s 0",user->nick,HostName,LoginName,OperType); } } @@ -271,6 +251,3 @@ void cmd_stats::Handle (char **parameters, int pcnt, userrec *user) WriteOpers("*** Notice: Stats '%s' requested by %s (%s@%s)",parameters[0],user->nick,user->ident,user->host); } - - -