Make the default ssloptions testable.

Centralise the specification of the default ssloptions to make the code
clearer and more testable.

Change-Id: I4f4bae72736dd063ee4cd64c6375e82d0600a105
Reviewed-by: Peter Hartmann <peter.hartmann@nokia.com>
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
This commit is contained in:
Richard Moore 2011-11-27 12:45:30 +00:00 committed by Qt by Nokia
parent 79923f5b32
commit 3d3fdcd3a5
3 changed files with 12 additions and 2 deletions

View File

@ -47,6 +47,9 @@
QT_BEGIN_NAMESPACE QT_BEGIN_NAMESPACE
const QSsl::SslOptions QSslConfigurationPrivate::defaultSslOptions = QSsl::SslOptionDisableEmptyFragments
|QSsl::SslOptionDisableLegacyRenegotiation;
/*! /*!
\class QSslConfiguration \class QSslConfiguration
\brief The QSslConfiguration class holds the configuration and state of an SSL connection \brief The QSslConfiguration class holds the configuration and state of an SSL connection
@ -201,7 +204,7 @@ bool QSslConfiguration::isNull() const
d->privateKey.isNull() && d->privateKey.isNull() &&
d->peerCertificate.isNull() && d->peerCertificate.isNull() &&
d->peerCertificateChain.count() == 0 && d->peerCertificateChain.count() == 0 &&
d->sslOptions == (QSsl::SslOptionDisableEmptyFragments|QSsl::SslOptionDisableLegacyRenegotiation)); d->sslOptions == QSslConfigurationPrivate::defaultSslOptions);
} }
/*! /*!

View File

@ -83,7 +83,7 @@ public:
: protocol(QSsl::SecureProtocols), : protocol(QSsl::SecureProtocols),
peerVerifyMode(QSslSocket::AutoVerifyPeer), peerVerifyMode(QSslSocket::AutoVerifyPeer),
peerVerifyDepth(0), peerVerifyDepth(0),
sslOptions(QSsl::SslOptionDisableEmptyFragments|QSsl::SslOptionDisableLegacyRenegotiation) sslOptions(QSslConfigurationPrivate::defaultSslOptions)
{ } { }
QSslCertificate peerCertificate; QSslCertificate peerCertificate;
@ -101,6 +101,8 @@ public:
QSsl::SslOptions sslOptions; QSsl::SslOptions sslOptions;
Q_AUTOTEST_EXPORT static const QSsl::SslOptions defaultSslOptions;
// in qsslsocket.cpp: // in qsslsocket.cpp:
static QSslConfiguration defaultConfiguration(); static QSslConfiguration defaultConfiguration();
static void setDefaultConfiguration(const QSslConfiguration &configuration); static void setDefaultConfiguration(const QSslConfiguration &configuration);

View File

@ -58,6 +58,7 @@
#ifndef QT_NO_OPENSSL #ifndef QT_NO_OPENSSL
#include "private/qsslsocket_openssl_p.h" #include "private/qsslsocket_openssl_p.h"
#include "private/qsslsocket_openssl_symbols_p.h" #include "private/qsslsocket_openssl_symbols_p.h"
#include "private/qsslconfiguration_p.h"
#endif #endif
#include "../../../network-settings.h" #include "../../../network-settings.h"
@ -2080,6 +2081,10 @@ void tst_QSslSocket::sslOptions()
if (!QSslSocket::supportsSsl()) if (!QSslSocket::supportsSsl())
return; return;
QCOMPARE(QSslSocketBackendPrivate::setupOpenSslOptions(QSsl::SecureProtocols,
QSslConfigurationPrivate::defaultSslOptions),
long(SSL_OP_ALL|SSL_OP_NO_SSLv2));
QCOMPARE(QSslSocketBackendPrivate::setupOpenSslOptions(QSsl::SecureProtocols, QCOMPARE(QSslSocketBackendPrivate::setupOpenSslOptions(QSsl::SecureProtocols,
QSsl::SslOptionDisableEmptyFragments QSsl::SslOptionDisableEmptyFragments
|QSsl::SslOptionDisableLegacyRenegotiation), |QSsl::SslOptionDisableLegacyRenegotiation),