diff options
author | J-P Nurmi <jpnurmi@digia.com> | 2014-06-05 22:26:44 +0200 |
---|---|---|
committer | J-P Nurmi <jpnurmi@digia.com> | 2014-06-05 22:26:44 +0200 |
commit | 0fcce50af009f97efa2a5c5f2c74415c92830962 (patch) | |
tree | f8abf0e4f445fed9480b426b2f856b50911f1210 /src/network/socket | |
parent | 74d46a669badc5bf32187686102ca4e644a3c0af (diff) | |
parent | c54f7720d09e7d00f3309736bbeaaa6a81967ec1 (diff) |
Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
mkspecs/features/qt.prf
src/plugins/platforms/xcb/qxcbwindow.h
src/tools/qdoc/qdocindexfiles.cpp
src/widgets/kernel/qwidget_qpa.cpp
Change-Id: I214f57b03bc2ff86cf3b7dfe2966168af93a5a67
Diffstat (limited to 'src/network/socket')
-rw-r--r-- | src/network/socket/qnativesocketengine_unix.cpp | 12 | ||||
-rw-r--r-- | src/network/socket/qnativesocketengine_win.cpp | 3 | ||||
-rw-r--r-- | src/network/socket/qnativesocketengine_winrt.cpp | 60 |
3 files changed, 39 insertions, 36 deletions
diff --git a/src/network/socket/qnativesocketengine_unix.cpp b/src/network/socket/qnativesocketengine_unix.cpp index 5e2fc1233d..472e0cb98c 100644 --- a/src/network/socket/qnativesocketengine_unix.cpp +++ b/src/network/socket/qnativesocketengine_unix.cpp @@ -111,13 +111,15 @@ static inline void qt_socket_getPortAndAddress(const qt_sockaddr *s, quint16 *po QHostAddress tmpAddress; tmpAddress.setAddress(tmp); *addr = tmpAddress; + if (s->a6.sin6_scope_id) { #ifndef QT_NO_IPV6IFNAME - char scopeid[IFNAMSIZ]; - if (::if_indextoname(s->a6.sin6_scope_id, scopeid)) { - addr->setScopeId(QLatin1String(scopeid)); - } else + char scopeid[IFNAMSIZ]; + if (::if_indextoname(s->a6.sin6_scope_id, scopeid)) { + addr->setScopeId(QLatin1String(scopeid)); + } else #endif - addr->setScopeId(QString::number(s->a6.sin6_scope_id)); + addr->setScopeId(QString::number(s->a6.sin6_scope_id)); + } } if (port) *port = ntohs(s->a6.sin6_port); diff --git a/src/network/socket/qnativesocketengine_win.cpp b/src/network/socket/qnativesocketengine_win.cpp index b1c9073eb9..138d046bfc 100644 --- a/src/network/socket/qnativesocketengine_win.cpp +++ b/src/network/socket/qnativesocketengine_win.cpp @@ -182,7 +182,8 @@ static inline void qt_socket_getPortAndAddress(SOCKET socketDescriptor, const qt if (address) { QHostAddress a; a.setAddress(tmp); - a.setScopeId(QString::number(sa6->sin6_scope_id)); + if (sa6->sin6_scope_id) + a.setScopeId(QString::number(sa6->sin6_scope_id)); *address = a; } if (port) diff --git a/src/network/socket/qnativesocketengine_winrt.cpp b/src/network/socket/qnativesocketengine_winrt.cpp index db1d3dc96b..8eb632ff63 100644 --- a/src/network/socket/qnativesocketengine_winrt.cpp +++ b/src/network/socket/qnativesocketengine_winrt.cpp @@ -124,10 +124,10 @@ struct SocketHandler Q_GLOBAL_STATIC(SocketHandler, gSocketHandler) -QString qt_QStringFromHSTRING(HSTRING string) +static inline QString qt_QStringFromHString(const HString &string) { UINT32 length; - PCWSTR rawString = WindowsGetStringRawBuffer(string, &length); + PCWSTR rawString = string.GetRawBuffer(&length); return QString::fromWCharArray(rawString, length); } @@ -604,13 +604,13 @@ qint64 QNativeSocketEngine::readDatagram(char *data, qint64 maxlen, QHostAddress for (int i = 0; i < d->pendingDatagrams.size(); ++i) { IDatagramSocketMessageReceivedEventArgs *arg = d->pendingDatagrams.at(i); ComPtr<IHostName> remoteHost; - HSTRING remoteHostString; - HSTRING remotePort; + HString remoteHostString; + HString remotePort; arg->get_RemoteAddress(&remoteHost); - arg->get_RemotePort(&remotePort); - remoteHost->get_CanonicalName(&remoteHostString); - returnAddress.setAddress(qt_QStringFromHSTRING(remoteHostString)); - returnPort = qt_QStringFromHSTRING(remotePort).toInt(); + arg->get_RemotePort(remotePort.GetAddressOf()); + remoteHost->get_CanonicalName(remoteHostString.GetAddressOf()); + returnAddress.setAddress(qt_QStringFromHString(remoteHostString)); + returnPort = qt_QStringFromHString(remotePort).toInt(); ComPtr<IDataReader> reader; arg->GetDataReader(&reader); if (!reader) @@ -1097,7 +1097,7 @@ bool QNativeSocketEnginePrivate::fetchConnectionParameters() if (socketType == QAbstractSocket::TcpSocket) { ComPtr<IHostName> hostName; - HSTRING tmpHString; + HString tmpHString; ComPtr<IStreamSocketInformation> info; if (FAILED(tcp->get_Information(&info))) { qWarning("QNativeSocketEnginePrivate::fetchConnectionParameters: Could not obtain socket info"); @@ -1105,28 +1105,28 @@ bool QNativeSocketEnginePrivate::fetchConnectionParameters() } info->get_LocalAddress(&hostName); if (hostName) { - hostName->get_CanonicalName(&tmpHString); - localAddress.setAddress(qt_QStringFromHSTRING(tmpHString)); - info->get_LocalPort(&tmpHString); - localPort = qt_QStringFromHSTRING(tmpHString).toInt(); + hostName->get_CanonicalName(tmpHString.GetAddressOf()); + localAddress.setAddress(qt_QStringFromHString(tmpHString)); + info->get_LocalPort(tmpHString.GetAddressOf()); + localPort = qt_QStringFromHString(tmpHString).toInt(); } if (!localPort && tcpListener) { ComPtr<IStreamSocketListenerInformation> listenerInfo = 0; tcpListener->get_Information(&listenerInfo); - listenerInfo->get_LocalPort(&tmpHString); - localPort = qt_QStringFromHSTRING(tmpHString).toInt(); + listenerInfo->get_LocalPort(tmpHString.GetAddressOf()); + localPort = qt_QStringFromHString(tmpHString).toInt(); localAddress == QHostAddress::Any; } info->get_RemoteAddress(&hostName); if (hostName) { - hostName->get_CanonicalName(&tmpHString); - peerAddress.setAddress(qt_QStringFromHSTRING(tmpHString)); - info->get_RemotePort(&tmpHString); - peerPort = qt_QStringFromHSTRING(tmpHString).toInt(); + hostName->get_CanonicalName(tmpHString.GetAddressOf()); + peerAddress.setAddress(qt_QStringFromHString(tmpHString)); + info->get_RemotePort(tmpHString.GetAddressOf()); + peerPort = qt_QStringFromHString(tmpHString).toInt(); } } else if (socketType == QAbstractSocket::UdpSocket) { ComPtr<IHostName> hostName; - HSTRING tmpHString; + HString tmpHString; ComPtr<IDatagramSocketInformation> info; if (FAILED(udp->get_Information(&info))) { qWarning("QNativeSocketEnginePrivate::fetchConnectionParameters: Could not obtain socket information"); @@ -1134,18 +1134,18 @@ bool QNativeSocketEnginePrivate::fetchConnectionParameters() } info->get_LocalAddress(&hostName); if (hostName) { - hostName->get_CanonicalName(&tmpHString); - localAddress.setAddress(qt_QStringFromHSTRING(tmpHString)); - info->get_LocalPort(&tmpHString); - localPort = qt_QStringFromHSTRING(tmpHString).toInt(); + hostName->get_CanonicalName(tmpHString.GetAddressOf()); + localAddress.setAddress(qt_QStringFromHString(tmpHString)); + info->get_LocalPort(tmpHString.GetAddressOf()); + localPort = qt_QStringFromHString(tmpHString).toInt(); } info->get_RemoteAddress(&hostName); if (hostName) { - hostName->get_CanonicalName(&tmpHString); - peerAddress.setAddress(qt_QStringFromHSTRING(tmpHString)); - info->get_RemotePort(&tmpHString); - peerPort = qt_QStringFromHSTRING(tmpHString).toInt(); + hostName->get_CanonicalName(tmpHString.GetAddressOf()); + peerAddress.setAddress(qt_QStringFromHString(tmpHString)); + info->get_RemotePort(tmpHString.GetAddressOf()); + peerPort = qt_QStringFromHString(tmpHString).toInt(); } } return true; @@ -1159,7 +1159,7 @@ HRESULT QNativeSocketEnginePrivate::handleBindCompleted(IAsyncAction *, AsyncSta HRESULT QNativeSocketEnginePrivate::handleClientConnection(IStreamSocketListener *listener, IStreamSocketListenerConnectionReceivedEventArgs *args) { Q_Q(QNativeSocketEngine); - Q_ASSERT(tcpListener.Get() == listener); + Q_UNUSED(listener) IStreamSocket *socket; args->get_Socket(&socket); pendingConnections.append(socket); @@ -1253,7 +1253,7 @@ HRESULT QNativeSocketEnginePrivate::handleWriteCompleted(IAsyncOperationWithProg HRESULT QNativeSocketEnginePrivate::handleNewDatagram(IDatagramSocket *socket, IDatagramSocketMessageReceivedEventArgs *args) { Q_Q(QNativeSocketEngine); - Q_ASSERT(udp == socket); + Q_UNUSED(socket) pendingDatagrams.append(args); emit q->readReady(); |