summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swiften/Network/WindowsProxyProvider.cpp')
-rw-r--r--Swiften/Network/WindowsProxyProvider.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/Swiften/Network/WindowsProxyProvider.cpp b/Swiften/Network/WindowsProxyProvider.cpp
index 78bd72f..9a60bb4 100644
--- a/Swiften/Network/WindowsProxyProvider.cpp
+++ b/Swiften/Network/WindowsProxyProvider.cpp
@@ -17,6 +17,7 @@
17#include <stdlib.h> 17#include <stdlib.h>
18 18
19#include <boost/lexical_cast.hpp> 19#include <boost/lexical_cast.hpp>
20#include <boost/numeric/conversion/cast.hpp>
20 21
21#include <windows.h> 22#include <windows.h>
22 23
@@ -77,11 +78,11 @@ HostAddressPort WindowsProxyProvider::getAsHostAddressPort(std::string proxy) {
77 78
78 try { 79 try {
79 std::pair<std::string, std::string> tmp; 80 std::pair<std::string, std::string> tmp;
80 int port = 0; 81 unsigned short port = 0;
81 tmp = String::getSplittedAtFirst(proxy, ':'); 82 tmp = String::getSplittedAtFirst(proxy, ':');
82 // .c_str() is needed as tmp.second can include a \0 char which will end in an exception of the lexical cast. 83 // .c_str() is needed as tmp.second can include a \0 char which will end in an exception of the lexical cast.
83 // with .c_str() the \0 will not be part of the string which is to be casted 84 // with .c_str() the \0 will not be part of the string which is to be casted
84 port = boost::lexical_cast<int> (tmp.second.c_str()); 85 port = boost::numeric_cast<unsigned short>(boost::lexical_cast<int> (tmp.second.c_str()));
85 ret = HostAddressPort(HostAddress::fromString(tmp.first).get(), port); 86 ret = HostAddressPort(HostAddress::fromString(tmp.first).get(), port);
86 } 87 }
87 catch(...) { 88 catch(...) {