]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/cmd_stats.cpp
Add comments
[user/henk/code/inspircd.git] / src / cmd_stats.cpp
index 9f90f06c44c1330317c7b13144e7d23757743d7b..40c0d4d7e81e9245ed7cd67704922a32e52c6fde 100644 (file)
@@ -61,22 +61,14 @@ DllExport void DoStats(InspIRCd* ServerInstance, char statschar, userrec* user,
                /* 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;
@@ -186,7 +178,6 @@ DllExport void DoStats(InspIRCd* ServerInstance, char statschar, userrec* user,
                        results.push_back(sn+" 249 "+user->nick+" :Commands(VECTOR) "+ConvToStr(ServerInstance->Parser->cmdlist.size())+" ("+ConvToStr(ServerInstance->Parser->cmdlist.size()*sizeof(command_t))+" bytes)");
 #endif
 
-#ifndef WIN32
                        if (!ServerInstance->Config->WhoWasGroupSize == 0 && !ServerInstance->Config->WhoWasMaxGroups == 0)
                        {
                                command_t* whowas_command = ServerInstance->Parser->GetHandler("WHOWAS");
@@ -198,13 +189,12 @@ DllExport void DoStats(InspIRCd* ServerInstance, char statschar, userrec* user,
                                        whowas_command->HandleInternal(WHOWAS_STATS, params);
                                        if (whowas_stats.GetExt("stats"))
                                        {
-                                               char* stats = NULL;
+                                               char* stats;
                                                whowas_stats.GetExt("stats", stats);
                                                results.push_back(sn+" 249 "+user->nick+" :"+ConvToStr(stats));
                                        }
                                }
                        }
-#endif
 
                        results.push_back(sn+" 249 "+user->nick+" :MOTD(VECTOR) "+ConvToStr(ServerInstance->Config->MOTD.size())+", RULES(VECTOR) "+ConvToStr(ServerInstance->Config->RULES.size()));
                        results.push_back(sn+" 249 "+user->nick+" :Modules(VECTOR) "+ConvToStr(ServerInstance->modules.size())+" ("+ConvToStr(ServerInstance->modules.size()*sizeof(Module))+" bytes)");