From 95f6cd0e720266733858d56b295548418cb86039 Mon Sep 17 00:00:00 2001 From: Shane Synan Date: Mon, 20 Jul 2020 20:48:28 -0400 Subject: [PATCH] core: Don't use "time" tag without "server-time" Don't use the "time" IrcTagKey without "server-time" being enabled. This ensures that if "server-time" isn't negotiated, e.g. due to skipping the capability, message timestamps won't be adjusted. According to the IRCv3 specifications, servers must not send the "time" tag without "server-time" being acknowledged, however it's probably better to handle the case where a server might send it unprompted. See https://ircv3.net/specs/extensions/server-time-3.2 --- src/core/ircparser.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core/ircparser.cpp b/src/core/ircparser.cpp index 3bd86913..ccd39505 100644 --- a/src/core/ircparser.cpp +++ b/src/core/ircparser.cpp @@ -119,7 +119,7 @@ void IrcParser::processNetworkIncoming(NetworkDataEvent* e) qDebug() << "IRC net" << net->networkId() << "<<" << tags << prefix << cmd << params; } - if (tags.contains(IrcTags::SERVER_TIME)) { + if (net->capEnabled(IrcCap::SERVER_TIME) && tags.contains(IrcTags::SERVER_TIME)) { QDateTime serverTime = QDateTime::fromString(tags[IrcTags::SERVER_TIME], "yyyy-MM-ddThh:mm:ss.zzzZ"); serverTime.setTimeSpec(Qt::UTC); if (serverTime.isValid()) { -- 2.20.1