From: Manuel Nickschas Date: Fri, 24 Jan 2014 22:58:51 +0000 (+0100) Subject: DataStreamPeer: Send QDateTime instead of QTime in heartbeat messages X-Git-Tag: 0.10-beta1~25 X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=commitdiff_plain;h=9cefd598107fcb5dfe6cd100524ab016eae0dca0 DataStreamPeer: Send QDateTime instead of QTime in heartbeat messages This allows the lag detection to work correctly even during a day change. --- diff --git a/src/common/protocols/datastream/datastreampeer.cpp b/src/common/protocols/datastream/datastreampeer.cpp index acd0bc41..a14af642 100644 --- a/src/common/protocols/datastream/datastreampeer.cpp +++ b/src/common/protocols/datastream/datastreampeer.cpp @@ -361,11 +361,8 @@ void DataStreamPeer::handlePackedFunc(const QVariant &packedFunc) qWarning() << Q_FUNC_INFO << "Received invalid HeartBeat:" << params; return; } - // The legacy protocol would only send a QTime, no QDateTime - // so we assume it's sent today, which works in exactly the same cases as it did in the old implementation - QDateTime dateTime = QDateTime::currentDateTime().toUTC(); - dateTime.setTime(params[0].toTime()); - handle(Protocol::HeartBeat(dateTime)); + // Note: QDateTime instead of QTime as in the legacy protocol! + handle(Protocol::HeartBeat(params[0].toDateTime())); break; } case HeartBeatReply: { @@ -373,11 +370,8 @@ void DataStreamPeer::handlePackedFunc(const QVariant &packedFunc) qWarning() << Q_FUNC_INFO << "Received invalid HeartBeat:" << params; return; } - // The legacy protocol would only send a QTime, no QDateTime - // so we assume it's sent today, which works in exactly the same cases as it did in the old implementation - QDateTime dateTime = QDateTime::currentDateTime().toUTC(); - dateTime.setTime(params[0].toTime()); - handle(Protocol::HeartBeatReply(dateTime)); + // Note: QDateTime instead of QTime as in the legacy protocol! + handle(Protocol::HeartBeatReply(params[0].toDateTime())); break; } @@ -411,13 +405,13 @@ void DataStreamPeer::dispatch(const Protocol::InitData &msg) void DataStreamPeer::dispatch(const Protocol::HeartBeat &msg) { - dispatchPackedFunc(QVariantList() << (qint16)HeartBeat << msg.timestamp.time()); + dispatchPackedFunc(QVariantList() << (qint16)HeartBeat << msg.timestamp); } void DataStreamPeer::dispatch(const Protocol::HeartBeatReply &msg) { - dispatchPackedFunc(QVariantList() << (qint16)HeartBeatReply << msg.timestamp.time()); + dispatchPackedFunc(QVariantList() << (qint16)HeartBeatReply << msg.timestamp); }