summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEdwin Mons <edwin.mons@isode.com>2018-10-29 14:32:15 (GMT)
committerEdwin Mons <edwin.mons@isode.com>2018-11-14 10:20:55 (GMT)
commit5758cc48f5f340132d19e79f647dd5d3ad8c54fc (patch)
treed4c6d449344d99f333ee49b834ac76ab848b6e78 /Swiften
parent961a997b406cc1283f316c88bb0475e35e7cc9aa (diff)
downloadswift-5758cc48f5f340132d19e79f647dd5d3ad8c54fc.zip
swift-5758cc48f5f340132d19e79f647dd5d3ad8c54fc.tar.bz2
Fix Stanza Ack maximum and tests
The stanza ack code now uses a constexpr without numeric cast to calculate the maximum, and test code uses the constant UINT32_MAX from limits, both of which should result in the same number. Test-Information: Unit tests pass on macOS 10.14 Change-Id: Iba8fc779e52699d480d1ce458df0c6581a16ad06
Diffstat (limited to 'Swiften')
-rw-r--r--Swiften/Elements/StanzaAck.cpp8
-rw-r--r--Swiften/Elements/StanzaAck.h4
-rw-r--r--Swiften/Parser/StanzaAckParser.cpp4
-rw-r--r--Swiften/StreamManagement/StanzaAckRequester.cpp6
-rw-r--r--Swiften/StreamManagement/StanzaAckResponder.cpp6
-rw-r--r--Swiften/StreamManagement/UnitTest/StanzaAckRequesterTest.cpp7
-rw-r--r--Swiften/StreamManagement/UnitTest/StanzaAckResponderTest.cpp7
7 files changed, 19 insertions, 23 deletions
diff --git a/Swiften/Elements/StanzaAck.cpp b/Swiften/Elements/StanzaAck.cpp
index bd0b78d..dda97f5 100644
--- a/Swiften/Elements/StanzaAck.cpp
+++ b/Swiften/Elements/StanzaAck.cpp
@@ -1,19 +1,17 @@
/*
- * Copyright (c) 2013 Isode Limited.
+ * Copyright (c) 2013-2018 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
#include <Swiften/Elements/StanzaAck.h>
-#include <boost/numeric/conversion/cast.hpp>
-
using namespace Swift;
StanzaAck::~StanzaAck() {
}
-void StanzaAck::setHandledStanzasCount(int i) {
- handledStanzasCount = boost::numeric_cast<unsigned int>(i);
+void StanzaAck::setHandledStanzasCount(unsigned int i) {
+ handledStanzasCount = i;
valid = true;
}
diff --git a/Swiften/Elements/StanzaAck.h b/Swiften/Elements/StanzaAck.h
index 68f0a2f..f664aca 100644
--- a/Swiften/Elements/StanzaAck.h
+++ b/Swiften/Elements/StanzaAck.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2010-2016 Isode Limited.
+ * Copyright (c) 2010-2018 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
@@ -24,7 +24,7 @@ namespace Swift {
return handledStanzasCount;
}
- void setHandledStanzasCount(int i);
+ void setHandledStanzasCount(unsigned int i);
bool isValid() const {
return valid;
diff --git a/Swiften/Parser/StanzaAckParser.cpp b/Swiften/Parser/StanzaAckParser.cpp
index de0287e..42ab181 100644
--- a/Swiften/Parser/StanzaAckParser.cpp
+++ b/Swiften/Parser/StanzaAckParser.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2010 Isode Limited.
+ * Copyright (c) 2010-2018 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
@@ -17,7 +17,7 @@ void StanzaAckParser::handleStartElement(const std::string&, const std::string&,
if (depth == 0) {
std::string handledStanzasString = attributes.getAttribute("h");
try {
- getElementGeneric()->setHandledStanzasCount(boost::lexical_cast<int>(handledStanzasString));
+ getElementGeneric()->setHandledStanzasCount(boost::lexical_cast<unsigned int>(handledStanzasString));
}
catch (const boost::bad_lexical_cast &) {
}
diff --git a/Swiften/StreamManagement/StanzaAckRequester.cpp b/Swiften/StreamManagement/StanzaAckRequester.cpp
index 8941f4a..a0f5b70 100644
--- a/Swiften/StreamManagement/StanzaAckRequester.cpp
+++ b/Swiften/StreamManagement/StanzaAckRequester.cpp
@@ -1,19 +1,17 @@
/*
- * Copyright (c) 2010-2016 Isode Limited.
+ * Copyright (c) 2010-2018 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
#include <Swiften/StreamManagement/StanzaAckRequester.h>
-#include <boost/numeric/conversion/cast.hpp>
-
#include <Swiften/Base/Log.h>
#include <Swiften/Elements/Message.h>
namespace Swift {
-static const unsigned int MAX_HANDLED_STANZA_COUNT = boost::numeric_cast<unsigned int>((1ULL<<32) - 1);
+static const unsigned int MAX_HANDLED_STANZA_COUNT = static_cast<unsigned int>((1ULL<<32) - 1);
StanzaAckRequester::StanzaAckRequester() : lastHandledStanzasCount(0) {
diff --git a/Swiften/StreamManagement/StanzaAckResponder.cpp b/Swiften/StreamManagement/StanzaAckResponder.cpp
index b6171d0..bfe6f4d 100644
--- a/Swiften/StreamManagement/StanzaAckResponder.cpp
+++ b/Swiften/StreamManagement/StanzaAckResponder.cpp
@@ -1,16 +1,14 @@
/*
- * Copyright (c) 2010 Isode Limited.
+ * Copyright (c) 2010-2018 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
#include <Swiften/StreamManagement/StanzaAckResponder.h>
-#include <boost/numeric/conversion/cast.hpp>
-
namespace Swift {
-static const unsigned int MAX_HANDLED_STANZA_COUNT = boost::numeric_cast<unsigned int>((1ULL<<32) - 1);
+static const unsigned int MAX_HANDLED_STANZA_COUNT = static_cast<unsigned int>((1ULL << 32) - 1);
StanzaAckResponder::StanzaAckResponder() : handledStanzasCount(0) {
}
diff --git a/Swiften/StreamManagement/UnitTest/StanzaAckRequesterTest.cpp b/Swiften/StreamManagement/UnitTest/StanzaAckRequesterTest.cpp
index ce16e1f..e0ebefd 100644
--- a/Swiften/StreamManagement/UnitTest/StanzaAckRequesterTest.cpp
+++ b/Swiften/StreamManagement/UnitTest/StanzaAckRequesterTest.cpp
@@ -1,11 +1,12 @@
/*
- * Copyright (c) 2010-2016 Isode Limited.
+ * Copyright (c) 2010-2018 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
+#include <cstdint>
+
#include <boost/bind.hpp>
-#include <boost/numeric/conversion/cast.hpp>
#include <cppunit/extensions/HelperMacros.h>
#include <cppunit/extensions/TestFactoryRegistry.h>
@@ -111,7 +112,7 @@ class StanzaAckRequesterTest : public CppUnit::TestFixture {
// Handle stanza ack count wrapping, as per the XEP
void testHandleAckReceived_WrapAround() {
std::shared_ptr<StanzaAckRequester> testling(createRequester());
- testling->lastHandledStanzasCount = boost::numeric_cast<unsigned int>((1ULL<<32) - 1);
+ testling->lastHandledStanzasCount = UINT32_MAX;
testling->handleStanzaSent(createMessage("m1"));
testling->handleStanzaSent(createMessage("m2"));
diff --git a/Swiften/StreamManagement/UnitTest/StanzaAckResponderTest.cpp b/Swiften/StreamManagement/UnitTest/StanzaAckResponderTest.cpp
index ffdabe9..ee4b913 100644
--- a/Swiften/StreamManagement/UnitTest/StanzaAckResponderTest.cpp
+++ b/Swiften/StreamManagement/UnitTest/StanzaAckResponderTest.cpp
@@ -1,11 +1,12 @@
/*
- * Copyright (c) 2010-2016 Isode Limited.
+ * Copyright (c) 2010-2018 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
+#include <cstdint>
+
#include <boost/bind.hpp>
-#include <boost/numeric/conversion/cast.hpp>
#include <cppunit/extensions/HelperMacros.h>
#include <cppunit/extensions/TestFactoryRegistry.h>
@@ -63,7 +64,7 @@ class StanzaAckResponderTest : public CppUnit::TestFixture {
// Handle stanza ack count wrapping, as per the XEP
void testHandleAckRequestReceived_WrapAround() {
std::shared_ptr<StanzaAckResponder> testling(createResponder());
- testling->handledStanzasCount = boost::numeric_cast<unsigned int>((1ULL<<32) - 1);
+ testling->handledStanzasCount = UINT32_MAX;
testling->handleStanzaReceived();
testling->handleStanzaReceived();