summaryrefslogtreecommitdiffstats
path: root/pica-client/filetransfercontroller.cpp
diff options
context:
space:
mode:
authorme_desk <me_desk@fb96df88-216d-11de-830c-f3023f12d8ac>2014-08-06 23:32:53 +0000
committerme_desk <me_desk@fb96df88-216d-11de-830c-f3023f12d8ac>2014-08-06 23:32:53 +0000
commit249a43afa87a8fca8979cd9d0ec9ac6522205d2b (patch)
treef741991624e3c77d86c8b51e353228c8b5375833 /pica-client/filetransfercontroller.cpp
parent3e1c3cd989180d2085ce5af7f4db2b156d5df578 (diff)
downloadpica-pica-249a43afa87a8fca8979cd9d0ec9ac6522205d2b.tar.gz
pica-pica-249a43afa87a8fca8979cd9d0ec9ac6522205d2b.zip
handling peer disconnect and remote io error during filetransfer
git-svn-id: svn://localhost/project_picapica/trunk@316 fb96df88-216d-11de-830c-f3023f12d8ac
Diffstat (limited to 'pica-client/filetransfercontroller.cpp')
-rw-r--r--pica-client/filetransfercontroller.cpp23
1 files changed, 21 insertions, 2 deletions
diff --git a/pica-client/filetransfercontroller.cpp b/pica-client/filetransfercontroller.cpp
index 62d0285..9f07a38 100644
--- a/pica-client/filetransfercontroller.cpp
+++ b/pica-client/filetransfercontroller.cpp
@@ -18,6 +18,23 @@ FileTransferController::FileTransferController(QObject *parent) :
connect(skynet, SIGNAL(OutgoingFileRequestAccepted(QByteArray)), this, SLOT(file_accepted_by_peer(QByteArray)));
connect(skynet, SIGNAL(OutgoingFileRequestDenied(QByteArray)), this, SLOT(file_denied_by_peer(QByteArray)));
+
+ connect(skynet, SIGNAL(ChannelClosed(QByteArray)), this, SLOT(file_peer_disconnected(QByteArray)));
+}
+
+void FileTransferController::file_peer_disconnected(QByteArray peer_id)
+{
+ if (ftdialogs_in.contains(peer_id))
+ {
+ ftdialogs_in[peer_id]->peerDisconnected();
+ ftdialogs_in.remove(peer_id);
+ }
+
+ if (ftdialogs_out.contains(peer_id))
+ {
+ ftdialogs_out[peer_id]->peerDisconnected();
+ ftdialogs_out.remove(peer_id);
+ }
}
void FileTransferController::file_finished_incoming(QByteArray peer_id)
@@ -101,7 +118,8 @@ void FileTransferController::file_cancelled_incoming(QByteArray peer_id)
void FileTransferController::file_ioerror_incoming(QByteArray peer_id)
{
-
+ ftdialogs_in[peer_id]->ioError();
+ ftdialogs_in.remove(peer_id);
}
void FileTransferController::file_paused_outgoing(QByteArray peer_id)
@@ -123,7 +141,8 @@ void FileTransferController::file_cancelled_outgoing(QByteArray peer_id)
void FileTransferController::file_ioerror_outgoing(QByteArray peer_id)
{
-
+ ftdialogs_out[peer_id]->ioError();
+ ftdialogs_out.remove(peer_id);
}
void FileTransferController::file_accepted_by_me(QByteArray peer_id)