diff options
| author | Manjeet Dahiya <manjeetdahiya@gmail.com> | 2011-06-12 09:22:50 +0000 |
|---|---|---|
| committer | Manjeet Dahiya <manjeetdahiya@gmail.com> | 2011-06-12 09:22:50 +0000 |
| commit | 7a2f8ad0f91382c2f7c8d7909f2d59ad0cd3cb45 (patch) | |
| tree | 7db4fe3508d5cf7af7f1e576741c5b72872d7e72 /src | |
| parent | ae2decb4e461d01759f0709552ba37c61f75822f (diff) | |
| download | qxmpp-7a2f8ad0f91382c2f7c8d7909f2d59ad0cd3cb45.tar.gz | |
Fix for : Issue 106: QXmppClient can't override Qt's set of trusted SSL CAs
Diffstat (limited to 'src')
| -rw-r--r-- | src/QXmppConfiguration.cpp | 18 | ||||
| -rw-r--r-- | src/QXmppConfiguration.h | 6 | ||||
| -rw-r--r-- | src/QXmppOutgoingClient.cpp | 2 |
3 files changed, 25 insertions, 1 deletions
diff --git a/src/QXmppConfiguration.cpp b/src/QXmppConfiguration.cpp index b47b3874..4703d510 100644 --- a/src/QXmppConfiguration.cpp +++ b/src/QXmppConfiguration.cpp @@ -22,6 +22,7 @@ */ +#include <QSslSocket> #include "QXmppConfiguration.h" #include "QXmppUtils.h" @@ -39,7 +40,8 @@ QXmppConfiguration::QXmppConfiguration() : m_port(5222), m_ignoreSslErrors(true), m_streamSecurityMode(QXmppConfiguration::TLSEnabled), m_nonSASLAuthMechanism(QXmppConfiguration::NonSASLDigest), - m_SASLAuthMechanism(QXmppConfiguration::SASLDigestMD5) + m_SASLAuthMechanism(QXmppConfiguration::SASLDigestMD5), + m_caCertificates(QSslSocket::defaultCaCertificates()) { } @@ -429,6 +431,20 @@ int QXmppConfiguration::keepAliveTimeout() const return m_keepAliveTimeout; } +/// Specifies a list of trusted CA certificates. + +void QXmppConfiguration::setCaCertificates(const QList<QSslCertificate> &caCertificates) +{ + m_caCertificates = caCertificates; +} + +/// Returns the a list of trusted CA certificates. + +QList<QSslCertificate> QXmppConfiguration::caCertificates() const +{ + return m_caCertificates; +} + // obsolete QString QXmppConfiguration::passwd() const diff --git a/src/QXmppConfiguration.h b/src/QXmppConfiguration.h index f99b98f2..faed2fdc 100644 --- a/src/QXmppConfiguration.h +++ b/src/QXmppConfiguration.h @@ -27,6 +27,7 @@ #include <QString> #include <QNetworkProxy> +#include <QSslCertificate> /// \brief The QXmppConfiguration class holds configuration options. /// @@ -135,6 +136,9 @@ public: int keepAliveTimeout() const; void setKeepAliveTimeout(int secs); + QList<QSslCertificate> caCertificates() const; + void setCaCertificates(const QList<QSslCertificate> &); + /// \cond // deprecated in release 0.3.0 QString Q_DECL_DEPRECATED passwd() const; @@ -193,6 +197,8 @@ private: SASLAuthMechanism m_SASLAuthMechanism; QNetworkProxy m_networkProxy; + + QList<QSslCertificate> m_caCertificates; }; #endif // QXMPPCONFIGURATION_H diff --git a/src/QXmppOutgoingClient.cpp b/src/QXmppOutgoingClient.cpp index fdb3cc8a..8ad57b18 100644 --- a/src/QXmppOutgoingClient.cpp +++ b/src/QXmppOutgoingClient.cpp @@ -151,6 +151,8 @@ void QXmppOutgoingClient::connectToHost() const QString host = configuration().host(); const quint16 port = configuration().port(); + socket()->setCaCertificates(configuration().caCertificates()); + // if an explicit host was provided, connect to it if (!host.isEmpty() && port) { |
