From 57f209497c3799c28838cbca314fa93140302aba Mon Sep 17 00:00:00 2001 From: Peter Hartmann Date: Wed, 22 Jan 2014 17:51:43 +0100 Subject: HTTP internals: move some methods inside HTTP request class ... from the private to the public class, because we need to access these methods from other classes. Change-Id: I2c5ea84e0f5d3641c1dc02342348f1022d886249 Reviewed-by: Richard J. Moore --- src/network/access/qhttpnetworkconnection.cpp | 4 ++-- src/network/access/qhttpnetworkrequest.cpp | 16 ++++++++-------- src/network/access/qhttpnetworkrequest_p.h | 6 ++++-- 3 files changed, 14 insertions(+), 12 deletions(-) (limited to 'src') diff --git a/src/network/access/qhttpnetworkconnection.cpp b/src/network/access/qhttpnetworkconnection.cpp index e0996c4072..66c97f7485 100644 --- a/src/network/access/qhttpnetworkconnection.cpp +++ b/src/network/access/qhttpnetworkconnection.cpp @@ -512,7 +512,7 @@ void QHttpNetworkConnectionPrivate::createAuthorization(QAbstractSocket *socket, if ((channels[i].authMethod != QAuthenticatorPrivate::Ntlm && request.headerField("Authorization").isEmpty()) || channels[i].lastStatus == 401) { QAuthenticatorPrivate *priv = QAuthenticatorPrivate::getPrivate(channels[i].authenticator); if (priv && priv->method != QAuthenticatorPrivate::None) { - QByteArray response = priv->calculateResponse(request.d->methodName(), request.d->uri(false)); + QByteArray response = priv->calculateResponse(request.methodName(), request.uri(false)); request.setHeaderField("Authorization", response); channels[i].authenticationCredentialsSent = true; } @@ -524,7 +524,7 @@ void QHttpNetworkConnectionPrivate::createAuthorization(QAbstractSocket *socket, if (!(channels[i].proxyAuthMethod == QAuthenticatorPrivate::Ntlm && channels[i].lastStatus != 407)) { QAuthenticatorPrivate *priv = QAuthenticatorPrivate::getPrivate(channels[i].proxyAuthenticator); if (priv && priv->method != QAuthenticatorPrivate::None) { - QByteArray response = priv->calculateResponse(request.d->methodName(), request.d->uri(false)); + QByteArray response = priv->calculateResponse(request.methodName(), request.uri(false)); request.setHeaderField("Proxy-Authorization", response); channels[i].proxyCredentialsSent = true; } diff --git a/src/network/access/qhttpnetworkrequest.cpp b/src/network/access/qhttpnetworkrequest.cpp index d9f9b555d7..3786f9b992 100644 --- a/src/network/access/qhttpnetworkrequest.cpp +++ b/src/network/access/qhttpnetworkrequest.cpp @@ -87,9 +87,9 @@ bool QHttpNetworkRequestPrivate::operator==(const QHttpNetworkRequestPrivate &ot && (preConnect == other.preConnect); } -QByteArray QHttpNetworkRequestPrivate::methodName() const +QByteArray QHttpNetworkRequest::methodName() const { - switch (operation) { + switch (d->operation) { case QHttpNetworkRequest::Get: return "GET"; case QHttpNetworkRequest::Head: @@ -107,24 +107,24 @@ QByteArray QHttpNetworkRequestPrivate::methodName() const case QHttpNetworkRequest::Connect: return "CONNECT"; case QHttpNetworkRequest::Custom: - return customVerb; + return d->customVerb; default: break; } return QByteArray(); } -QByteArray QHttpNetworkRequestPrivate::uri(bool throughProxy) const +QByteArray QHttpNetworkRequest::uri(bool throughProxy) const { QUrl::FormattingOptions format(QUrl::RemoveFragment | QUrl::RemoveUserInfo | QUrl::FullyEncoded); // for POST, query data is send as content - if (operation == QHttpNetworkRequest::Post && !uploadByteDevice) + if (d->operation == QHttpNetworkRequest::Post && !d->uploadByteDevice) format |= QUrl::RemoveQuery; // for requests through proxy, the Request-URI contains full url if (!throughProxy) format |= QUrl::RemoveScheme | QUrl::RemoveAuthority; - QUrl copy = url; + QUrl copy = d->url; if (copy.path().isEmpty()) copy.setPath(QStringLiteral("/")); QByteArray uri = copy.toEncoded(format); @@ -137,9 +137,9 @@ QByteArray QHttpNetworkRequestPrivate::header(const QHttpNetworkRequest &request QByteArray ba; ba.reserve(40 + fields.length()*25); // very rough lower bound estimation - ba += request.d->methodName(); + ba += request.methodName(); ba += ' '; - ba += request.d->uri(throughProxy); + ba += request.uri(throughProxy); ba += " HTTP/"; ba += QByteArray::number(request.majorVersion()); diff --git a/src/network/access/qhttpnetworkrequest_p.h b/src/network/access/qhttpnetworkrequest_p.h index ce9fbb1509..f224f7329d 100644 --- a/src/network/access/qhttpnetworkrequest_p.h +++ b/src/network/access/qhttpnetworkrequest_p.h @@ -126,11 +126,15 @@ public: void setUploadByteDevice(QNonContiguousByteDevice *bd); QNonContiguousByteDevice* uploadByteDevice() const; + QByteArray methodName() const; + QByteArray uri(bool throughProxy) const; + private: QSharedDataPointer d; friend class QHttpNetworkRequestPrivate; friend class QHttpNetworkConnectionPrivate; friend class QHttpNetworkConnectionChannel; + friend class QHttpProtocolHandler; }; class QHttpNetworkRequestPrivate : public QHttpNetworkHeaderPrivate @@ -141,8 +145,6 @@ public: QHttpNetworkRequestPrivate(const QHttpNetworkRequestPrivate &other); ~QHttpNetworkRequestPrivate(); bool operator==(const QHttpNetworkRequestPrivate &other) const; - QByteArray methodName() const; - QByteArray uri(bool throughProxy) const; static QByteArray header(const QHttpNetworkRequest &request, bool throughProxy); -- cgit v1.2.3