diff options
Diffstat (limited to 'src/network/socket/qnativesocketengine_winrt.cpp')
| -rw-r--r-- | src/network/socket/qnativesocketengine_winrt.cpp | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/src/network/socket/qnativesocketengine_winrt.cpp b/src/network/socket/qnativesocketengine_winrt.cpp index 2d04946601d..4a92ca5a95a 100644 --- a/src/network/socket/qnativesocketengine_winrt.cpp +++ b/src/network/socket/qnativesocketengine_winrt.cpp @@ -538,18 +538,19 @@ qint64 QNativeSocketEngine::write(const char *data, qint64 len) return bytesWritten; } -qint64 QNativeSocketEngine::readDatagram(char *data, qint64 maxlen, QHostAddress *addr, quint16 *port) +qint64 QNativeSocketEngine::readDatagram(char *data, qint64 maxlen, QIpPacketHeader *header, + PacketHeaderOptions options) { Q_D(QNativeSocketEngine); - if (d->socketType != QAbstractSocket::UdpSocket || d->pendingDatagrams.isEmpty()) + if (d->socketType != QAbstractSocket::UdpSocket || d->pendingDatagrams.isEmpty()) { + if (header) + header->clear(); return -1; + } WinRtDatagram datagram = d->pendingDatagrams.takeFirst(); - if (addr) - *addr = datagram.address; - - if (port) - *port = datagram.port; + if (header) + *header = datagram.header; QByteArray readOrigin; // Do not read the whole datagram. Put the rest of it back into the "queue" @@ -564,7 +565,7 @@ qint64 QNativeSocketEngine::readDatagram(char *data, qint64 maxlen, QHostAddress return readOrigin.length(); } -qint64 QNativeSocketEngine::writeDatagram(const char *data, qint64 len, const QHostAddress &addr, quint16 port) +qint64 QNativeSocketEngine::writeDatagram(const char *data, qint64 len, const QIpPacketHeader &header) { Q_D(QNativeSocketEngine); if (d->socketType != QAbstractSocket::UdpSocket) @@ -1230,11 +1231,11 @@ HRESULT QNativeSocketEnginePrivate::handleNewDatagram(IDatagramSocket *socket, I remoteHost->get_CanonicalName(remoteHostString.GetAddressOf()); RETURN_OK_IF_FAILED("Could not obtain remote host's canonical name"); returnAddress.setAddress(qt_QStringFromHString(remoteHostString)); - datagram.address = returnAddress; + datagram.header.senderAddress = returnAddress; HString remotePort; hr = args->get_RemotePort(remotePort.GetAddressOf()); RETURN_OK_IF_FAILED("Could not obtain remote port"); - datagram.port = qt_QStringFromHString(remotePort).toInt(); + datagram.header.senderPort = qt_QStringFromHString(remotePort).toInt(); ComPtr<IDataReader> reader; hr = args->GetDataReader(&reader); |
