summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swiften/Base/URL.cpp')
-rw-r--r--Swiften/Base/URL.cpp12
1 files changed, 6 insertions, 6 deletions
diff --git a/Swiften/Base/URL.cpp b/Swiften/Base/URL.cpp
index 3bc97ba..5c0f0d7 100644
--- a/Swiften/Base/URL.cpp
+++ b/Swiften/Base/URL.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (c) 2010-2016 Isode Limited. 2 * Copyright (c) 2010-2018 Isode Limited.
3 * All rights reserved. 3 * All rights reserved.
4 * See the COPYING file for more information. 4 * See the COPYING file for more information.
5 */ 5 */
@@ -11,7 +11,7 @@
11 11
12namespace Swift { 12namespace Swift {
13 13
14int URL::getPortOrDefaultPort(const URL& url) { 14unsigned short URL::getPortOrDefaultPort(const URL& url) {
15 if (url.getPort()) { 15 if (url.getPort()) {
16 return *url.getPort(); 16 return *url.getPort();
17 } 17 }
@@ -62,7 +62,7 @@ URL URL::fromString(const std::string& urlString) {
62 } 62 }
63 63
64 std::string host; 64 std::string host;
65 boost::optional<int> port; 65 boost::optional<unsigned short> port;
66 if (hostAndPort[0] == '[') { 66 if (hostAndPort[0] == '[') {
67 // handle IPv6 address literals 67 // handle IPv6 address literals
68 size_t addressEndIndex = hostAndPort.find(']'); 68 size_t addressEndIndex = hostAndPort.find(']');
@@ -71,9 +71,9 @@ URL URL::fromString(const std::string& urlString) {
71 colonIndex = hostAndPort.find(':', addressEndIndex); 71 colonIndex = hostAndPort.find(':', addressEndIndex);
72 if (colonIndex != std::string::npos) { 72 if (colonIndex != std::string::npos) {
73 try { 73 try {
74 port = boost::lexical_cast<int>(hostAndPort.substr(colonIndex + 1)); 74 port = boost::numeric_cast<unsigned short>(boost::lexical_cast<int>(hostAndPort.substr(colonIndex + 1)));
75 } 75 }
76 catch (const boost::bad_lexical_cast&) { 76 catch (...) {
77 return URL(); 77 return URL();
78 } 78 }
79 } 79 }
@@ -87,7 +87,7 @@ URL URL::fromString(const std::string& urlString) {
87 if (colonIndex != std::string::npos) { 87 if (colonIndex != std::string::npos) {
88 host = unescape(hostAndPort.substr(0, colonIndex)); 88 host = unescape(hostAndPort.substr(0, colonIndex));
89 try { 89 try {
90 port = boost::lexical_cast<int>(hostAndPort.substr(colonIndex + 1)); 90 port = boost::numeric_cast<unsigned short>(boost::lexical_cast<int>(hostAndPort.substr(colonIndex + 1)));
91 } 91 }
92 catch (const boost::bad_lexical_cast&) { 92 catch (const boost::bad_lexical_cast&) {
93 return URL(); 93 return URL();