[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: branches/KDE/4.4/kdelibs/kio/kio
From: Dawit Alemayehu <adawit () kde ! org>
Date: 2010-01-31 23:04:49
Message-ID: 1264979089.797853.4756.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 1083277 by adawit:
Backport the cache header directive related fixes from trunk (r1083276).
M +36 -28 accessmanager.cpp
--- branches/KDE/4.4/kdelibs/kio/kio/accessmanager.cpp #1083276:1083277
@@ -163,10 +163,11 @@
if ( op == PostOperation && !kioJob->metaData().contains("content-type")) {
QVariant header = req.header(QNetworkRequest::ContentTypeHeader);
if (header.isValid())
- kioJob->addMetaData("content-type",
+ kioJob->addMetaData(QLatin1String("content-type"),
QString::fromLatin1("Content-Type: %1").arg(header.toString()));
else
- kioJob->addMetaData("content-type", "Content-Type: application/x-www-form-urlencoded");
+ kioJob->addMetaData(QLatin1String("content-type"),
+ QLatin1String("Content-Type: application/x-www-form-urlencoded"));
}
return reply;
@@ -177,7 +178,7 @@
{
KIO::MetaData metaData;
- // Add the user-specified meta data first...
+ // Add any meta data specified within request...
QVariant userMetaData = request.attribute (static_cast<QNetworkRequest::Attribute>(MetaData));
if (userMetaData.isValid() && userMetaData.type() == QVariant::Map) {
metaData += userMetaData.toMap();
@@ -185,45 +186,52 @@
metaData.insert("PropagateHttpHeader", "true");
- metaData.insert("UserAgent", request.rawHeader("User-Agent"));
- request.setRawHeader("User-Agent", QByteArray());
+ if (request.hasRawHeader("User-Agent")) {
+ metaData.insert("UserAgent", request.rawHeader("User-Agent"));
+ request.setRawHeader("User-Agent", QByteArray());
+ }
- metaData.insert("accept", request.rawHeader("Accept"));
- request.setRawHeader("Accept", QByteArray());
+ if (request.hasRawHeader("Accept")) {
+ metaData.insert("accept", request.rawHeader("Accept"));
+ request.setRawHeader("Accept", QByteArray());
+ }
+ if (request.hasRawHeader("Referer")) {
+ metaData.insert("referrer", request.rawHeader("Referer"));
+ request.setRawHeader("Referer", QByteArray());
+ }
+
+ if (request.hasRawHeader("Content-Type")) {
+ metaData.insert("content-type", request.rawHeader("Content-Type"));
+ request.setRawHeader("Content-Type", QByteArray());
+ }
+
request.setRawHeader("content-length", QByteArray());
request.setRawHeader("Connection", QByteArray());
+ request.setRawHeader("If-None-Match", QByteArray());
+ request.setRawHeader("If-Modified-Since", QByteArray());
- QString additionHeaders;
- Q_FOREACH(const QByteArray &headerKey, request.rawHeaderList()) {
- const QByteArray value = request.rawHeader(headerKey);
- if (value.isNull())
- continue;
+ QStringList customHeaders;
+ Q_FOREACH(const QByteArray &key, request.rawHeaderList()) {
+ const QByteArray value = request.rawHeader(key);
+ if (value.length())
+ customHeaders << (key + ": " + value);
+ }
- // createRequest() checks later for existence "content-type" metadata
- if (headerKey=="Content-Type") {
- metaData.insert("content-type", value);
- continue;
- }
+ if (!customHeaders.isEmpty())
+ metaData.insert("customHTTPHeader", customHeaders.join("\r\n"));
- if (additionHeaders.length() > 0) {
- additionHeaders += "\r\n";
- }
- additionHeaders += headerKey + ": " + value;
- }
- metaData.insert("customHTTPHeader", additionHeaders);
-
// Append per request meta data, if any...
- if (!requestMetaData.isEmpty())
+ if (!requestMetaData.isEmpty()) {
metaData += requestMetaData;
+ // Clear per request meta data...
+ requestMetaData.clear();
+ }
// Append per session meta data, if any...
if (!sessionMetaData.isEmpty())
metaData += sessionMetaData;
- // Clear per request meta data...
- requestMetaData.clear();
-
return metaData;
}
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic