From bddc03714090e3710936a08a06e3e3a195b2d434 Mon Sep 17 00:00:00 2001 From: Alexander Lantsev Date: Sat, 30 Aug 2014 11:50:54 +0000 Subject: Tox: fix git-svn-id: http://svn.miranda-ng.org/main/trunk@10341 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- protocols/Tox/src/tox_proto.cpp | 3 ++- protocols/Tox/src/tox_transfer.cpp | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) (limited to 'protocols') diff --git a/protocols/Tox/src/tox_proto.cpp b/protocols/Tox/src/tox_proto.cpp index 7d9a5150a4..e5bb613c8f 100644 --- a/protocols/Tox/src/tox_proto.cpp +++ b/protocols/Tox/src/tox_proto.cpp @@ -170,7 +170,7 @@ int __cdecl CToxProto::FileCancel(MCONTACT hContact, HANDLE hTransfer) std::vector clientId = HexStringToData(toxId); uint32_t number = tox_get_friend_number(tox, clientId.data()); - uint8_t fileNumber = (uint8_t)hTransfer; + int fileNumber = (int)hTransfer; transfers.erase(fileNumber); @@ -322,6 +322,7 @@ HANDLE __cdecl CToxProto::SendFile(MCONTACT hContact, const PROTOCHAR* szDescrip if (fileNumber < 0) { debugLogA("CToxProto::SendFilesAsync: cannot send file"); + return NULL; } FileTransferParam *transfer = new FileTransferParam(fileNumber, fileName, fileSize); diff --git a/protocols/Tox/src/tox_transfer.cpp b/protocols/Tox/src/tox_transfer.cpp index d91d18ca7c..5a7162fb39 100644 --- a/protocols/Tox/src/tox_transfer.cpp +++ b/protocols/Tox/src/tox_transfer.cpp @@ -40,6 +40,7 @@ void CToxProto::SendFileAsync(void* arg) else { ProtoBroadcastAck(transfer->pfts.hContact, ACKTYPE_FILE, ACKRESULT_FAILED, (HANDLE)transfer->number, 0); + transfers.erase(transfer->number); } } @@ -122,6 +123,7 @@ void CToxProto::OnFileRequest(Tox *tox, int32_t number, uint8_t isSend, uint8_t case TOX_FILECONTROL_FINISHED: tox_file_send_control(proto->tox, number, 1, fileNumber, TOX_FILECONTROL_FINISHED, NULL, 0); proto->ProtoBroadcastAck(transfer->pfts.hContact, ACKTYPE_FILE, ACKRESULT_SUCCESS, (HANDLE)fileNumber, 0); + proto->transfers.erase(fileNumber); break; } } -- cgit v1.2.3