CmdResult cmd_stats::Handle (const char** parameters, int pcnt, userrec *user)
{
- if (pcnt < 2)
+ if (IS_LOCAL(user))
{
string_list values;
DoStats(this->ServerInstance, *parameters[0], user, values);
if (t->registered == REG_ALL)
pc[t->GetPort()]++;
}
- for (unsigned int i = 0; i < ServerInstance->stats->BoundPortCount; i++)
+ for (size_t i = 0; i < ServerInstance->Config->ports.size(); i++)
{
- results.push_back(sn+" 249 "+user->nick+" :p:"+ConvToStr(ServerInstance->Config->ports[i])+" (" + ConvToStr(pc[ServerInstance->Config->ports[i]])+" client" +
- (pc[ServerInstance->Config->ports[i]] != 1 ? "s" : "") + "), "+ServerInstance->Config->openSockfd[i]->GetDescription());
+ if (pc[ServerInstance->Config->ports[i]->GetPort()] >= 0)
+ {
+ results.push_back(sn+" 249 "+user->nick+" :p:"+ConvToStr(ServerInstance->Config->ports[i]->GetPort())+" (" +
+ ConvToStr(pc[ServerInstance->Config->ports[i]->GetPort()])+" client" + (pc[ServerInstance->Config->ports[i]->GetPort()] != 1 ? "s" : "") + "), "+
+ ServerInstance->Config->ports[i]->GetDescription());
+ pc[ServerInstance->Config->ports[i]->GetPort()] = -1;
+ }
}
}
break;
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: "+
- (IS_LOCAL(i->second) ? ConvToStr(ServerInstance->Time() - i->second->idle_lastmsg) : "unavailable"));
+ (IS_LOCAL(i->second) ? ConvToStr(ServerInstance->Time() - i->second->idle_lastmsg) + " secs" : "unavailable"));
idx++;
}
}
/* stats m (list number of times each command has been used, plus bytecount) */
case 'm':
- for (nspace::hash_map<std::string,command_t*>::iterator i = ServerInstance->Parser->cmdlist.begin(); i != ServerInstance->Parser->cmdlist.end(); i++)
+ for (command_table::iterator i = ServerInstance->Parser->cmdlist.begin(); i != ServerInstance->Parser->cmdlist.end(); i++)
{
if (i->second->use_count)
{