diff options
| author | Edwin Mons <edwin.mons@isode.com> | 2018-10-29 14:32:15 (GMT) |
|---|---|---|
| committer | Edwin Mons <edwin.mons@isode.com> | 2018-11-14 10:20:55 (GMT) |
| commit | 5758cc48f5f340132d19e79f647dd5d3ad8c54fc (patch) | |
| tree | d4c6d449344d99f333ee49b834ac76ab848b6e78 | |
| parent | 961a997b406cc1283f316c88bb0475e35e7cc9aa (diff) | |
| download | swift-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.cpp | 8 | ||||
| -rw-r--r-- | Swiften/Elements/StanzaAck.h | 4 | ||||
| -rw-r--r-- | Swiften/Parser/StanzaAckParser.cpp | 4 | ||||
| -rw-r--r-- | Swiften/StreamManagement/StanzaAckRequester.cpp | 6 | ||||
| -rw-r--r-- | Swiften/StreamManagement/StanzaAckResponder.cpp | 6 | ||||
| -rw-r--r-- | Swiften/StreamManagement/UnitTest/StanzaAckRequesterTest.cpp | 7 | ||||
| -rw-r--r-- | Swiften/StreamManagement/UnitTest/StanzaAckResponderTest.cpp | 7 |
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 | |||
| 11 | using namespace Swift; | 9 | using namespace Swift; |
| 12 | 10 | ||
| 13 | StanzaAck::~StanzaAck() { | 11 | StanzaAck::~StanzaAck() { |
| 14 | } | 12 | } |
| 15 | 13 | ||
| 16 | void StanzaAck::setHandledStanzasCount(int i) { | 14 | void 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 | ||
| 14 | namespace Swift { | 12 | namespace Swift { |
| 15 | 13 | ||
| 16 | static const unsigned int MAX_HANDLED_STANZA_COUNT = boost::numeric_cast<unsigned int>((1ULL<<32) - 1); | 14 | static const unsigned int MAX_HANDLED_STANZA_COUNT = static_cast<unsigned int>((1ULL<<32) - 1); |
| 17 | 15 | ||
| 18 | StanzaAckRequester::StanzaAckRequester() : lastHandledStanzasCount(0) { | 16 | StanzaAckRequester::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 | |||
| 11 | namespace Swift { | 9 | namespace Swift { |
| 12 | 10 | ||
| 13 | static const unsigned int MAX_HANDLED_STANZA_COUNT = boost::numeric_cast<unsigned int>((1ULL<<32) - 1); | 11 | static const unsigned int MAX_HANDLED_STANZA_COUNT = static_cast<unsigned int>((1ULL << 32) - 1); |
| 14 | 12 | ||
| 15 | StanzaAckResponder::StanzaAckResponder() : handledStanzasCount(0) { | 13 | StanzaAckResponder::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 | ||
Swift