summaryrefslogtreecommitdiffstats
path: root/src/network
diff options
context:
space:
mode:
authorQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2019-01-21 13:03:09 +0100
committerQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2019-01-21 13:03:09 +0100
commitf94ca82e0ff6345648b499911411f2dcc1849267 (patch)
treebc5acac8bfecaf5bccc612f5b009bf249bc69ef1 /src/network
parentfe29a6a6ebbf28505df7cdf1de24fa540fd3745e (diff)
parentb1092a7d4240d419cc2b5f3f5c326a1cb680bbdd (diff)
Merge remote-tracking branch 'origin/5.12' into dev
Conflicts: .qmake.conf Change-Id: Ibfcb30053f3aacb8ec2ec480e146538c9bf440ea
Diffstat (limited to 'src/network')
-rw-r--r--src/network/access/qftp.cpp2
-rw-r--r--src/network/access/qnetworkreplyfileimpl_p.h1
-rw-r--r--src/network/access/qnetworkreplyhttpimpl.cpp6
-rw-r--r--src/network/access/qnetworkreplywasmimpl.cpp27
-rw-r--r--src/network/access/qnetworkrequest.cpp2
-rw-r--r--src/network/kernel/qhostaddress.cpp3
6 files changed, 23 insertions, 18 deletions
diff --git a/src/network/access/qftp.cpp b/src/network/access/qftp.cpp
index feece4ebaf..d33355c470 100644
--- a/src/network/access/qftp.cpp
+++ b/src/network/access/qftp.cpp
@@ -2154,7 +2154,7 @@ QFtp::Command QFtp::currentCommand() const
\internal
Returns the QIODevice pointer that is used by the FTP command to read data
from or store data to. If there is no current FTP command being executed or
- if the command does not use an IO device, this function returns 0.
+ if the command does not use an IO device, this function returns \nullptr.
This function can be used to delete the QIODevice in the slot connected to
the commandFinished() signal.
diff --git a/src/network/access/qnetworkreplyfileimpl_p.h b/src/network/access/qnetworkreplyfileimpl_p.h
index 55aece0bed..48d82abd3f 100644
--- a/src/network/access/qnetworkreplyfileimpl_p.h
+++ b/src/network/access/qnetworkreplyfileimpl_p.h
@@ -80,6 +80,7 @@ public:
private Q_SLOTS:
void fileOpenFinished(bool isOpen);
+private:
Q_DECLARE_PRIVATE(QNetworkReplyFileImpl)
};
diff --git a/src/network/access/qnetworkreplyhttpimpl.cpp b/src/network/access/qnetworkreplyhttpimpl.cpp
index ed2235ad28..ef54c198ba 100644
--- a/src/network/access/qnetworkreplyhttpimpl.cpp
+++ b/src/network/access/qnetworkreplyhttpimpl.cpp
@@ -1879,11 +1879,9 @@ void QNetworkReplyHttpImplPrivate::_q_startOperation()
{
Q_Q(QNetworkReplyHttpImpl);
- // ensure this function is only being called once
- if (state == Working) {
- qDebug() << "QNetworkReplyHttpImplPrivate::_q_startOperation was called more than once" << url;
+ if (state == Working) // ensure this function is only being called once
return;
- }
+
state = Working;
#ifndef QT_NO_BEARERMANAGEMENT
diff --git a/src/network/access/qnetworkreplywasmimpl.cpp b/src/network/access/qnetworkreplywasmimpl.cpp
index 3bfe927c9f..df4e034d97 100644
--- a/src/network/access/qnetworkreplywasmimpl.cpp
+++ b/src/network/access/qnetworkreplywasmimpl.cpp
@@ -102,6 +102,8 @@ static void q_loadCallback(val event)
return;
}
QString statusText = QString::fromStdString(xhr["statusText"].as<std::string>());
+ int readyState = xhr["readyState"].as<int>();
+
if (status == 200 || status == 203) {
QString responseString;
const std::string responseType = xhr["responseType"].as<std::string>();
@@ -112,13 +114,15 @@ static void q_loadCallback(val event)
QString::fromStdWString(val::global("JSON").call<std::wstring>("stringify", xhr["response"]));
} else if (responseType == "arraybuffer" || responseType == "blob") {
// handle this data in the FileReader, triggered by the call to readAsArrayBuffer
+ val blob = xhr["response"];
+
val reader = val::global("FileReader").new_();
reader.set("onload", val::module_property("QNetworkReplyWasmImplPrivate_readBinary"));
reader.set("data-handler", xhr["data-handler"]);
- reader.call<void>("readAsArrayBuffer", xhr["response"]);
+
+ reader.call<void>("readAsArrayBuffer", blob);
}
- int readyState = xhr["readyState"].as<int>();
if (readyState == 4) { // done
reply->setReplyAttributes(xhr["data-handler"].as<quintptr>(), status, statusText);
@@ -167,9 +171,9 @@ static void q_readBinary(val event)
reinterpret_cast<quintptr>(buffer.data()), size);
destinationTypedArray.call<void>("set", sourceTypedArray);
reply->dataReceived(buffer, buffer.size());
+ QCoreApplication::processEvents();
}
-
EMSCRIPTEN_BINDINGS(network_module) {
function("QNetworkReplyWasmImplPrivate_requestErrorCallback", q_requestErrorCallback);
function("QNetworkReplyWasmImplPrivate_progressCallback", q_progressCallback);
@@ -240,9 +244,6 @@ qint64 QNetworkReplyWasmImpl::bytesAvailable() const
{
Q_D(const QNetworkReplyWasmImpl);
- if (!d->isFinished)
- return QNetworkReply::bytesAvailable();
-
return QNetworkReply::bytesAvailable() + d->downloadBufferCurrentSize - d->downloadBufferReadPosition;
}
@@ -357,8 +358,7 @@ void QNetworkReplyWasmImplPrivate::doSendRequest()
m_xhr.set("responseType", val("json"));
dataToSend = val(extraDataString.toStdString());
}
- }
- if (contentType.contains("form")) { //construct form data
+ } else if (contentType.contains("form")) { //construct form data
if (!extraDataString.isEmpty()) {
val formData = val::global("FormData").new_();
QStringList formList = extraDataString.split('&');
@@ -368,6 +368,8 @@ void QNetworkReplyWasmImplPrivate::doSendRequest()
}
dataToSend = formData;
}
+ } else {
+ m_xhr.set("responseType", val("blob"));
}
// set request headers
for (auto header : request.rawHeaderList()) {
@@ -417,10 +419,13 @@ void QNetworkReplyWasmImplPrivate::dataReceived(const QByteArray &buffer, int bu
downloadBuffer.append(buffer, bufferSize);
+ emit q->readyRead();
+
if (downloadBufferCurrentSize == totalDownloadSize) {
- q->setFinished(true);
- emit q->finished();
- }
+ q->setFinished(true);
+ emit q->readChannelFinished();
+ emit q->finished();
+ }
}
//taken from qnetworkrequest.cpp
diff --git a/src/network/access/qnetworkrequest.cpp b/src/network/access/qnetworkrequest.cpp
index 689eecfbb9..e4c46c3183 100644
--- a/src/network/access/qnetworkrequest.cpp
+++ b/src/network/access/qnetworkrequest.cpp
@@ -714,7 +714,7 @@ void QNetworkRequest::setOriginatingObject(QObject *object)
\since 4.6
Returns a reference to the object that initiated this
- network request; returns 0 if not set or the object has
+ network request; returns \nullptr if not set or the object has
been destroyed.
\sa setOriginatingObject()
diff --git a/src/network/kernel/qhostaddress.cpp b/src/network/kernel/qhostaddress.cpp
index 27b5f570dc..fba91c62c8 100644
--- a/src/network/kernel/qhostaddress.cpp
+++ b/src/network/kernel/qhostaddress.cpp
@@ -574,7 +574,8 @@ QHostAddress &QHostAddress::operator=(SpecialAddress address)
*/
/*!
- Sets the host address to null.
+ Sets the host address to null and sets the protocol to
+ QAbstractSocket::UnknownNetworkLayerProtocol.
\sa QHostAddress::Null
*/