summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swiften/FileTransfer/JingleFileTransfer.cpp')
-rw-r--r--Swiften/FileTransfer/JingleFileTransfer.cpp19
1 files changed, 15 insertions, 4 deletions
diff --git a/Swiften/FileTransfer/JingleFileTransfer.cpp b/Swiften/FileTransfer/JingleFileTransfer.cpp
index dbc4391..cf67a67 100644
--- a/Swiften/FileTransfer/JingleFileTransfer.cpp
+++ b/Swiften/FileTransfer/JingleFileTransfer.cpp
@@ -8,13 +8,13 @@
#include <boost/typeof/typeof.hpp>
+#include <Swiften/Base/Log.h>
#include <Swiften/Base/foreach.h>
-#include <Swiften/JID/JID.h>
#include <Swiften/Crypto/CryptoProvider.h>
-#include <Swiften/StringCodecs/Hexify.h>
-#include <Swiften/Jingle/JingleSession.h>
#include <Swiften/FileTransfer/FileTransferTransporter.h>
-#include <Swiften/Base/Log.h>
+#include <Swiften/JID/JID.h>
+#include <Swiften/Jingle/JingleSession.h>
+#include <Swiften/StringCodecs/Hexify.h>
using namespace Swift;
@@ -213,6 +213,7 @@ void JingleFileTransfer::handleTransportInfoReceived(
}
void JingleFileTransfer::setTransporter(FileTransferTransporter* transporter) {
+ SWIFT_LOG_ASSERT(!this->transporter, error);
this->transporter = transporter;
localTransportCandidatesGeneratedConnection = transporter->onLocalCandidatesGenerated.connect(
boost::bind(&JingleFileTransfer::handleLocalTransportCandidatesGenerated, this, _1, _2, _3));
@@ -222,3 +223,13 @@ void JingleFileTransfer::setTransporter(FileTransferTransporter* transporter) {
boost::bind(&JingleFileTransfer::handleProxyActivateFinished, this, _1, _2));
}
+void JingleFileTransfer::removeTransporter() {
+ if (transporter) {
+ localTransportCandidatesGeneratedConnection.release();
+ remoteTransportCandidateSelectFinishedConnection.release();
+ proxyActivatedConnection.release();
+ delete transporter;
+ transporter = NULL;
+ }
+}
+