diff options
author | Peter Hartmann <phartmann@rim.com> | 2012-12-21 14:02:38 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-02-06 23:24:44 +0100 |
commit | b5652df775efbd1c52eecee5f08e40e600e5d70b (patch) | |
tree | 6e860637d9f4997234d9f3631d339796481911a2 /src/network/ssl/qsslsocket_p.h | |
parent | 7765dff1bb8104ea145d55d32da194acb2de03ce (diff) |
SSL: Implement session sharing and use it from QNetworkAccessManager
This improves performance since a network round trip can be avoided.
Change-Id: I1aaff7e48ef9638cb137de0f43942c3a4dd2884a
Initial-patch-by: Markus Goetz <markus@woboq.com>
Reviewed-by: Richard J. Moore <rich@kde.org>
Diffstat (limited to 'src/network/ssl/qsslsocket_p.h')
-rw-r--r-- | src/network/ssl/qsslsocket_p.h | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/network/ssl/qsslsocket_p.h b/src/network/ssl/qsslsocket_p.h index 851dec5840..72117353ac 100644 --- a/src/network/ssl/qsslsocket_p.h +++ b/src/network/ssl/qsslsocket_p.h @@ -59,6 +59,7 @@ #include <private/qtcpsocket_p.h> #include "qsslkey.h" #include "qsslconfiguration_p.h" +#include <private/qsslcontext_p.h> #include <QtCore/qstringlist.h> @@ -114,6 +115,7 @@ public: QSslConfigurationPrivate configuration; QList<QSslError> sslErrors; + QSharedPointer<QSslContext> sslContextPointer; // if set, this hostname is used for certificate validation instead of the hostname // that was used for connecting to. @@ -121,6 +123,8 @@ public: bool allowRootCertOnDemandLoading; + static bool s_loadRootCertsOnDemand; + static bool supportsSsl(); static long sslLibraryVersionNumber(); static QString sslLibraryVersionString(); @@ -155,6 +159,9 @@ public: void createPlainSocket(QIODevice::OpenMode openMode); static void pauseSocketNotifiers(QSslSocket*); static void resumeSocketNotifiers(QSslSocket*); + // ### The 2 methods below should be made member methods once the QSslContext class is made public + static void checkSettingSslContext(QSslSocket*, QSharedPointer<QSslContext>); + static QSharedPointer<QSslContext> sslContext(QSslSocket *socket); bool isPaused() const; void _q_connectedSlot(); void _q_hostFoundSlot(); @@ -170,6 +177,8 @@ public: virtual void _q_caRootLoaded(QSslCertificate,QSslCertificate) = 0; #endif + static QList<QByteArray> unixRootCertDirectories(); // used also by QSslContext + virtual qint64 peek(char *data, qint64 maxSize); virtual QByteArray peek(qint64 maxSize); @@ -192,8 +201,6 @@ private: static bool s_loadedCiphersAndCerts; protected: bool verifyErrorsHaveBeenIgnored(); - static bool s_loadRootCertsOnDemand; - static QList<QByteArray> unixRootCertDirectories(); bool paused; }; |