diff options
author | Alex Trotsenko <alex1973tr@gmail.com> | 2016-08-02 14:51:56 +0300 |
---|---|---|
committer | Alex Trotsenko <alex1973tr@gmail.com> | 2016-08-03 06:21:47 +0000 |
commit | 733c4de36e71fa58dc444a181d725bfa46699a16 (patch) | |
tree | 0879ae3c0c165d9fb5ccebf750ce01abec0ad03c /src/network | |
parent | c0637c02980a20343f877a24869ec539d05e4546 (diff) |
Fix some syntax issues in SCTP implementation
Change-Id: I718fd060e313d544a5470fa20183db04ef89b1ca
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Diffstat (limited to 'src/network')
-rw-r--r-- | src/network/kernel/qnetworkproxy_win.cpp | 3 | ||||
-rw-r--r-- | src/network/socket/qnativesocketengine_unix.cpp | 4 | ||||
-rw-r--r-- | src/network/socket/qsctpsocket.cpp | 8 |
3 files changed, 10 insertions, 5 deletions
diff --git a/src/network/kernel/qnetworkproxy_win.cpp b/src/network/kernel/qnetworkproxy_win.cpp index c022c718cf..949f9fe12b 100644 --- a/src/network/kernel/qnetworkproxy_win.cpp +++ b/src/network/kernel/qnetworkproxy_win.cpp @@ -288,7 +288,8 @@ static QList<QNetworkProxy> parseServerList(const QNetworkProxyQuery &query, con QHash<QString, QNetworkProxy> taggedProxies; const QString requiredTag = query.protocolTag(); // windows tags are only for clients - bool checkTags = !requiredTag.isEmpty() && query.queryType() != QNetworkProxyQuery::TcpServer + bool checkTags = !requiredTag.isEmpty() + && query.queryType() != QNetworkProxyQuery::TcpServer && query.queryType() != QNetworkProxyQuery::SctpServer; for (const QString &entry : proxyList) { int server = 0; diff --git a/src/network/socket/qnativesocketengine_unix.cpp b/src/network/socket/qnativesocketengine_unix.cpp index 2a9d600630..d7d7dad8e7 100644 --- a/src/network/socket/qnativesocketengine_unix.cpp +++ b/src/network/socket/qnativesocketengine_unix.cpp @@ -915,7 +915,7 @@ qint64 QNativeSocketEnginePrivate::nativeReceiveDatagram(char *data, qint64 maxS if (recvResult == -1) { switch (errno) { -#if EWOULDBLOCK-0 && EWOULDBLOCK != EAGAIN +#if defined(EWOULDBLOCK) && EWOULDBLOCK != EAGAIN case EWOULDBLOCK: #endif case EAGAIN: @@ -1105,7 +1105,7 @@ qint64 QNativeSocketEnginePrivate::nativeSendDatagram(const char *data, qint64 l if (sentBytes < 0) { switch (errno) { -#if EWOULDBLOCK-0 && EWOULDBLOCK != EAGAIN +#if defined(EWOULDBLOCK) && EWOULDBLOCK != EAGAIN case EWOULDBLOCK: #endif case EAGAIN: diff --git a/src/network/socket/qsctpsocket.cpp b/src/network/socket/qsctpsocket.cpp index 9ab241f9ab..f65ffa765d 100644 --- a/src/network/socket/qsctpsocket.cpp +++ b/src/network/socket/qsctpsocket.cpp @@ -162,8 +162,12 @@ bool QSctpSocketPrivate::canReadNotification() do { // Determine the size of the pending datagram. qint64 bytesToRead = socketEngine->bytesAvailable(); - if (bytesToRead == 0) + if (bytesToRead == 0) { + // As a corner case, if we can't determine the size of the pending datagram, + // try to read 4K of data from the socket. Subsequent ::recvmsg call either + // fails or returns the actual length of the datagram. bytesToRead = 4096; + } Q_ASSERT((datagramSize + int(bytesToRead)) < MaxByteArraySize); incomingDatagram.resize(datagramSize + int(bytesToRead)); @@ -479,7 +483,7 @@ QNetworkDatagram QSctpSocket::readDatagram() } if (d->currentReadChannel >= d->readHeaders.size() - || (d->readHeaders[d->currentReadChannel].size() == 0)) { + || d->readHeaders[d->currentReadChannel].size() == 0) { Q_ASSERT(d->buffer.isEmpty()); return QNetworkDatagram(); } |