From: Shane Synan Date: Thu, 22 Sep 2016 01:24:48 +0000 (-0500) Subject: Keep old clients from removing message rate delay X-Git-Tag: travis-deploy-test~346 X-Git-Url: https://git.quassel-irc.org/?a=commitdiff_plain;h=4d0f5192217c70f1676707b918266b33c3e88ec7;p=quassel.git Keep old clients from removing message rate delay Add a guard against zero message delay in setMessageRateDelay, following the error-checking of setMessageRateBurstSize. This blocks old clients from setting message rate delay to 0 seconds for newly- created networks, improperly overriding the default of 2.2 seconds. This affects creating a network in an old client, switching to a new client, then enabling custom rate-limits. The supported method for removing rate limits by setting Unlimited to true still works. Resolves GH-252. --- diff --git a/src/common/network.cpp b/src/common/network.cpp index 4e14af4f..d768837f 100644 --- a/src/common/network.cpp +++ b/src/common/network.cpp @@ -707,9 +707,10 @@ void Network::setUseCustomMessageRate(bool useCustomRate) void Network::setMessageRateBurstSize(quint32 burstSize) { if (burstSize < 1) { - // Can't go slower than one message at a time - qWarning() << "Received invalid setMessageRateBurstSize data, cannot have zero message " - "burst size!" << burstSize; + // Can't go slower than one message at a time. Also blocks old clients from trying to set + // this to 0. + qWarning() << "Received invalid setMessageRateBurstSize data - message burst size must be " + "non-zero positive, given" << burstSize; return; } if (_messageRateBurstSize != burstSize) { @@ -723,6 +724,13 @@ void Network::setMessageRateBurstSize(quint32 burstSize) void Network::setMessageRateDelay(quint32 messageDelay) { + if (messageDelay == 0) { + // Nonsensical to have no delay - just check the Unlimited box instead. Also blocks old + // clients from trying to set this to 0. + qWarning() << "Received invalid setMessageRateDelay data - message delay must be non-zero " + "positive, given" << messageDelay; + return; + } if (_messageRateDelay != messageDelay) { _messageRateDelay = messageDelay; SYNC(ARG(messageDelay))