summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemko Tronçon <git@el-tramo.be>2010-11-07 10:41:22 (GMT)
committerRemko Tronçon <git@el-tramo.be>2010-11-07 10:41:22 (GMT)
commit52c716c657cf4f5b0a5767f59dc7ddb04261f534 (patch)
tree37d62ff65227746c184fbb0eac011d0577f199d7 /Swiften/Session
parentbec14a3e051a97f543175a8bdcc2c1c6fd18ce77 (diff)
downloadswift-52c716c657cf4f5b0a5767f59dc7ddb04261f534.zip
swift-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/Session')
-rw-r--r--Swiften/Session/BasicSessionStream.cpp8
-rw-r--r--Swiften/Session/BasicSessionStream.h6
2 files changed, 7 insertions, 7 deletions
diff --git a/Swiften/Session/BasicSessionStream.cpp b/Swiften/Session/BasicSessionStream.cpp
index e2c2ebe..a4b1c84 100644
--- a/Swiften/Session/BasicSessionStream.cpp
+++ b/Swiften/Session/BasicSessionStream.cpp
@@ -14,11 +14,11 @@
#include "Swiften/StreamStack/WhitespacePingLayer.h"
#include "Swiften/StreamStack/CompressionLayer.h"
#include "Swiften/StreamStack/TLSLayer.h"
-#include "Swiften/StreamStack/TLSLayerFactory.h"
+#include "Swiften/TLS/TLSContextFactory.h"
namespace Swift {
-BasicSessionStream::BasicSessionStream(StreamType streamType, boost::shared_ptr<Connection> connection, PayloadParserFactoryCollection* payloadParserFactories, PayloadSerializerCollection* payloadSerializers, TLSLayerFactory* tlsLayerFactory, TimerFactory* timerFactory) : available(false), connection(connection), payloadParserFactories(payloadParserFactories), payloadSerializers(payloadSerializers), tlsLayerFactory(tlsLayerFactory), timerFactory(timerFactory), streamType(streamType) {
+BasicSessionStream::BasicSessionStream(StreamType streamType, boost::shared_ptr<Connection> connection, PayloadParserFactoryCollection* payloadParserFactories, PayloadSerializerCollection* payloadSerializers, TLSContextFactory* tlsContextFactory, TimerFactory* timerFactory) : available(false), connection(connection), payloadParserFactories(payloadParserFactories), payloadSerializers(payloadSerializers), tlsContextFactory(tlsContextFactory), timerFactory(timerFactory), streamType(streamType) {
}
void BasicSessionStream::initialize() {
@@ -64,12 +64,12 @@ bool BasicSessionStream::isAvailable() {
}
bool BasicSessionStream::supportsTLSEncryption() {
- return tlsLayerFactory && tlsLayerFactory->canCreate();
+ return tlsContextFactory && tlsContextFactory->canCreate();
}
void BasicSessionStream::addTLSEncryption() {
assert(available);
- tlsLayer = tlsLayerFactory->createTLSLayer();
+ tlsLayer = boost::shared_ptr<TLSLayer>(new TLSLayer(tlsContextFactory));
if (hasTLSCertificate() && !tlsLayer->setClientCertificate(getTLSCertificate())) {
onError(boost::shared_ptr<Error>(new Error(Error::InvalidTLSCertificateError)));
}
diff --git a/Swiften/Session/BasicSessionStream.h b/Swiften/Session/BasicSessionStream.h
index bea9406..22620be 100644
--- a/Swiften/Session/BasicSessionStream.h
+++ b/Swiften/Session/BasicSessionStream.h
@@ -14,7 +14,7 @@
#include "Swiften/Elements/StreamType.h"
namespace Swift {
- class TLSLayerFactory;
+ class TLSContextFactory;
class TLSLayer;
class TimerFactory;
class WhitespacePingLayer;
@@ -34,7 +34,7 @@ namespace Swift {
boost::shared_ptr<Connection> connection,
PayloadParserFactoryCollection* payloadParserFactories,
PayloadSerializerCollection* payloadSerializers,
- TLSLayerFactory* tlsLayerFactory,
+ TLSContextFactory* tlsContextFactory,
TimerFactory* whitespacePingLayerFactory
);
~BasicSessionStream();
@@ -72,7 +72,7 @@ namespace Swift {
boost::shared_ptr<Connection> connection;
PayloadParserFactoryCollection* payloadParserFactories;
PayloadSerializerCollection* payloadSerializers;
- TLSLayerFactory* tlsLayerFactory;
+ TLSContextFactory* tlsContextFactory;
TimerFactory* timerFactory;
StreamType streamType;
boost::shared_ptr<XMPPLayer> xmppLayer;