DllExport void DoStats(InspIRCd* ServerInstance, char statschar, User* user, string_list &results)
{
std::string sn = ServerInstance->Config->ServerName;
+ int statsnumber = 0;
if ((!*ServerInstance->Config->UserStats && !IS_OPER(user)) || (!IS_OPER(user) && !ServerInstance->ULine(user->server) && !strchr(ServerInstance->Config->UserStats,statschar)))
{
int idx = 0;
for (ClassVector::iterator i = ServerInstance->Config->Classes.begin(); i != ServerInstance->Config->Classes.end(); i++)
{
- results.push_back(sn+" 215 "+user->nick+" I NOMATCH * "+i->GetHost()+" "+ConvToStr(MAXCLIENTS)+" "+ConvToStr(idx)+" "+ServerInstance->Config->ServerName+" *");
+ ConnectClass* c = *i;
+ results.push_back(sn+" 215 "+user->nick+" I NOMATCH * "+c->GetHost()+" "+ConvToStr(MAXCLIENTS)+" "+ConvToStr(idx)+" "+ServerInstance->Config->ServerName+" *");
idx++;
}
}
int idx = 0;
for (ClassVector::iterator i = ServerInstance->Config->Classes.begin(); i != ServerInstance->Config->Classes.end(); i++)
{
- results.push_back(sn+" 218 "+user->nick+" Y "+ConvToStr(idx)+" "+ConvToStr(i->GetPingTime())+" 0 "+ConvToStr(i->GetSendqMax())+" :"+
- ConvToStr(i->GetFlood())+" "+ConvToStr(i->GetRegTimeout()));
+ ConnectClass* c = *i;
+ results.push_back(sn+" 218 "+user->nick+" Y "+ConvToStr(idx)+" "+ConvToStr(c->GetPingTime())+" 0 "+ConvToStr(c->GetSendqMax())+" :"+
+ ConvToStr(c->GetFlood())+" "+ConvToStr(c->GetRegTimeout()));
idx++;
}
}
break;
case 'k':
- ServerInstance->XLines->stats_k(user,results);
- break;
-
+ statsnumber = 216;
case 'g':
- ServerInstance->XLines->stats_g(user,results);
- break;
-
+ statsnumber = 223;
case 'q':
- ServerInstance->XLines->stats_q(user,results);
- break;
-
+ statsnumber = 217;
case 'Z':
- ServerInstance->XLines->stats_z(user,results);
- break;
-
+ statsnumber = 223;
case 'e':
- ServerInstance->XLines->stats_e(user,results);
+ {
+ if (!statsnumber)
+ statsnumber = 223;
+ std::string stat;
+ stat += toupper(statschar);
+ ServerInstance->XLines->InvokeStats(stat,statsnumber,user,results);
+ }
break;
/* stats m (list number of times each command has been used, plus bytecount) */