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/StreamStack/TLSLayer.cpp
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/StreamStack/TLSLayer.cpp')
-rw-r--r--Swiften/StreamStack/TLSLayer.cpp41
1 files changed, 41 insertions, 0 deletions
diff --git a/Swiften/StreamStack/TLSLayer.cpp b/Swiften/StreamStack/TLSLayer.cpp
new file mode 100644
index 0000000..99154f6
--- /dev/null
+++ b/Swiften/StreamStack/TLSLayer.cpp
@@ -0,0 +1,41 @@
+/*
+ * Copyright (c) 2010 Remko Tronçon
+ * Licensed under the GNU General Public License v3.
+ * See Documentation/Licenses/GPLv3.txt for more information.
+ */
+
+#include "Swiften/StreamStack/TLSLayer.h"
+#include "Swiften/TLS/TLSContextFactory.h"
+#include "Swiften/TLS/TLSContext.h"
+
+namespace Swift {
+
+TLSLayer::TLSLayer(TLSContextFactory* factory) {
+ context = factory->createTLSContext();
+ context->onDataForNetwork.connect(onWriteData);
+ context->onDataForApplication.connect(onDataRead);
+ context->onConnected.connect(onConnected);
+ context->onError.connect(onError);
+}
+
+TLSLayer::~TLSLayer() {
+ delete context;
+}
+
+void TLSLayer::connect() {
+ context->connect();
+}
+
+void TLSLayer::writeData(const ByteArray& data) {
+ context->handleDataFromApplication(data);
+}
+
+void TLSLayer::handleDataRead(const ByteArray& data) {
+ context->handleDataFromNetwork(data);
+}
+
+bool TLSLayer::setClientCertificate(const PKCS12Certificate& certificate) {
+ return context->setClientCertificate(certificate);
+}
+
+}