diff options
| author | Edwin Mons <edwin.mons@isode.com> | 2018-10-29 16:28:14 (GMT) |
|---|---|---|
| committer | Edwin Mons <edwin.mons@isode.com> | 2018-11-08 11:31:20 (GMT) |
| commit | cf3d517763a3d74a2ec9fd6f7bdee8cbaee3550f (patch) | |
| tree | 69e11e13ff2e5127d2cbfcc164be761cf104a1b2 /Swiften/Network/EnvironmentProxyProvider.cpp | |
| parent | 5ce9e19ef0744f530a797c30a82e9723eb7ea306 (diff) | |
| download | swift-cf3d517763a3d74a2ec9fd6f7bdee8cbaee3550f.zip swift-cf3d517763a3d74a2ec9fd6f7bdee8cbaee3550f.tar.bz2 | |
Consistently use unsigned short for network ports
Network ports are now consistently stored as unsigned shorts, apart from
the options and user interface, where -1 is still used to denote the use
of default ports.
Test-Information:
Unit tests pass on macOS 10.13 and Debian 9
On macOS: tested the UI with various proxy and manual ports, behaviour
as expected.
Change-Id: I7a65f40083022887aa30ed7b21eadc56d0c52be1
Diffstat (limited to 'Swiften/Network/EnvironmentProxyProvider.cpp')
| -rw-r--r-- | Swiften/Network/EnvironmentProxyProvider.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/Swiften/Network/EnvironmentProxyProvider.cpp b/Swiften/Network/EnvironmentProxyProvider.cpp index 8edb136..65cf4ff 100644 --- a/Swiften/Network/EnvironmentProxyProvider.cpp +++ b/Swiften/Network/EnvironmentProxyProvider.cpp | |||
| @@ -17,6 +17,8 @@ | |||
| 17 | 17 | ||
| 18 | #include <iostream> | 18 | #include <iostream> |
| 19 | 19 | ||
| 20 | #include <boost/numeric/conversion/cast.hpp> | ||
| 21 | |||
| 20 | #include <Swiften/Base/Log.h> | 22 | #include <Swiften/Base/Log.h> |
| 21 | 23 | ||
| 22 | namespace Swift { | 24 | namespace Swift { |
| @@ -38,7 +40,7 @@ HostAddressPort EnvironmentProxyProvider::getSOCKS5Proxy() const { | |||
| 38 | HostAddressPort EnvironmentProxyProvider::getFromEnv(const char* envVarName, std::string proxyProtocol) { | 40 | HostAddressPort EnvironmentProxyProvider::getFromEnv(const char* envVarName, std::string proxyProtocol) { |
| 39 | char* envVar = nullptr; | 41 | char* envVar = nullptr; |
| 40 | std::string address; | 42 | std::string address; |
| 41 | int port = 0; | 43 | unsigned short port = 0; |
| 42 | 44 | ||
| 43 | envVar = getenv(envVarName); | 45 | envVar = getenv(envVarName); |
| 44 | 46 | ||
| @@ -46,7 +48,11 @@ HostAddressPort EnvironmentProxyProvider::getFromEnv(const char* envVarName, std | |||
| 46 | address = envVar != nullptr ? envVar : "0.0.0.0"; | 48 | address = envVar != nullptr ? envVar : "0.0.0.0"; |
| 47 | if(envVar != nullptr && address.compare(0, proxyProtocol.length(), proxyProtocol) == 0) { | 49 | if(envVar != nullptr && address.compare(0, proxyProtocol.length(), proxyProtocol) == 0) { |
| 48 | address = address.substr(proxyProtocol.length(), address.length()); | 50 | address = address.substr(proxyProtocol.length(), address.length()); |
| 49 | port = atoi(address.substr(address.find(':') + 1, address.length()).c_str()); | 51 | try { |
| 52 | port = boost::numeric_cast<unsigned short>(atoi(address.substr(address.find(':') + 1, address.length()).c_str())); | ||
| 53 | } | ||
| 54 | catch (boost::numeric::bad_numeric_cast&) { | ||
| 55 | } | ||
| 50 | address = address.substr(0, address.find(':')); | 56 | address = address.substr(0, address.find(':')); |
| 51 | } | 57 | } |
| 52 | 58 | ||
Swift