]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/coremods/core_stats.cpp
Use a duration string for the idle time in `/STATS P`.
[user/henk/code/inspircd.git] / src / coremods / core_stats.cpp
index 9dddcb3a5f3df353ee727cde907d1729a28b9766..6ce733db7c4bdf47fbca37c61240573941f4e058 100644 (file)
@@ -117,10 +117,21 @@ void CommandStats::DoStats(Stats::Context& stats)
                        for (std::vector<ListenSocket*>::const_iterator i = ServerInstance->ports.begin(); i != ServerInstance->ports.end(); ++i)
                        {
                                ListenSocket* ls = *i;
+                               std::stringstream portentry;
+
                                const std::string type = ls->bind_tag->getString("type", "clients", 1);
-                               const std::string hook = ls->bind_tag->getString("ssl", "plaintext", 1);
+                               portentry << ls->bind_sa.str() << " (type: " << type;
+
+                               const std::string hook = ls->bind_tag->getString("hook");
+                               if (!hook.empty())
+                                       portentry << ", hook: " << hook;
+
+                               const std::string sslprofile = ls->bind_tag->getString("sslprofile", ls->bind_tag->getString("ssl"));
+                               if (!sslprofile.empty())
+                                       portentry << ", ssl profile: " << sslprofile;
 
-                               stats.AddRow(249, ls->bind_sa.str() + " (" + type + ", " + hook + ")");
+                               portentry << ')';
+                               stats.AddRow(249, portentry.str());
                        }
                }
                break;
@@ -185,8 +196,9 @@ void CommandStats::DoStats(Stats::Context& stats)
                                if (!oper->server->IsULine())
                                {
                                        LocalUser* lu = IS_LOCAL(oper);
-                                       stats.AddRow(249, oper->nick + " (" + oper->ident + "@" + oper->GetDisplayedHost() + ") Idle: " +
-                                                       (lu ? ConvToStr(ServerInstance->Time() - lu->idle_lastmsg) + " secs" : "unavailable"));
+                                       const std::string idle = lu ? InspIRCd::DurationString(ServerInstance->Time() - lu->idle_lastmsg) : "unavailable";
+                                       stats.AddRow(249, InspIRCd::Format("%s (%s@%s) Idle: %s", oper->nick.c_str(),
+                                               oper->ident.c_str(), oper->GetDisplayedHost().c_str(), idle.c_str()));
                                        idx++;
                                }
                        }