src/network/access/qnetworkaccessmanager.cpp
changeset 3 41300fa6a67c
parent 0 1918ee327afb
child 4 3b1da2848fc7
equal deleted inserted replaced
2:56cd8111b7f7 3:41300fa6a67c
    50 #include "qnetworkaccesshttpbackend_p.h"
    50 #include "qnetworkaccesshttpbackend_p.h"
    51 #include "qnetworkaccessftpbackend_p.h"
    51 #include "qnetworkaccessftpbackend_p.h"
    52 #include "qnetworkaccessfilebackend_p.h"
    52 #include "qnetworkaccessfilebackend_p.h"
    53 #include "qnetworkaccessdatabackend_p.h"
    53 #include "qnetworkaccessdatabackend_p.h"
    54 #include "qnetworkaccessdebugpipebackend_p.h"
    54 #include "qnetworkaccessdebugpipebackend_p.h"
       
    55 #include "qfilenetworkreply_p.h"
    55 
    56 
    56 #include "QtCore/qbuffer.h"
    57 #include "QtCore/qbuffer.h"
    57 #include "QtCore/qurl.h"
    58 #include "QtCore/qurl.h"
    58 #include "QtCore/qvector.h"
    59 #include "QtCore/qvector.h"
    59 #include "QtNetwork/qauthenticator.h"
    60 #include "QtNetwork/qauthenticator.h"
   679 QNetworkReply *QNetworkAccessManager::createRequest(QNetworkAccessManager::Operation op,
   680 QNetworkReply *QNetworkAccessManager::createRequest(QNetworkAccessManager::Operation op,
   680                                                     const QNetworkRequest &req,
   681                                                     const QNetworkRequest &req,
   681                                                     QIODevice *outgoingData)
   682                                                     QIODevice *outgoingData)
   682 {
   683 {
   683     Q_D(QNetworkAccessManager);
   684     Q_D(QNetworkAccessManager);
       
   685 
       
   686     // fast path for GET on file:// URLs
       
   687     // Also if the scheme is empty we consider it a file.
       
   688     // The QNetworkAccessFileBackend will right now only be used
       
   689     // for PUT or qrc://
       
   690     if (op == QNetworkAccessManager::GetOperation
       
   691          && (req.url().scheme() == QLatin1String("file")
       
   692              || req.url().scheme().isEmpty())) {
       
   693         return new QFileNetworkReply(this, req);
       
   694     }
       
   695 
   684     QNetworkRequest request = req;
   696     QNetworkRequest request = req;
   685     if (!request.header(QNetworkRequest::ContentLengthHeader).isValid() &&
   697     if (!request.header(QNetworkRequest::ContentLengthHeader).isValid() &&
   686         outgoingData && !outgoingData->isSequential()) {
   698         outgoingData && !outgoingData->isSequential()) {
   687         // request has no Content-Length
   699         // request has no Content-Length
   688         // but the data that is outgoing is random-access
   700         // but the data that is outgoing is random-access