summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swiften/Network/EnvironmentProxyProvider.cpp')
-rw-r--r--Swiften/Network/EnvironmentProxyProvider.cpp10
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
22namespace Swift { 24namespace Swift {
@@ -38,7 +40,7 @@ HostAddressPort EnvironmentProxyProvider::getSOCKS5Proxy() const {
38HostAddressPort EnvironmentProxyProvider::getFromEnv(const char* envVarName, std::string proxyProtocol) { 40HostAddressPort 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