diff options
author | Remko Tronçon <git@el-tramo.be> | 2010-11-07 10:41:22 (GMT) |
---|---|---|
committer | Remko Tronçon <git@el-tramo.be> | 2010-11-07 10:41:22 (GMT) |
commit | 52c716c657cf4f5b0a5767f59dc7ddb04261f534 (patch) | |
tree | 37d62ff65227746c184fbb0eac011d0577f199d7 /Swiften/TLS/OpenSSL | |
parent | bec14a3e051a97f543175a8bdcc2c1c6fd18ce77 (diff) | |
download | swift-contrib-52c716c657cf4f5b0a5767f59dc7ddb04261f534.zip swift-contrib-52c716c657cf4f5b0a5767f59dc7ddb04261f534.tar.bz2 |
Refactored TLS handling.
TLSLayer is now independent of TLS implementation. The implementation-specifics are now in TLSContext and TLSContextFactory.
Diffstat (limited to 'Swiften/TLS/OpenSSL')
-rw-r--r-- | Swiften/TLS/OpenSSL/OpenSSLContext.h | 9 | ||||
-rw-r--r-- | Swiften/TLS/OpenSSL/OpenSSLContextFactory.cpp | 20 | ||||
-rw-r--r-- | Swiften/TLS/OpenSSL/OpenSSLContextFactory.h | 17 |
3 files changed, 39 insertions, 7 deletions
diff --git a/Swiften/TLS/OpenSSL/OpenSSLContext.h b/Swiften/TLS/OpenSSL/OpenSSLContext.h index eea8301..a01e3e5 100644 --- a/Swiften/TLS/OpenSSL/OpenSSLContext.h +++ b/Swiften/TLS/OpenSSL/OpenSSLContext.h @@ -10,12 +10,13 @@ #include "Swiften/Base/boost_bsignals.h" #include <boost/noncopyable.hpp> +#include "Swiften/TLS/TLSContext.h" #include "Swiften/Base/ByteArray.h" namespace Swift { class PKCS12Certificate; - class OpenSSLContext : boost::noncopyable { + class OpenSSLContext : public TLSContext, boost::noncopyable { public: OpenSSLContext(); ~OpenSSLContext(); @@ -26,12 +27,6 @@ namespace Swift { void handleDataFromNetwork(const ByteArray&); void handleDataFromApplication(const ByteArray&); - public: - boost::signal<void (const ByteArray&)> onDataForNetwork; - boost::signal<void (const ByteArray&)> onDataForApplication; - boost::signal<void ()> onError; - boost::signal<void ()> onConnected; - private: static void ensureLibraryInitialized(); diff --git a/Swiften/TLS/OpenSSL/OpenSSLContextFactory.cpp b/Swiften/TLS/OpenSSL/OpenSSLContextFactory.cpp new file mode 100644 index 0000000..f975df7 --- /dev/null +++ b/Swiften/TLS/OpenSSL/OpenSSLContextFactory.cpp @@ -0,0 +1,20 @@ +/* + * Copyright (c) 2010 Remko Tronçon + * Licensed under the GNU General Public License v3. + * See Documentation/Licenses/GPLv3.txt for more information. + */ + +#include "Swiften/TLS/OpenSSL/OpenSSLContextFactory.h" +#include "Swiften/TLS/OpenSSL/OpenSSLContext.h" + +namespace Swift { + +bool OpenSSLContextFactory::canCreate() const { + return true; +} + +TLSContext* OpenSSLContextFactory::createTLSContext() { + return new OpenSSLContext(); +} + +} diff --git a/Swiften/TLS/OpenSSL/OpenSSLContextFactory.h b/Swiften/TLS/OpenSSL/OpenSSLContextFactory.h new file mode 100644 index 0000000..cf982c0 --- /dev/null +++ b/Swiften/TLS/OpenSSL/OpenSSLContextFactory.h @@ -0,0 +1,17 @@ +/* + * Copyright (c) 2010 Remko Tronçon + * Licensed under the GNU General Public License v3. + * See Documentation/Licenses/GPLv3.txt for more information. + */ + +#pragma once + +#include "Swiften/TLS/TLSContextFactory.h" + +namespace Swift { + class OpenSSLContextFactory : public TLSContextFactory { + public: + bool canCreate() const; + virtual TLSContext* createTLSContext(); + }; +} |