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
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
-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 @@
1/* 1/*
2 * Copyright (c) 2013 Isode Limited. 2 * Copyright (c) 2013-2018 Isode Limited.
3 * All rights reserved. 3 * All rights reserved.
4 * See the COPYING file for more information. 4 * See the COPYING file for more information.
5 */ 5 */
6 6
7#include <Swiften/Elements/StanzaAck.h> 7#include <Swiften/Elements/StanzaAck.h>
8 8
9#include <boost/numeric/conversion/cast.hpp>
10
11using namespace Swift; 9using namespace Swift;
12 10
13StanzaAck::~StanzaAck() { 11StanzaAck::~StanzaAck() {
14} 12}
15 13
16void StanzaAck::setHandledStanzasCount(int i) { 14void StanzaAck::setHandledStanzasCount(unsigned int i) {
17 handledStanzasCount = boost::numeric_cast<unsigned int>(i); 15 handledStanzasCount = i;
18 valid = true; 16 valid = true;
19} 17}
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 @@
1/* 1/*
2 * Copyright (c) 2010-2016 Isode Limited. 2 * Copyright (c) 2010-2018 Isode Limited.
3 * All rights reserved. 3 * All rights reserved.
4 * See the COPYING file for more information. 4 * See the COPYING file for more information.
5 */ 5 */
@@ -24,7 +24,7 @@ namespace Swift {
24 return handledStanzasCount; 24 return handledStanzasCount;
25 } 25 }
26 26
27 void setHandledStanzasCount(int i); 27 void setHandledStanzasCount(unsigned int i);
28 28
29 bool isValid() const { 29 bool isValid() const {
30 return valid; 30 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 @@
1/* 1/*
2 * Copyright (c) 2010 Isode Limited. 2 * Copyright (c) 2010-2018 Isode Limited.
3 * All rights reserved. 3 * All rights reserved.
4 * See the COPYING file for more information. 4 * See the COPYING file for more information.
5 */ 5 */
@@ -17,7 +17,7 @@ void StanzaAckParser::handleStartElement(const std::string&, const std::string&,
17 if (depth == 0) { 17 if (depth == 0) {
18 std::string handledStanzasString = attributes.getAttribute("h"); 18 std::string handledStanzasString = attributes.getAttribute("h");
19 try { 19 try {
20 getElementGeneric()->setHandledStanzasCount(boost::lexical_cast<int>(handledStanzasString)); 20 getElementGeneric()->setHandledStanzasCount(boost::lexical_cast<unsigned int>(handledStanzasString));
21 } 21 }
22 catch (const boost::bad_lexical_cast &) { 22 catch (const boost::bad_lexical_cast &) {
23 } 23 }
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 @@
1/* 1/*
2 * Copyright (c) 2010-2016 Isode Limited. 2 * Copyright (c) 2010-2018 Isode Limited.
3 * All rights reserved. 3 * All rights reserved.
4 * See the COPYING file for more information. 4 * See the COPYING file for more information.
5 */ 5 */
6 6
7#include <Swiften/StreamManagement/StanzaAckRequester.h> 7#include <Swiften/StreamManagement/StanzaAckRequester.h>
8 8
9#include <boost/numeric/conversion/cast.hpp>
10
11#include <Swiften/Base/Log.h> 9#include <Swiften/Base/Log.h>
12#include <Swiften/Elements/Message.h> 10#include <Swiften/Elements/Message.h>
13 11
14namespace Swift { 12namespace Swift {
15 13
16static const unsigned int MAX_HANDLED_STANZA_COUNT = boost::numeric_cast<unsigned int>((1ULL<<32) - 1); 14static const unsigned int MAX_HANDLED_STANZA_COUNT = static_cast<unsigned int>((1ULL<<32) - 1);
17 15
18StanzaAckRequester::StanzaAckRequester() : lastHandledStanzasCount(0) { 16StanzaAckRequester::StanzaAckRequester() : lastHandledStanzasCount(0) {
19 17
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 @@
1/* 1/*
2 * Copyright (c) 2010 Isode Limited. 2 * Copyright (c) 2010-2018 Isode Limited.
3 * All rights reserved. 3 * All rights reserved.
4 * See the COPYING file for more information. 4 * See the COPYING file for more information.
5 */ 5 */
6 6
7#include <Swiften/StreamManagement/StanzaAckResponder.h> 7#include <Swiften/StreamManagement/StanzaAckResponder.h>
8 8
9#include <boost/numeric/conversion/cast.hpp>
10
11namespace Swift { 9namespace Swift {
12 10
13static const unsigned int MAX_HANDLED_STANZA_COUNT = boost::numeric_cast<unsigned int>((1ULL<<32) - 1); 11static const unsigned int MAX_HANDLED_STANZA_COUNT = static_cast<unsigned int>((1ULL << 32) - 1);
14 12
15StanzaAckResponder::StanzaAckResponder() : handledStanzasCount(0) { 13StanzaAckResponder::StanzaAckResponder() : handledStanzasCount(0) {
16} 14}
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 @@
1/* 1/*
2 * Copyright (c) 2010-2016 Isode Limited. 2 * Copyright (c) 2010-2018 Isode Limited.
3 * All rights reserved. 3 * All rights reserved.
4 * See the COPYING file for more information. 4 * See the COPYING file for more information.
5 */ 5 */
6 6
7#include <cstdint>
8
7#include <boost/bind.hpp> 9#include <boost/bind.hpp>
8#include <boost/numeric/conversion/cast.hpp>
9 10
10#include <cppunit/extensions/HelperMacros.h> 11#include <cppunit/extensions/HelperMacros.h>
11#include <cppunit/extensions/TestFactoryRegistry.h> 12#include <cppunit/extensions/TestFactoryRegistry.h>
@@ -111,7 +112,7 @@ class StanzaAckRequesterTest : public CppUnit::TestFixture {
111 // Handle stanza ack count wrapping, as per the XEP 112 // Handle stanza ack count wrapping, as per the XEP
112 void testHandleAckReceived_WrapAround() { 113 void testHandleAckReceived_WrapAround() {
113 std::shared_ptr<StanzaAckRequester> testling(createRequester()); 114 std::shared_ptr<StanzaAckRequester> testling(createRequester());
114 testling->lastHandledStanzasCount = boost::numeric_cast<unsigned int>((1ULL<<32) - 1); 115 testling->lastHandledStanzasCount = UINT32_MAX;
115 testling->handleStanzaSent(createMessage("m1")); 116 testling->handleStanzaSent(createMessage("m1"));
116 testling->handleStanzaSent(createMessage("m2")); 117 testling->handleStanzaSent(createMessage("m2"));
117 118
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 @@
1/* 1/*
2 * Copyright (c) 2010-2016 Isode Limited. 2 * Copyright (c) 2010-2018 Isode Limited.
3 * All rights reserved. 3 * All rights reserved.
4 * See the COPYING file for more information. 4 * See the COPYING file for more information.
5 */ 5 */
6 6
7#include <cstdint>
8
7#include <boost/bind.hpp> 9#include <boost/bind.hpp>
8#include <boost/numeric/conversion/cast.hpp>
9 10
10#include <cppunit/extensions/HelperMacros.h> 11#include <cppunit/extensions/HelperMacros.h>
11#include <cppunit/extensions/TestFactoryRegistry.h> 12#include <cppunit/extensions/TestFactoryRegistry.h>
@@ -63,7 +64,7 @@ class StanzaAckResponderTest : public CppUnit::TestFixture {
63 // Handle stanza ack count wrapping, as per the XEP 64 // Handle stanza ack count wrapping, as per the XEP
64 void testHandleAckRequestReceived_WrapAround() { 65 void testHandleAckRequestReceived_WrapAround() {
65 std::shared_ptr<StanzaAckResponder> testling(createResponder()); 66 std::shared_ptr<StanzaAckResponder> testling(createResponder());
66 testling->handledStanzasCount = boost::numeric_cast<unsigned int>((1ULL<<32) - 1); 67 testling->handledStanzasCount = UINT32_MAX;
67 testling->handleStanzaReceived(); 68 testling->handleStanzaReceived();
68 testling->handleStanzaReceived(); 69 testling->handleStanzaReceived();
69 70