diff options
author | Edwin Mons <edwin.mons@isode.com> | 2018-11-09 08:51:10 (GMT) |
---|---|---|
committer | Edwin Mons <edwin.mons@isode.com> | 2018-11-09 10:05:12 (GMT) |
commit | a45eed2d826f60a20dfd1f4f06df37d1f83263f8 (patch) | |
tree | 7593509f9b89630ff70d5c9e1d14966435a4ab8a | |
parent | 644db9fce94670e610db46bdd28eb9d1e658a798 (diff) | |
download | swift-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
-rw-r--r-- | Swiften/Network/MiniUPnPInterface.cpp | 2 | ||||
-rw-r--r-- | Swiften/Network/NATPMPInterface.cpp | 8 | ||||
-rw-r--r-- | Swiften/Network/NATPortMapping.h | 8 |
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; }; } |