summaryrefslogtreecommitdiffstats
path: root/src/network
diff options
context:
space:
mode:
authorThiago Macieira <thiago.macieira@intel.com>2015-03-08 22:23:47 -0700
committerThiago Macieira <thiago.macieira@intel.com>2015-03-14 01:15:21 +0000
commitf5edf2b6fb20722bb63c8855793bc2552721748c (patch)
treedbb65ecf31a9fe6934befbca160c4cc6a0ddddf7 /src/network
parentbc59424ed496f298fb7ebb4ed0d946e85aae12a7 (diff)
IPv6 scope IDs are unsigned
We need to make sure that a large scope ID saved in a QString does get converted properly back to an integer. Change-Id: Iee8cbc07c4434ce9b560ffff13c9bd0e9008bd9c Reviewed-by: Richard J. Moore <rich@kde.org>
Diffstat (limited to 'src/network')
-rw-r--r--src/network/kernel/qnetworkinterface_unix.cpp2
-rw-r--r--src/network/socket/qnativesocketengine_unix.cpp2
-rw-r--r--src/network/socket/qnativesocketengine_win.cpp2
3 files changed, 3 insertions, 3 deletions
diff --git a/src/network/kernel/qnetworkinterface_unix.cpp b/src/network/kernel/qnetworkinterface_unix.cpp
index 165d4eff7d..9c5ba4e799 100644
--- a/src/network/kernel/qnetworkinterface_unix.cpp
+++ b/src/network/kernel/qnetworkinterface_unix.cpp
@@ -100,7 +100,7 @@ static QHostAddress addressFromSockaddr(sockaddr *sa, int ifindex = 0, const QSt
address.setScopeId(QLatin1String(scopeid));
} else
#endif
- address.setScopeId(QString::number(scope));
+ address.setScopeId(QString::number(uint(scope)));
}
}
return address;
diff --git a/src/network/socket/qnativesocketengine_unix.cpp b/src/network/socket/qnativesocketengine_unix.cpp
index fe7864d7f3..e7056ad250 100644
--- a/src/network/socket/qnativesocketengine_unix.cpp
+++ b/src/network/socket/qnativesocketengine_unix.cpp
@@ -134,7 +134,7 @@ static inline uint makeScopeId(const QHostAddress &addr)
return 0;
bool ok;
- uint id = scopeid.toInt(&ok);
+ uint id = scopeid.toUInt(&ok);
#ifndef QT_NO_IPV6IFNAME
if (!ok)
id = ::if_nametoindex(scopeid.toLatin1());
diff --git a/src/network/socket/qnativesocketengine_win.cpp b/src/network/socket/qnativesocketengine_win.cpp
index a6e4b222cc..ab43f0a55e 100644
--- a/src/network/socket/qnativesocketengine_win.cpp
+++ b/src/network/socket/qnativesocketengine_win.cpp
@@ -209,7 +209,7 @@ void QNativeSocketEnginePrivate::setPortAndAddress(sockaddr_in * sockAddrIPv4, q
|| socketProtocol == QAbstractSocket::AnyIPProtocol) {
memset(sockAddrIPv6, 0, sizeof(qt_sockaddr_in6));
sockAddrIPv6->sin6_family = AF_INET6;
- sockAddrIPv6->sin6_scope_id = address.scopeId().toInt();
+ sockAddrIPv6->sin6_scope_id = address.scopeId().toUInt();
WSAHtons(socketDescriptor, port, &(sockAddrIPv6->sin6_port));
Q_IPV6ADDR tmp = address.toIPv6Address();
memcpy(&(sockAddrIPv6->sin6_addr.qt_s6_addr), &tmp, sizeof(tmp));