/* stats p (show listening ports and registered clients on each) */
case 'p':
{
- std::map<int,int> pc;
- for (std::vector<userrec*>::const_iterator i = ServerInstance->local_users.begin(); i != ServerInstance->local_users.end(); i++)
- {
- userrec* t = (userrec*)(*i);
- if (t->registered == REG_ALL)
- pc[t->GetPort()]++;
- }
for (size_t i = 0; i < ServerInstance->Config->ports.size(); i++)
{
- 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;
- }
+ std::string ip = ServerInstance->Config->ports[i]->GetIP();
+ if (ip.empty())
+ ip = "*";
+
+ results.push_back(sn+" 249 "+user->nick+" :"+ ip + ":"+ConvToStr(ServerInstance->Config->ports[i]->GetPort())+" (client, " +
+ ServerInstance->Config->ports[i]->GetDescription() + ")");
}
}
break;
results.push_back(sn+" 249 "+user->nick+" :Channels(HASH_MAP) "+ConvToStr(ServerInstance->chanlist->size())+" ("+ConvToStr(ServerInstance->chanlist->size()*sizeof(chanrec))+" bytes)");
results.push_back(sn+" 249 "+user->nick+" :Commands(VECTOR) "+ConvToStr(ServerInstance->Parser->cmdlist.size())+" ("+ConvToStr(ServerInstance->Parser->cmdlist.size()*sizeof(command_t))+" bytes)");
#endif
+
if (!ServerInstance->Config->WhoWasGroupSize == 0 && !ServerInstance->Config->WhoWasMaxGroups == 0)
{
command_t* whowas_command = ServerInstance->Parser->GetHandler("WHOWAS");