diff options
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 @@ -19,2 +19,4 @@ +#include <boost/numeric/conversion/cast.hpp> + #include <Swiften/Base/Log.h> @@ -40,3 +42,3 @@ HostAddressPort EnvironmentProxyProvider::getFromEnv(const char* envVarName, std std::string address; - int port = 0; + unsigned short port = 0; @@ -48,3 +50,7 @@ HostAddressPort EnvironmentProxyProvider::getFromEnv(const char* envVarName, std address = address.substr(proxyProtocol.length(), address.length()); - port = atoi(address.substr(address.find(':') + 1, address.length()).c_str()); + try { + port = boost::numeric_cast<unsigned short>(atoi(address.substr(address.find(':') + 1, address.length()).c_str())); + } + catch (boost::numeric::bad_numeric_cast&) { + } address = address.substr(0, address.find(':')); |