summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEdwin Mons <edwin.mons@isode.com>2018-10-29 16:28:14 (GMT)
committerEdwin Mons <edwin.mons@isode.com>2018-11-08 11:31:20 (GMT)
commitcf3d517763a3d74a2ec9fd6f7bdee8cbaee3550f (patch)
tree69e11e13ff2e5127d2cbfcc164be761cf104a1b2 /Swiften/Base/URL.cpp
parent5ce9e19ef0744f530a797c30a82e9723eb7ea306 (diff)
downloadswift-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/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();