summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEdwin Mons <edwin.mons@isode.com>2018-11-09 08:51:10 (GMT)
committerEdwin Mons <edwin.mons@isode.com>2018-11-09 10:05:12 (GMT)
commita45eed2d826f60a20dfd1f4f06df37d1f83263f8 (patch)
tree7593509f9b89630ff70d5c9e1d14966435a4ab8a /Swiften
parent644db9fce94670e610db46bdd28eb9d1e658a798 (diff)
downloadswift-a45eed2d826f60a20dfd1f4f06df37d1f83263f8.zip
swift-a45eed2d826f60a20dfd1f4f06df37d1f83263f8.tar.bz2
Store NATPortMapping lifetime as uint32_t
The NAT-PMP RFC specifies lifetime as an unsigned, 32 bit integer, so using this internally makes sense. This also removes the need for casts in interface code. A slight bug in the NATPMPInterface implementation to remove a mapping has been addressed. Test-Information: Unit tests pass on macOS 10.13 Change-Id: I06687fd2735a8706f339f85d6c957ad7aadaaf02
Diffstat (limited to 'Swiften')
-rw-r--r--Swiften/Network/MiniUPnPInterface.cpp2
-rw-r--r--Swiften/Network/NATPMPInterface.cpp8
-rw-r--r--Swiften/Network/NATPortMapping.h8
3 files changed, 7 insertions, 11 deletions
diff --git a/Swiften/Network/MiniUPnPInterface.cpp b/Swiften/Network/MiniUPnPInterface.cpp
index af3b67c..8425c77 100644
--- a/Swiften/Network/MiniUPnPInterface.cpp
+++ b/Swiften/Network/MiniUPnPInterface.cpp
@@ -14,8 +14,6 @@
#include <memory>
-#include <boost/lexical_cast.hpp>
-
#include <miniupnpc.h>
#include <upnpcommands.h>
#include <upnperrors.h>
diff --git a/Swiften/Network/NATPMPInterface.cpp b/Swiften/Network/NATPMPInterface.cpp
index 8ab26d4..0c33c1f 100644
--- a/Swiften/Network/NATPMPInterface.cpp
+++ b/Swiften/Network/NATPMPInterface.cpp
@@ -14,8 +14,6 @@
#include <memory>
-#include <boost/numeric/conversion/cast.hpp>
-
#include <Swiften/Base/Log.h>
// This has to be included after the previous headers, because of WIN32 macro
@@ -81,7 +79,7 @@ boost::optional<NATPortMapping> NATPMPInterface::addPortForward(unsigned short l
mapping.getProtocol() == NATPortMapping::TCP ? NATPMP_PROTOCOL_TCP : NATPMP_PROTOCOL_UDP,
mapping.getLocalPort(),
mapping.getPublicPort(),
- boost::numeric_cast<uint32_t>(mapping.getLeaseInSeconds())) < 0) {
+ mapping.getLeaseInSeconds()) < 0) {
SWIFT_LOG(debug) << "Failed to send NAT-PMP port forwarding request!" << std::endl;
return boost::optional<NATPortMapping>();
}
@@ -104,7 +102,7 @@ boost::optional<NATPortMapping> NATPMPInterface::addPortForward(unsigned short l
} while(false /*r == NATPMP_TRYAGAIN*/);
if (r == 0) {
- NATPortMapping result(response.pnu.newportmapping.privateport, response.pnu.newportmapping.mappedpublicport, NATPortMapping::TCP, boost::numeric_cast<int>(response.pnu.newportmapping.lifetime));
+ NATPortMapping result(response.pnu.newportmapping.privateport, response.pnu.newportmapping.mappedpublicport, NATPortMapping::TCP, response.pnu.newportmapping.lifetime);
return result;
}
else {
@@ -114,7 +112,7 @@ boost::optional<NATPortMapping> NATPMPInterface::addPortForward(unsigned short l
}
bool NATPMPInterface::removePortForward(const NATPortMapping& mapping) {
- if (sendnewportmappingrequest(&p->natpmp, mapping.getProtocol() == NATPortMapping::TCP ? NATPMP_PROTOCOL_TCP : NATPMP_PROTOCOL_UDP, 0, 0, boost::numeric_cast<uint32_t>(mapping.getLocalPort())) < 0) {
+ if (sendnewportmappingrequest(&p->natpmp, mapping.getProtocol() == NATPortMapping::TCP ? NATPMP_PROTOCOL_TCP : NATPMP_PROTOCOL_UDP, mapping.getLocalPort(), 0, 0) < 0) {
SWIFT_LOG(debug) << "Failed to send NAT-PMP remove forwarding request!" << std::endl;
return false;
}
diff --git a/Swiften/Network/NATPortMapping.h b/Swiften/Network/NATPortMapping.h
index b68052d..bf0fb1c 100644
--- a/Swiften/Network/NATPortMapping.h
+++ b/Swiften/Network/NATPortMapping.h
@@ -5,7 +5,7 @@
*/
/*
- * Copyright (c) 2015 Isode Limited.
+ * Copyright (c) 2015-2018 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
@@ -23,7 +23,7 @@ namespace Swift {
UDP
};
- NATPortMapping(unsigned short localPort, unsigned short publicPort, Protocol protocol = TCP, int leaseInSeconds = 60 * 60 * 24) :
+ NATPortMapping(unsigned short localPort, unsigned short publicPort, Protocol protocol = TCP, uint32_t leaseInSeconds = 60 * 60 * 24) :
publicPort(publicPort), localPort(localPort), protocol(protocol), leaseInSeconds(leaseInSeconds) {
}
@@ -40,7 +40,7 @@ namespace Swift {
return protocol;
}
- int getLeaseInSeconds() const {
+ uint32_t getLeaseInSeconds() const {
return leaseInSeconds;
}
@@ -48,6 +48,6 @@ namespace Swift {
unsigned short publicPort;
unsigned short localPort;
Protocol protocol;
- int leaseInSeconds;
+ uint32_t leaseInSeconds;
};
}