diff options
author | Thiago Macieira <thiago.macieira@intel.com> | 2015-03-08 22:23:47 -0700 |
---|---|---|
committer | Thiago Macieira <thiago.macieira@intel.com> | 2015-03-14 01:15:21 +0000 |
commit | f5edf2b6fb20722bb63c8855793bc2552721748c (patch) | |
tree | dbb65ecf31a9fe6934befbca160c4cc6a0ddddf7 /src/network | |
parent | bc59424ed496f298fb7ebb4ed0d946e85aae12a7 (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.cpp | 2 | ||||
-rw-r--r-- | src/network/socket/qnativesocketengine_unix.cpp | 2 | ||||
-rw-r--r-- | src/network/socket/qnativesocketengine_win.cpp | 2 |
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)); |