]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/commands/cmd_stats.cpp
Make xline expiry messages a bit clearer that the xline may have expired a while...
[user/henk/code/inspircd.git] / src / commands / cmd_stats.cpp
index b4e3d64be5ce3d3d825ddc701f821a58623205e3..aea34511cb7eadc70e4229b0f79fb4a06eb75d8d 100644 (file)
@@ -2,7 +2,7 @@
  *       | Inspire Internet Relay Chat Daemon |
  *       +------------------------------------+
  *
- *  InspIRCd: (C) 2002-2008 InspIRCd Development Team
+ *  InspIRCd: (C) 2002-2009 InspIRCd Development Team
  * See: http://www.inspircd.org/wiki/index.php/Credits
  *
  * This program is free but copyrighted software; see
@@ -39,7 +39,8 @@ CmdResult CommandStats::Handle (const std::vector<std::string>& parameters, User
        if (IS_LOCAL(user))
        {
                string_list values;
-               DoStats(this->ServerInstance, parameters[0][0], user, values);
+               char search = parameters[0].length() ? parameters[0][0] : 0;
+               DoStats(this->ServerInstance, search, user, values);
                for (size_t i = 0; i < values.size(); i++)
                        user->Write(":%s", values[i].c_str());
        }
@@ -51,13 +52,13 @@ DllExport void DoStats(InspIRCd* ServerInstance, char statschar, User* user, str
 {
        std::string sn(ServerInstance->Config->ServerName);
 
-       if ((!*ServerInstance->Config->UserStats && !IS_OPER(user)) || (!IS_OPER(user) && !ServerInstance->ULine(user->server) && !strchr(ServerInstance->Config->UserStats,statschar)))
+       if (!user->HasPrivPermission("servers/auspex") && !strchr(ServerInstance->Config->UserStats, statschar))
        {
                ServerInstance->SNO->WriteToSnoMask('t',
                                "%s '%c' denied for %s (%s@%s)",
                                (IS_LOCAL(user) ? "Stats" : "Remote stats"),
                                statschar, user->nick.c_str(), user->ident.c_str(), user->host.c_str());
-               results.push_back(sn + " 481 " + user->nick + " :Permission denied - STATS " + statschar + " is oper-only");
+               results.push_back(sn + " 481 " + user->nick + " :Permission denied - STATS " + statschar + " requires the servers/auspex priv.");
                return;
        }
        
@@ -88,11 +89,9 @@ DllExport void DoStats(InspIRCd* ServerInstance, char statschar, User* user, str
                }
                break;
 
+               /* These stats symbols must be handled by a linking module */
                case 'n':
                case 'c':
-               {
-                       /* This stats symbol must be handled by a linking module */
-               }
                break;
        
                case 'i':
@@ -114,7 +113,7 @@ DllExport void DoStats(InspIRCd* ServerInstance, char statschar, User* user, str
                        {
                                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()));
+                                               ConvToStr(c->GetRecvqMax())+" "+ConvToStr(c->GetRegTimeout()));
                                idx++;
                        }
                }