aboutsummaryrefslogtreecommitdiff
path: root/src/modules/m_ircv3_servertime.cpp
diff options
context:
space:
mode:
authorGravatar Sadie Powell2019-07-27 19:12:29 +0100
committerGravatar Sadie Powell2019-07-27 19:12:29 +0100
commitada6646b6546e936f5f9d91f63f9f9fc6f651ef5 (patch)
tree817e2f69b601d4bbf0ef720a69240050c915560d /src/modules/m_ircv3_servertime.cpp
parentRemove code relating to v3 API changes and v2 module compatibility. (diff)
parentImprove the "max connections exceeded" oper snotice. (diff)
Merge branch 'insp3' into master.
Diffstat (limited to 'src/modules/m_ircv3_servertime.cpp')
-rw-r--r--src/modules/m_ircv3_servertime.cpp16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/modules/m_ircv3_servertime.cpp b/src/modules/m_ircv3_servertime.cpp
index e7ab231e3..5fa099ece 100644
--- a/src/modules/m_ircv3_servertime.cpp
+++ b/src/modules/m_ircv3_servertime.cpp
@@ -20,8 +20,12 @@
#include "inspircd.h"
#include "modules/ircv3.h"
#include "modules/ircv3_servertime.h"
+#include "modules/server.h"
-class ServerTimeTag : public IRCv3::ServerTime::Manager, public IRCv3::CapTag<ServerTimeTag>
+class ServerTimeTag
+ : public IRCv3::ServerTime::Manager
+ , public IRCv3::CapTag<ServerTimeTag>
+ , public ServerProtocol::MessageEventListener
{
time_t lasttime;
long lasttimens;
@@ -45,6 +49,7 @@ class ServerTimeTag : public IRCv3::ServerTime::Manager, public IRCv3::CapTag<Se
ServerTimeTag(Module* mod)
: IRCv3::ServerTime::Manager(mod)
, IRCv3::CapTag<ServerTimeTag>(mod, "server-time", "time")
+ , ServerProtocol::MessageEventListener(mod)
, lasttime(0)
, lasttimens(0)
{
@@ -53,9 +58,18 @@ class ServerTimeTag : public IRCv3::ServerTime::Manager, public IRCv3::CapTag<Se
const std::string* GetValue(const ClientProtocol::Message& msg)
{
+ // Client protocol.
RefreshTimeString();
return &lasttimestring;
}
+
+ void OnBuildMessage(User* source, const char* command, ClientProtocol::TagMap& tags) override
+ {
+ // Server protocol.
+ RefreshTimeString();
+ tags.insert(std::make_pair(tagname, ClientProtocol::MessageTagData(this, lasttimestring)));
+ }
+
};
class ModuleIRCv3ServerTime : public Module