]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/cmd_stats.cpp
Change around some dns stuff (dont use this yet)
[user/henk/code/inspircd.git] / src / cmd_stats.cpp
index 44755451dac0c06d3ef627a0f6c8089da8a69b7d..6d2efd047afa4cb639c564174a0da65092abba93 100644 (file)
@@ -29,19 +29,24 @@ extern "C" command_t* init_command(InspIRCd* Instance)
        return new cmd_stats(Instance);
 }
 
-void cmd_stats::Handle (const char** parameters, int pcnt, userrec *user)
+CmdResult cmd_stats::Handle (const char** parameters, int pcnt, userrec *user)
 {
-       string_list values;
-       DoStats(this->ServerInstance, *parameters[0], user, values);
-       for (size_t i = 0; i < values.size(); i++)
-               user->Write(":%s", values[i].c_str());
+       if (pcnt < 2)
+       {
+               string_list values;
+               DoStats(this->ServerInstance, *parameters[0], user, values);
+               for (size_t i = 0; i < values.size(); i++)
+                       user->Write(":%s", values[i].c_str());
+       }
+
+       return CMD_SUCCESS;
 }
 
 void DoStats(InspIRCd* ServerInstance, char statschar, userrec* user, string_list &results)
 {
        std::string sn = ServerInstance->Config->ServerName;
 
-       if ((*ServerInstance->Config->OperOnlyStats) && (strchr(ServerInstance->Config->OperOnlyStats,statschar)) && (!*user->oper))
+       if ((*ServerInstance->Config->UserStats) && (!*user->oper) && (!strchr(ServerInstance->Config->UserStats,statschar)))
        {
                results.push_back(sn+std::string(" 481 ")+user->nick+" :Permission denied - STATS "+statschar+" is oper-only");
                return;
@@ -92,7 +97,7 @@ void DoStats(InspIRCd* ServerInstance, char statschar, userrec* user, string_lis
                int idx = 0;
                for (user_hash::iterator i = ServerInstance->clientlist.begin(); i != ServerInstance->clientlist.end(); i++)
                {
-                       if (*i->second->oper)
+                       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: "+ConvToStr(ServerInstance->Time() - i->second->idle_lastmsg));
                                idx++;