You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
297 lines
12 KiB
297 lines
12 KiB
diff -ur qt-everywhere-opensource-src-4.6.3.orig/src/network/access/qhttpnetworkconnectionchannel.cpp qt-everywhere-opensource-src-4.6.3.new/src/network/access/qhttpnetworkconnectionchannel.cpp |
|
--- qt-everywhere-opensource-src-4.6.3.orig/src/network/access/qhttpnetworkconnectionchannel.cpp 2010-06-02 04:03:17.000000000 +0200 |
|
+++ qt-everywhere-opensource-src-4.6.3.new/src/network/access/qhttpnetworkconnectionchannel.cpp 2011-01-14 13:51:18.614841001 +0100 |
|
@@ -130,6 +130,9 @@ |
|
QObject::connect(sslSocket, SIGNAL(encryptedBytesWritten(qint64)), |
|
this, SLOT(_q_encryptedBytesWritten(qint64)), |
|
Qt::DirectConnection); |
|
+ QObject::connect(sslSocket, SIGNAL(extendedContextInitialization(ssl_ctx_st*)), |
|
+ this, SLOT(_q_extendedContextInitialization(ssl_ctx_st*)), |
|
+ Qt::DirectConnection); |
|
} |
|
#endif |
|
} |
|
@@ -1019,6 +1022,13 @@ |
|
emit connection->sslErrors(errors); |
|
} |
|
|
|
+void QHttpNetworkConnectionChannel::_q_extendedContextInitialization(ssl_ctx_st* ctx) |
|
+{ |
|
+ if (!socket) |
|
+ return; |
|
+ emit connection->extendedContextInitialization(ctx, qobject_cast<QSslSocket*>(socket)); |
|
+} |
|
+ |
|
void QHttpNetworkConnectionChannel::_q_encryptedBytesWritten(qint64 bytes) |
|
{ |
|
Q_UNUSED(bytes); |
|
diff -ur qt-everywhere-opensource-src-4.6.3.orig/src/network/access/qhttpnetworkconnectionchannel_p.h qt-everywhere-opensource-src-4.6.3.new/src/network/access/qhttpnetworkconnectionchannel_p.h |
|
--- qt-everywhere-opensource-src-4.6.3.orig/src/network/access/qhttpnetworkconnectionchannel_p.h 2010-06-02 04:03:17.000000000 +0200 |
|
+++ qt-everywhere-opensource-src-4.6.3.new/src/network/access/qhttpnetworkconnectionchannel_p.h 2011-01-14 13:24:28.974841007 +0100 |
|
@@ -76,6 +76,10 @@ |
|
# include <QtNetwork/qtcpsocket.h> |
|
#endif |
|
|
|
+#ifndef QT_NO_OPENSSL |
|
+struct ssl_ctx_st; |
|
+#endif |
|
+ |
|
QT_BEGIN_NAMESPACE |
|
|
|
class QHttpNetworkRequest; |
|
@@ -175,6 +179,7 @@ |
|
#ifndef QT_NO_OPENSSL |
|
void _q_encrypted(); // start sending request (https) |
|
void _q_sslErrors(const QList<QSslError> &errors); // ssl errors from the socket |
|
+ void _q_extendedContextInitialization(ssl_ctx_st *ctx); |
|
void _q_encryptedBytesWritten(qint64 bytes); // proceed sending |
|
#endif |
|
}; |
|
diff -ur qt-everywhere-opensource-src-4.6.3.orig/src/network/access/qhttpnetworkconnection_p.h qt-everywhere-opensource-src-4.6.3.new/src/network/access/qhttpnetworkconnection_p.h |
|
--- qt-everywhere-opensource-src-4.6.3.orig/src/network/access/qhttpnetworkconnection_p.h 2010-06-02 04:03:17.000000000 +0200 |
|
+++ qt-everywhere-opensource-src-4.6.3.new/src/network/access/qhttpnetworkconnection_p.h 2011-01-14 13:19:27.444841004 +0100 |
|
@@ -123,6 +123,7 @@ |
|
|
|
Q_SIGNALS: |
|
void sslErrors(const QList<QSslError> &errors); |
|
+ void extendedContextInitialization(ssl_ctx_st *ctx, QSslSocket *socket); |
|
#endif |
|
|
|
Q_SIGNALS: |
|
diff -ur qt-everywhere-opensource-src-4.6.3.orig/src/network/access/qnetworkaccessbackend.cpp qt-everywhere-opensource-src-4.6.3.new/src/network/access/qnetworkaccessbackend.cpp |
|
--- qt-everywhere-opensource-src-4.6.3.orig/src/network/access/qnetworkaccessbackend.cpp 2010-06-02 04:03:17.000000000 +0200 |
|
+++ qt-everywhere-opensource-src-4.6.3.new/src/network/access/qnetworkaccessbackend.cpp 2011-01-14 13:29:49.374841004 +0100 |
|
@@ -341,4 +341,13 @@ |
|
#endif |
|
} |
|
|
|
+void QNetworkAccessBackend::extendedContextInitialization(ssl_ctx_st* ctx, QSslSocket *socket) |
|
+{ |
|
+#ifndef QT_NO_OPENSSL |
|
+ reply->extendedContextInitialization(ctx, socket); |
|
+#else |
|
+ Q_UNUSED(ctx); |
|
+#endif |
|
+} |
|
+ |
|
QT_END_NAMESPACE |
|
diff -ur qt-everywhere-opensource-src-4.6.3.orig/src/network/access/qnetworkaccessbackend_p.h qt-everywhere-opensource-src-4.6.3.new/src/network/access/qnetworkaccessbackend_p.h |
|
--- qt-everywhere-opensource-src-4.6.3.orig/src/network/access/qnetworkaccessbackend_p.h 2010-06-02 04:03:17.000000000 +0200 |
|
+++ qt-everywhere-opensource-src-4.6.3.new/src/network/access/qnetworkaccessbackend_p.h 2011-01-14 13:30:12.634841002 +0100 |
|
@@ -56,6 +56,10 @@ |
|
#include "qnetworkreplyimpl_p.h" |
|
#include "QtCore/qobject.h" |
|
|
|
+#ifndef QT_NO_OPENSSL |
|
+struct ssl_ctx_st; |
|
+#endif |
|
+ |
|
QT_BEGIN_NAMESPACE |
|
|
|
class QAuthenticator; |
|
@@ -185,6 +189,7 @@ |
|
void redirectionRequested(const QUrl &destination); |
|
void sslErrors(const QList<QSslError> &errors); |
|
void emitReplyUploadProgress(qint64 bytesSent, qint64 bytesTotal); |
|
+ void extendedContextInitialization(ssl_ctx_st *ctx, QSslSocket *socket); |
|
|
|
private: |
|
friend class QNetworkAccessManager; |
|
diff -ur qt-everywhere-opensource-src-4.6.3.orig/src/network/access/qnetworkaccesshttpbackend.cpp qt-everywhere-opensource-src-4.6.3.new/src/network/access/qnetworkaccesshttpbackend.cpp |
|
--- qt-everywhere-opensource-src-4.6.3.orig/src/network/access/qnetworkaccesshttpbackend.cpp 2010-06-02 04:03:17.000000000 +0200 |
|
+++ qt-everywhere-opensource-src-4.6.3.new/src/network/access/qnetworkaccesshttpbackend.cpp 2011-01-14 13:18:35.404841004 +0100 |
|
@@ -349,6 +349,8 @@ |
|
#ifndef QT_NO_OPENSSL |
|
connect(http, SIGNAL(sslErrors(QList<QSslError>)), |
|
SLOT(sslErrors(QList<QSslError>))); |
|
+ connect(http, SIGNAL(extendedContextInitialization(ssl_ctx_st*, QSslSocket*)), |
|
+ SLOT(extendedContextInitialization(ssl_ctx_st*, QSslSocket*))); |
|
#endif |
|
} |
|
|
|
diff -ur qt-everywhere-opensource-src-4.6.3.orig/src/network/access/qnetworkaccessmanager.cpp qt-everywhere-opensource-src-4.6.3.new/src/network/access/qnetworkaccessmanager.cpp |
|
--- qt-everywhere-opensource-src-4.6.3.orig/src/network/access/qnetworkaccessmanager.cpp 2010-06-02 04:03:17.000000000 +0200 |
|
+++ qt-everywhere-opensource-src-4.6.3.new/src/network/access/qnetworkaccessmanager.cpp 2011-01-14 13:21:07.544841001 +0100 |
|
@@ -777,6 +777,16 @@ |
|
#endif |
|
} |
|
|
|
+void QNetworkAccessManagerPrivate::_q_extendedContextInitialization(ssl_ctx_st *ctx, QSslSocket *socket) |
|
+{ |
|
+#ifndef QT_NO_OPENSSL |
|
+ Q_Q(QNetworkAccessManager); |
|
+ emit q->extendedContextInitialization(ctx, socket); |
|
+#else |
|
+ Q_UNUSED(ctx); |
|
+#endif |
|
+} |
|
+ |
|
QNetworkReply *QNetworkAccessManagerPrivate::postProcess(QNetworkReply *reply) |
|
{ |
|
Q_Q(QNetworkAccessManager); |
|
@@ -786,6 +796,7 @@ |
|
/* In case we're compiled without SSL support, we don't have this signal and we need to |
|
* avoid getting a connection error. */ |
|
q->connect(reply, SIGNAL(sslErrors(QList<QSslError>)), SLOT(_q_replySslErrors(QList<QSslError>))); |
|
+ q->connect(reply, SIGNAL(extendedContextInitialization(ssl_ctx_st*, QSslSocket*)), SLOT(_q_extendedContextInitialization(ssl_ctx_st*, QSslSocket*))); |
|
#endif |
|
|
|
return reply; |
|
diff -ur qt-everywhere-opensource-src-4.6.3.orig/src/network/access/qnetworkaccessmanager.h qt-everywhere-opensource-src-4.6.3.new/src/network/access/qnetworkaccessmanager.h |
|
--- qt-everywhere-opensource-src-4.6.3.orig/src/network/access/qnetworkaccessmanager.h 2010-06-02 04:03:17.000000000 +0200 |
|
+++ qt-everywhere-opensource-src-4.6.3.new/src/network/access/qnetworkaccessmanager.h 2011-01-14 13:22:42.014840998 +0100 |
|
@@ -46,6 +46,10 @@ |
|
|
|
QT_BEGIN_HEADER |
|
|
|
+#ifndef QT_NO_OPENSSL |
|
+struct ssl_ctx_st; |
|
+#endif |
|
+ |
|
QT_BEGIN_NAMESPACE |
|
|
|
QT_MODULE(Network) |
|
@@ -62,6 +66,7 @@ |
|
class QNetworkProxy; |
|
class QNetworkProxyFactory; |
|
class QSslError; |
|
+class QSslSocket; |
|
|
|
class QNetworkReplyImplPrivate; |
|
class QNetworkAccessManagerPrivate; |
|
@@ -111,6 +116,7 @@ |
|
void finished(QNetworkReply *reply); |
|
#ifndef QT_NO_OPENSSL |
|
void sslErrors(QNetworkReply *reply, const QList<QSslError> &errors); |
|
+ void extendedContextInitialization(ssl_ctx_st *ctx, QSslSocket *socket); |
|
#endif |
|
|
|
protected: |
|
@@ -122,6 +128,7 @@ |
|
Q_DECLARE_PRIVATE(QNetworkAccessManager) |
|
Q_PRIVATE_SLOT(d_func(), void _q_replyFinished()) |
|
Q_PRIVATE_SLOT(d_func(), void _q_replySslErrors(QList<QSslError>)) |
|
+ Q_PRIVATE_SLOT(d_func(), void _q_extendedContextInitialization(ssl_ctx_st*, QSslSocket*)) |
|
}; |
|
|
|
QT_END_NAMESPACE |
|
diff -ur qt-everywhere-opensource-src-4.6.3.orig/src/network/access/qnetworkaccessmanager_p.h qt-everywhere-opensource-src-4.6.3.new/src/network/access/qnetworkaccessmanager_p.h |
|
--- qt-everywhere-opensource-src-4.6.3.orig/src/network/access/qnetworkaccessmanager_p.h 2010-06-02 04:03:17.000000000 +0200 |
|
+++ qt-everywhere-opensource-src-4.6.3.new/src/network/access/qnetworkaccessmanager_p.h 2011-01-14 13:28:00.214841000 +0100 |
|
@@ -59,6 +59,10 @@ |
|
#include "private/qobject_p.h" |
|
#include "QtNetwork/qnetworkproxy.h" |
|
|
|
+#ifndef QT_NO_OPENSSL |
|
+struct ssl_ctx_st; |
|
+#endif |
|
+ |
|
QT_BEGIN_NAMESPACE |
|
|
|
class QAuthenticator; |
|
@@ -80,6 +84,7 @@ |
|
|
|
void _q_replyFinished(); |
|
void _q_replySslErrors(const QList<QSslError> &errors); |
|
+ void _q_extendedContextInitialization(ssl_ctx_st *ctx, QSslSocket *socket); |
|
QNetworkReply *postProcess(QNetworkReply *reply); |
|
void createCookieJar() const; |
|
|
|
diff -ur qt-everywhere-opensource-src-4.6.3.orig/src/network/access/qnetworkreply.h qt-everywhere-opensource-src-4.6.3.new/src/network/access/qnetworkreply.h |
|
--- qt-everywhere-opensource-src-4.6.3.orig/src/network/access/qnetworkreply.h 2010-06-02 04:03:17.000000000 +0200 |
|
+++ qt-everywhere-opensource-src-4.6.3.new/src/network/access/qnetworkreply.h 2011-01-14 13:20:14.464841001 +0100 |
|
@@ -51,6 +51,10 @@ |
|
|
|
QT_BEGIN_HEADER |
|
|
|
+#ifndef QT_NO_OPENSSL |
|
+struct ssl_ctx_st; |
|
+#endif |
|
+ |
|
QT_BEGIN_NAMESPACE |
|
|
|
QT_MODULE(Network) |
|
@@ -146,6 +150,7 @@ |
|
void error(QNetworkReply::NetworkError); |
|
#ifndef QT_NO_OPENSSL |
|
void sslErrors(const QList<QSslError> &errors); |
|
+ void extendedContextInitialization(ssl_ctx_st *ctx, QSslSocket *socket); |
|
#endif |
|
|
|
void uploadProgress(qint64 bytesSent, qint64 bytesTotal); |
|
diff -ur qt-everywhere-opensource-src-4.6.3.orig/src/network/access/qnetworkreplyimpl.cpp qt-everywhere-opensource-src-4.6.3.new/src/network/access/qnetworkreplyimpl.cpp |
|
--- qt-everywhere-opensource-src-4.6.3.orig/src/network/access/qnetworkreplyimpl.cpp 2010-06-02 04:03:17.000000000 +0200 |
|
+++ qt-everywhere-opensource-src-4.6.3.new/src/network/access/qnetworkreplyimpl.cpp 2011-01-14 13:28:57.174841008 +0100 |
|
@@ -590,6 +590,16 @@ |
|
#endif |
|
} |
|
|
|
+void QNetworkReplyImplPrivate::extendedContextInitialization(ssl_ctx_st* ctx, QSslSocket *socket) |
|
+{ |
|
+#ifndef QT_NO_OPENSSL |
|
+ Q_Q(QNetworkReplyImpl); |
|
+ emit q->extendedContextInitialization(ctx, socket); |
|
+#else |
|
+ Q_UNUSED(ctx); |
|
+#endif |
|
+} |
|
+ |
|
bool QNetworkReplyImplPrivate::isFinished() const |
|
{ |
|
return (state == Finished || state == Aborted); |
|
diff -ur qt-everywhere-opensource-src-4.6.3.orig/src/network/access/qnetworkreplyimpl_p.h qt-everywhere-opensource-src-4.6.3.new/src/network/access/qnetworkreplyimpl_p.h |
|
--- qt-everywhere-opensource-src-4.6.3.orig/src/network/access/qnetworkreplyimpl_p.h 2010-06-02 04:03:17.000000000 +0200 |
|
+++ qt-everywhere-opensource-src-4.6.3.new/src/network/access/qnetworkreplyimpl_p.h 2011-01-14 13:29:14.444841006 +0100 |
|
@@ -63,6 +63,10 @@ |
|
#include "private/qringbuffer_p.h" |
|
#include "private/qbytedata_p.h" |
|
|
|
+#ifndef QT_NO_OPENSSL |
|
+struct ssl_ctx_st; |
|
+#endif |
|
+ |
|
QT_BEGIN_NAMESPACE |
|
|
|
class QAbstractNetworkCache; |
|
@@ -157,6 +161,7 @@ |
|
void metaDataChanged(); |
|
void redirectionRequested(const QUrl &target); |
|
void sslErrors(const QList<QSslError> &errors); |
|
+ void extendedContextInitialization(ssl_ctx_st *ctx, QSslSocket *socket); |
|
|
|
bool isFinished() const; |
|
|
|
diff -ur qt-everywhere-opensource-src-4.6.3.orig/src/network/ssl/qsslsocket.h qt-everywhere-opensource-src-4.6.3.new/src/network/ssl/qsslsocket.h |
|
--- qt-everywhere-opensource-src-4.6.3.orig/src/network/ssl/qsslsocket.h 2010-06-02 04:03:17.000000000 +0200 |
|
+++ qt-everywhere-opensource-src-4.6.3.new/src/network/ssl/qsslsocket.h 2011-01-14 09:20:28.954841003 +0100 |
|
@@ -52,6 +52,10 @@ |
|
|
|
QT_BEGIN_HEADER |
|
|
|
+#ifndef QT_NO_OPENSSL |
|
+struct ssl_ctx_st; |
|
+#endif |
|
+ |
|
QT_BEGIN_NAMESPACE |
|
|
|
QT_MODULE(Network) |
|
@@ -186,6 +190,7 @@ |
|
void sslErrors(const QList<QSslError> &errors); |
|
void modeChanged(QSslSocket::SslMode newMode); |
|
void encryptedBytesWritten(qint64 totalBytes); |
|
+ void extendedContextInitialization(ssl_ctx_st* ctx); |
|
|
|
protected Q_SLOTS: |
|
void connectToHostImplementation(const QString &hostName, quint16 port, |
|
diff -ur qt-everywhere-opensource-src-4.6.3.orig/src/network/ssl/qsslsocket_openssl.cpp qt-everywhere-opensource-src-4.6.3.new/src/network/ssl/qsslsocket_openssl.cpp |
|
--- qt-everywhere-opensource-src-4.6.3.orig/src/network/ssl/qsslsocket_openssl.cpp 2010-06-02 04:03:17.000000000 +0200 |
|
+++ qt-everywhere-opensource-src-4.6.3.new/src/network/ssl/qsslsocket_openssl.cpp 2011-01-14 09:20:28.954841003 +0100 |
|
@@ -340,6 +340,8 @@ |
|
// Set verification depth. |
|
if (configuration.peerVerifyDepth != 0) |
|
q_SSL_CTX_set_verify_depth(ctx, configuration.peerVerifyDepth); |
|
+ |
|
+ emit q->extendedContextInitialization(ctx); |
|
|
|
// Create and initialize SSL session |
|
if (!(ssl = q_SSL_new(ctx))) {
|
|
|