summaryrefslogtreecommitdiffstats
path: root/src/pvs.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/pvs.cpp')
-rw-r--r--src/pvs.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/pvs.cpp b/src/pvs.cpp
index c7fe5ce..af5958e 100644
--- a/src/pvs.cpp
+++ b/src/pvs.cpp
@@ -659,6 +659,8 @@ bool PVS::createMulticastTransfer(QString const& objectPath, quint64& transferID
connect(transfer, SIGNAL(failed(qulonglong, QString const)), SIGNAL(outgoingMulticastTransferFailed(qulonglong, QString const)));
connect(transfer, SIGNAL(progress(qulonglong, qulonglong, qulonglong)), SIGNAL(outgoingMulticastTransferProgress(qulonglong, qulonglong, qulonglong)));
connect(transfer, SIGNAL(announce(PVSMsg)), _pvsServerConnection, SLOT(sendMessage(PVSMsg)));
+ connect(transfer, SIGNAL(finished(qulonglong)), SLOT(outgoingMulticastTransferDelete(qulonglong)));
+ connect(transfer, SIGNAL(failed(qulonglong, QString const)), SLOT(outgoingMulticastTransferDelete(qulonglong)));
QTimer::singleShot(0, transfer, SLOT(start()));
errorReason = "";
return true;
@@ -687,3 +689,12 @@ quint64 PVS::generateMcastTransferID()
return (nodeID & Q_UINT64_C(0xffffffffffff0000)) | (quint64)(++counter);
}
+void PVS::outgoingMulticastTransferDelete(qulonglong transferID)
+{
+ PVSOutgoingMulticastTransfer* transfer = _outgoingTransfers.value(transferID, 0);
+ if (!transfer)
+ return;
+
+ _outgoingTransfers.remove(transferID);
+ transfer->deleteLater();
+}