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 /Swiften/Network/NATPMPInterface.cpp | |
| 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
Diffstat (limited to 'Swiften/Network/NATPMPInterface.cpp')
| -rw-r--r-- | Swiften/Network/NATPMPInterface.cpp | 8 |
1 files changed, 3 insertions, 5 deletions
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 @@ -12,12 +12,10 @@ #include <Swiften/Network/NATPMPInterface.h> #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 // being defined somewhere. #include <natpmp.h> @@ -79,11 +77,11 @@ boost::optional<NATPortMapping> NATPMPInterface::addPortForward(unsigned short l if (sendnewportmappingrequest( &p->natpmp, 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>(); } int r = 0; @@ -102,21 +100,21 @@ boost::optional<NATPortMapping> NATPMPInterface::addPortForward(unsigned short l select(FD_SETSIZE, &fds, nullptr, nullptr, &timeout); r = readnatpmpresponseorretry(&p->natpmp, &response); } 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 { SWIFT_LOG(debug) << "Invalid NAT-PMP response." << std::endl; return boost::optional<NATPortMapping>(); } } 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; } int r = 0; |
Swift