summaryrefslogtreecommitdiffstats
path: root/src/network/access
diff options
context:
space:
mode:
authorJake Petroules <jake.petroules@qt.io>2016-05-23 17:17:14 -0700
committerJake Petroules <jake.petroules@qt.io>2016-05-26 01:51:37 +0000
commit4605ca20130170757c2cbe6f69eb7fcfbc9f9101 (patch)
tree7dd519ac63bc73dbbe0a878f2c1f59460bd3d102 /src/network/access
parent11353ea6a50682d5877baf4c356de56f7ab89376 (diff)
Remove QNetworkReplyNSURLConnectionImpl.
This class is no longer needed now that SecureTransport is the default SSL backend on iOS. It also uses NSURLConnection, which is deprecated on iOS and tvOS and completely prohibited on watchOS (in favor of NSURLSession). [ChangeLog][Important Behavior Changes] The NSURLConnection backend of QNetworkAccessManager has been removed, since SecureTransport is the default SSL backend on iOS and is enabled by default. This means that building with -no-openssl -no-securetransport will no longer provide SSL capabilities on iOS. Task-number: QTBUG-45031 Change-Id: I86b774fa369c7d76197bfc0504d5ad234bb47e5c Reviewed-by: Richard J. Moore <rich@kde.org>
Diffstat (limited to 'src/network/access')
-rw-r--r--src/network/access/access.pri8
-rw-r--r--src/network/access/qnetworkaccessmanager.cpp10
-rw-r--r--src/network/access/qnetworkreplynsurlconnectionimpl.mm451
-rw-r--r--src/network/access/qnetworkreplynsurlconnectionimpl_p.h81
4 files changed, 0 insertions, 550 deletions
diff --git a/src/network/access/access.pri b/src/network/access/access.pri
index e829d52cbe..38e9c25269 100644
--- a/src/network/access/access.pri
+++ b/src/network/access/access.pri
@@ -72,12 +72,4 @@ SOURCES += \
mac: LIBS_PRIVATE += -framework Security
-ios {
- HEADERS += \
- access/qnetworkreplynsurlconnectionimpl_p.h
-
- OBJECTIVE_SOURCES += \
- access/qnetworkreplynsurlconnectionimpl.mm
-}
-
include($$PWD/../../3rdparty/zlib_dependency.pri)
diff --git a/src/network/access/qnetworkaccessmanager.cpp b/src/network/access/qnetworkaccessmanager.cpp
index d023228fd2..b649aba4a8 100644
--- a/src/network/access/qnetworkaccessmanager.cpp
+++ b/src/network/access/qnetworkaccessmanager.cpp
@@ -50,10 +50,6 @@
#include "qnetworkreplydataimpl_p.h"
#include "qnetworkreplyfileimpl_p.h"
-#if defined(Q_OS_IOS) && defined(QT_NO_SSL)
-#include "qnetworkreplynsurlconnectionimpl_p.h"
-#endif
-
#include "QtCore/qbuffer.h"
#include "QtCore/qurl.h"
#include "QtCore/qvector.h"
@@ -1201,12 +1197,6 @@ QNetworkReply *QNetworkAccessManager::createRequest(QNetworkAccessManager::Opera
}
}
-// Use NSURLConnection for https on iOS when OpenSSL is disabled.
-#if defined(Q_OS_IOS) && defined(QT_NO_SSL)
- if (scheme == QLatin1String("https"))
- return new QNetworkReplyNSURLConnectionImpl(this, request, op, outgoingData);
-#endif
-
#ifndef QT_NO_HTTP
// Since Qt 5 we use the new QNetworkReplyHttpImpl
if (scheme == QLatin1String("http") || scheme == QLatin1String("preconnect-http")
diff --git a/src/network/access/qnetworkreplynsurlconnectionimpl.mm b/src/network/access/qnetworkreplynsurlconnectionimpl.mm
deleted file mode 100644
index f4f494560c..0000000000
--- a/src/network/access/qnetworkreplynsurlconnectionimpl.mm
+++ /dev/null
@@ -1,451 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2015 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the QtNetwork module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL21$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 or version 3 as published by the Free
-** Software Foundation and appearing in the file LICENSE.LGPLv21 and
-** LICENSE.LGPLv3 included in the packaging of this file. Please review the
-** following information to ensure the GNU Lesser General Public License
-** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** As a special exception, The Qt Company gives you certain additional
-** rights. These rights are described in The Qt Company LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qnetworkreplynsurlconnectionimpl_p.h"
-
-#include "QtCore/qdatetime.h"
-#include <QtCore/qcoreapplication.h>
-#include <QtCore/qdebug.h>
-#include <Foundation/Foundation.h>
-
-QT_BEGIN_NAMESPACE
-
-// Network reply implementation using NSUrlConnection.
-//
-// Class/object structure:
-//
-// QNetworkReplyNSURLConnectionImpl
-// |- QNetworkReplyNSURLConnectionImplPrivate
-// |- (bytes read)
-// |- (QIODevice and CFStream for async POST data transfer)
-// |- NSURLConnection
-// |- QtNSURLConnectionDelegate <NSURLConnectionDataDelegate>
-// |- NSURLResponse/NSHTTPURLResponse
-// |- (response data)
-//
-// The main entry point is the QNetworkReplyNSURLConnectionImpl constructor, which
-// receives a network request from QNetworkAccessManager. The constructor
-// creates a NSURLRequest and initiates a NSURLConnection with a QtNSURLConnectionDelegate.
-// The delegate callbacks are then called asynchronously as the request completes.
-//
-
-@class QtNSURLConnectionDelegate;
-class QNetworkReplyNSURLConnectionImplPrivate: public QNetworkReplyPrivate
-{
-public:
- QNetworkReplyNSURLConnectionImplPrivate();
- virtual ~QNetworkReplyNSURLConnectionImplPrivate();
-
- Q_DECLARE_PUBLIC(QNetworkReplyNSURLConnectionImpl)
- NSURLConnection * urlConnection;
- QtNSURLConnectionDelegate *urlConnectionDelegate;
- qint64 bytesRead;
-
- // Sequental outgiong data streaming
- QIODevice *outgoingData;
- CFReadStreamRef readStream;
- CFWriteStreamRef writeStream;
- CFIndex transferBufferSize;
-
- // Forwarding functions to the public class.
- void setFinished();
- void setHeader(QNetworkRequest::KnownHeaders header, const QVariant &value);
- void setRawHeader(const QByteArray &headerName, const QByteArray &value);
- void setError(QNetworkReply::NetworkError errorCode, const QString &errorString);
- void setAttribute(QNetworkRequest::Attribute code, const QVariant &value);
-};
-
-@interface QtNSURLConnectionDelegate : NSObject
-{
- NSURLResponse *response;
- NSMutableData *responseData;
- QNetworkReplyNSURLConnectionImplPrivate * replyprivate;
-}
-
-- (id)initWithQNetworkReplyNSURLConnectionImplPrivate:(QNetworkReplyNSURLConnectionImplPrivate *)a_replyPrivate ;
-#if QT_MAC_PLATFORM_SDK_EQUAL_OR_ABOVE(__MAC_10_7, __IPHONE_3_0)
-- (void)connection:(NSURLConnection *)connection willSendRequestForAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge;
-#endif
-- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError*)error;
-- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse*)response;
-- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData*)data;
-- (void)connection:(NSURLConnection *)connection didSendBodyData:(NSInteger)bytesWritten
- totalBytesWritten:(NSInteger)totalBytesWritten totalBytesExpectedToWrite:(NSInteger)totalBytesExpectedToWrite;
-- (NSCachedURLResponse*)connection:(NSURLConnection*)connection willCacheResponse:(NSCachedURLResponse*)cachedResponse;
-- (NSURLRequest*)connection:(NSURLConnection*)connection willSendRequest:(NSURLRequest*)request redirectResponse:(NSURLResponse*)redirectResponse;
-- (void)connectionDidFinishLoading:(NSURLConnection*)connection;
-- (BOOL)connectionShouldUseCredentialStorage:(NSURLConnection*)connection;
-
-@end
-
-QNetworkReplyNSURLConnectionImplPrivate::QNetworkReplyNSURLConnectionImplPrivate()
- : QNetworkReplyPrivate()
- , urlConnection(0)
- , urlConnectionDelegate(0)
- , bytesRead(0)
- , readStream(0)
- , writeStream(0)
- , transferBufferSize(4096)
-{
-}
-
-QNetworkReplyNSURLConnectionImplPrivate::~QNetworkReplyNSURLConnectionImplPrivate()
-{
- [urlConnection cancel];
- [urlConnection release];
- [urlConnectionDelegate release];
- if (readStream)
- CFRelease(readStream);
- if (writeStream)
- CFRelease(writeStream);
-}
-
-void QNetworkReplyNSURLConnectionImplPrivate::setFinished()
-{
- q_func()->setFinished(true);
- QMetaObject::invokeMethod(q_func(), "finished", Qt::QueuedConnection);
-}
-
-void QNetworkReplyNSURLConnectionImplPrivate::setHeader(QNetworkRequest::KnownHeaders header, const QVariant &value)
-{
- q_func()->setHeader(header, value);
-}
-
-void QNetworkReplyNSURLConnectionImplPrivate::setRawHeader(const QByteArray &headerName, const QByteArray &value)
-{
- q_func()->setRawHeader(headerName, value);
-}
-
-void QNetworkReplyNSURLConnectionImplPrivate::setError(QNetworkReply::NetworkError errorCode, const QString &errorString)
-{
- q_func()->setError(errorCode, errorString);
-}
-
-void QNetworkReplyNSURLConnectionImplPrivate::setAttribute(QNetworkRequest::Attribute code, const QVariant &value)
-{
- q_func()->setAttribute(code, value);
-}
-
-void QNetworkReplyNSURLConnectionImpl::readyReadOutgoingData()
-{
- Q_D(QNetworkReplyNSURLConnectionImpl);
- int bytesRead = 0;
- do {
- char data[d->transferBufferSize];
- bytesRead = d->outgoingData->read(data, d->transferBufferSize);
- if (bytesRead <= 0)
- break;
- CFIndex bytesWritten = CFWriteStreamWrite(d->writeStream, reinterpret_cast<unsigned char *>(data), bytesRead);
- if (bytesWritten != bytesRead) {
- CFErrorRef err = CFWriteStreamCopyError(d->writeStream);
- qWarning() << "QNetworkReplyNSURLConnectionImpl: CFWriteStreamWrite error"
- << (err ? QString::number(CFErrorGetCode(err)) : QStringLiteral(""));
- }
- } while (bytesRead > 0);
-
- if (d->outgoingData->atEnd())
- CFWriteStreamClose(d->writeStream);
-}
-
-@interface QtNSURLConnectionDelegate ()
-
-@property (nonatomic, retain) NSURLResponse* response;
-@property (nonatomic, retain) NSMutableData* responseData;
-
-@end
-
-@implementation QtNSURLConnectionDelegate
-
-@synthesize response;
-@synthesize responseData;
-
-- (id)initWithQNetworkReplyNSURLConnectionImplPrivate:(QNetworkReplyNSURLConnectionImplPrivate *)a_replyPrivate
-{
- if (self = [super init])
- replyprivate = a_replyPrivate;
- return self;
-}
-
-- (void)dealloc
-{
- [response release];
- [responseData release];
- [super dealloc];
-}
-
-#if QT_MAC_PLATFORM_SDK_EQUAL_OR_ABOVE(__MAC_10_7, __IPHONE_3_0)
-- (void)connection:(NSURLConnection *)connection willSendRequestForAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge
-{
- Q_UNUSED(connection)
- Q_UNUSED(challenge)
-
- if ([challenge.protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodServerTrust]) {
- SecTrustRef serverTrust = challenge.protectionSpace.serverTrust;
- SecTrustResultType resultType;
- SecTrustEvaluate(serverTrust, &resultType);
- if (resultType == kSecTrustResultUnspecified) {
- // All good
- [challenge.sender performDefaultHandlingForAuthenticationChallenge:challenge];
- } else if (resultType == kSecTrustResultRecoverableTrustFailure) {
- // Certificate verification error, ask user
- // ### TODO actually ask user
- // (test site: https://testssl-expire.disig.sk/index.en.html)
- qWarning() << "QNetworkReplyNSURLConnection: Certificate verification error handlig is"
- << "not implemented. Connection will time out.";
- } else {
- // other error, which the default handler will handle
- [challenge.sender performDefaultHandlingForAuthenticationChallenge:challenge];
- }
- }
-
- [challenge.sender performDefaultHandlingForAuthenticationChallenge:challenge];
-}
-#endif
-
-- (void)connection:(NSURLConnection*)connection didFailWithError:(NSError*)error
-{
- Q_UNUSED(connection)
-
- QNetworkReply::NetworkError qtError = QNetworkReply::UnknownNetworkError;
- if ([[error domain] isEqualToString:NSURLErrorDomain]) {
- switch ([error code]) {
- case NSURLErrorTimedOut: qtError = QNetworkReply::TimeoutError; break;
- case NSURLErrorUnsupportedURL: qtError = QNetworkReply::ProtocolUnknownError; break;
- case NSURLErrorCannotFindHost: qtError = QNetworkReply::HostNotFoundError; break;
- case NSURLErrorCannotConnectToHost: qtError = QNetworkReply::ConnectionRefusedError; break;
- case NSURLErrorNetworkConnectionLost: qtError = QNetworkReply::NetworkSessionFailedError; break;
- case NSURLErrorDNSLookupFailed: qtError = QNetworkReply::HostNotFoundError; break;
- case NSURLErrorNotConnectedToInternet: qtError = QNetworkReply::NetworkSessionFailedError; break;
- case NSURLErrorUserAuthenticationRequired: qtError = QNetworkReply::AuthenticationRequiredError; break;
- default: break;
- }
- }
-
- replyprivate->setError(qtError, QString::fromNSString([error localizedDescription]));
- replyprivate->setFinished();
-}
-
-- (void)connection:(NSURLConnection*)connection didReceiveResponse:(NSURLResponse*)aResponse
-{
- Q_UNUSED(connection)
- self.response = aResponse;
- self.responseData = [NSMutableData data];
-
- // copy headers
- if ([aResponse isKindOfClass:[NSHTTPURLResponse class]]) {
- NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse*)aResponse;
- NSDictionary *headers = [httpResponse allHeaderFields];
- for (NSString *key in headers) {
- NSString *value = [headers objectForKey:key];
- replyprivate->setRawHeader(QString::fromNSString(key).toUtf8(), QString::fromNSString(value).toUtf8());
- }
-
- int code = [httpResponse statusCode];
- replyprivate->setAttribute(QNetworkRequest::HttpStatusCodeAttribute, code);
- } else {
- if ([aResponse expectedContentLength] != NSURLResponseUnknownLength)
- replyprivate->setHeader(QNetworkRequest::ContentLengthHeader, [aResponse expectedContentLength]);
- }
-
- QMetaObject::invokeMethod(replyprivate->q_func(), "metaDataChanged", Qt::QueuedConnection);
-}
-
-- (void)connection:(NSURLConnection*)connection didReceiveData:(NSData*)data
-{
- Q_UNUSED(connection)
- [responseData appendData:data];
-
- if ([response expectedContentLength] != NSURLResponseUnknownLength) {
- QMetaObject::invokeMethod(replyprivate->q_func(), "downloadProgress", Qt::QueuedConnection,
- Q_ARG(qint64, qint64([responseData length] + replyprivate->bytesRead)),
- Q_ARG(qint64, qint64([response expectedContentLength])));
- }
-
- QMetaObject::invokeMethod(replyprivate->q_func(), "readyRead", Qt::QueuedConnection);
-}
-
-- (void)connection:(NSURLConnection*)connection didSendBodyData:(NSInteger)bytesWritten totalBytesWritten:(NSInteger)totalBytesWritten
- totalBytesExpectedToWrite:(NSInteger)totalBytesExpectedToWrite
-{
- Q_UNUSED(connection)
- Q_UNUSED(bytesWritten)
- QMetaObject::invokeMethod(replyprivate->q_func(), "uploadProgress", Qt::QueuedConnection,
- Q_ARG(qint64, qint64(totalBytesWritten)),
- Q_ARG(qint64, qint64(totalBytesExpectedToWrite)));
-}
-
-- (NSCachedURLResponse*)connection:(NSURLConnection*)connection willCacheResponse:(NSCachedURLResponse*)cachedResponse
-{
- Q_UNUSED(connection)
- return cachedResponse;
-}
-
-- (NSURLRequest*)connection:(NSURLConnection*)connection willSendRequest:(NSURLRequest*)request redirectResponse:(NSURLResponse*)redirectResponse
-{
- Q_UNUSED(connection)
- Q_UNUSED(redirectResponse)
- return request;
-}
-
-- (void)connectionDidFinishLoading:(NSURLConnection*)connection
-{
- Q_UNUSED(connection)
- replyprivate->setFinished();
-}
-
-- (BOOL)connectionShouldUseCredentialStorage:(NSURLConnection*)connection
-{
- Q_UNUSED(connection)
- return YES;
-}
-
-@end
-
-QNetworkReplyNSURLConnectionImpl::~QNetworkReplyNSURLConnectionImpl()
-{
-}
-
-QNetworkReplyNSURLConnectionImpl::QNetworkReplyNSURLConnectionImpl(QObject *parent,
- const QNetworkRequest &request, const QNetworkAccessManager::Operation operation, QIODevice* outgoingData)
- : QNetworkReply(*new QNetworkReplyNSURLConnectionImplPrivate(), parent)
-{
- setRequest(request);
- setUrl(request.url());
- setOperation(operation);
- QNetworkReply::open(QIODevice::ReadOnly);
-
- QNetworkReplyNSURLConnectionImplPrivate *d = (QNetworkReplyNSURLConnectionImplPrivate*) d_func();
-
- QUrl url = request.url();
- if (url.host() == QLatin1String("localhost"))
- url.setHost(QString());
-
- if (url.path().isEmpty())
- url.setPath(QLatin1String("/"));
- setUrl(url);
-
- // Create a NSMutableURLRequest from QNetworkRequest
- NSMutableURLRequest *nsRequest = [NSMutableURLRequest requestWithURL:request.url().toNSURL()
- cachePolicy:NSURLRequestUseProtocolCachePolicy
- timeoutInterval:60.0];
- // copy headers
- foreach (const QByteArray &header, request.rawHeaderList()) {
- QByteArray headerValue = request.rawHeader(header);
- [nsRequest addValue:QString::fromUtf8(headerValue).toNSString()
- forHTTPHeaderField:QString::fromUtf8(header).toNSString()];
- }
-
- if (operation == QNetworkAccessManager::GetOperation)
- [nsRequest setHTTPMethod:@"GET"];
- else if (operation == QNetworkAccessManager::PostOperation)
- [nsRequest setHTTPMethod:@"POST"];
- else if (operation == QNetworkAccessManager::PutOperation)
- [nsRequest setHTTPMethod:@"PUT"];
- else if (operation == QNetworkAccessManager::DeleteOperation)
- [nsRequest setHTTPMethod:@"DELETE"];
- else
- qWarning() << "QNetworkReplyNSURLConnection: Unsupported netork operation" << operation;
-
- if (outgoingData) {
- d->outgoingData = outgoingData;
- if (outgoingData->isSequential()) {
- // set up streaming from outgoingData iodevice to request
- CFStreamCreateBoundPair(kCFAllocatorDefault, &d->readStream, &d->writeStream, d->transferBufferSize);
- CFWriteStreamOpen(d->writeStream);
- [nsRequest setHTTPBodyStream:reinterpret_cast<NSInputStream *>(d->readStream)];
- connect(outgoingData, SIGNAL(readyRead()), this, SLOT(readyReadOutgoingData()));
- readyReadOutgoingData();
- } else {
- // move all data at once
- QByteArray data = outgoingData->readAll();
- [nsRequest setHTTPBody:[NSData dataWithBytes:data.constData() length:data.length()]];
- }
- }
-
- // Create connection
- d->urlConnectionDelegate = [[QtNSURLConnectionDelegate alloc] initWithQNetworkReplyNSURLConnectionImplPrivate:d];
- d->urlConnection = [[NSURLConnection alloc] initWithRequest:nsRequest delegate:d->urlConnectionDelegate];
- if (!d->urlConnection) {
- // ### what type of error is an initWithRequest fail?
- setError(QNetworkReply::ProtocolUnknownError, QStringLiteral("QNetworkReplyNSURLConnection internal error"));
- }
-}
-
-void QNetworkReplyNSURLConnectionImpl::close()
-{
- // No-op? Network ops should continue (especially POSTs)
- QNetworkReply::close();
-}
-
-void QNetworkReplyNSURLConnectionImpl::abort()
-{
- Q_D(QNetworkReplyNSURLConnectionImpl);
- [d->urlConnection cancel];
- QNetworkReply::close();
-}
-
-qint64 QNetworkReplyNSURLConnectionImpl::bytesAvailable() const
-{
- Q_D(const QNetworkReplyNSURLConnectionImpl);
- qint64 available = QNetworkReply::bytesAvailable() +
- [[d->urlConnectionDelegate responseData] length];
- return available;
-}
-
-bool QNetworkReplyNSURLConnectionImpl::isSequential() const
-{
- return true;
-}
-
-qint64 QNetworkReplyNSURLConnectionImpl::size() const
-{
- Q_D(const QNetworkReplyNSURLConnectionImpl);
- return [[d->urlConnectionDelegate responseData] length] + d->bytesRead;
-}
-
-/*!
- \internal
-*/
-qint64 QNetworkReplyNSURLConnectionImpl::readData(char *data, qint64 maxlen)
-{
- Q_D(QNetworkReplyNSURLConnectionImpl);
- qint64 dataSize = [[d->urlConnectionDelegate responseData] length];
- qint64 canRead = qMin(maxlen, dataSize);
- const char *sourceBase = static_cast<const char *>([[d->urlConnectionDelegate responseData] bytes]);
- memcpy(data, sourceBase, canRead);
- [[d->urlConnectionDelegate responseData] replaceBytesInRange:NSMakeRange(0, canRead) withBytes:NULL length:0];
- d->bytesRead += canRead;
- return canRead;
-}
-
-QT_END_NAMESPACE
diff --git a/src/network/access/qnetworkreplynsurlconnectionimpl_p.h b/src/network/access/qnetworkreplynsurlconnectionimpl_p.h
deleted file mode 100644
index 8eacaf6712..0000000000
--- a/src/network/access/qnetworkreplynsurlconnectionimpl_p.h
+++ /dev/null
@@ -1,81 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2015 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the QtNetwork module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL21$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 or version 3 as published by the Free
-** Software Foundation and appearing in the file LICENSE.LGPLv21 and
-** LICENSE.LGPLv3 included in the packaging of this file. Please review the
-** following information to ensure the GNU Lesser General Public License
-** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** As a special exception, The Qt Company gives you certain additional
-** rights. These rights are described in The Qt Company LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QNETWORKREPLYNSURLCONNECTIONIMPL_H
-#define QNETWORKREPLYNSURLCONNECTIONIMPL_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists for the convenience
-// of the Network Access API. This header file may change from
-// version to version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include "qnetworkreply.h"
-#include "qnetworkreply_p.h"
-#include "qnetworkaccessmanager.h"
-#include <QFile>
-#include <private/qabstractfileengine_p.h>
-
-QT_BEGIN_NAMESPACE
-
-
-class QNetworkReplyNSURLConnectionImplPrivate;
-class QNetworkReplyNSURLConnectionImpl: public QNetworkReply
-{
- Q_OBJECT
-public:
- QNetworkReplyNSURLConnectionImpl(QObject *parent, const QNetworkRequest &req, const QNetworkAccessManager::Operation op, QIODevice* outgoingData);
- virtual ~QNetworkReplyNSURLConnectionImpl();
- virtual void abort();
-
- // reimplemented from QNetworkReply
- virtual void close();
- virtual qint64 bytesAvailable() const;
- virtual bool isSequential () const;
- qint64 size() const;
-
- virtual qint64 readData(char *data, qint64 maxlen);
-public Q_SLOTS:
- void readyReadOutgoingData();
-
- Q_DECLARE_PRIVATE(QNetworkReplyNSURLConnectionImpl)
-};
-
-QT_END_NAMESPACE
-
-#endif // QNetworkReplyNSURLConnectionImpl_H