diff options
Diffstat (limited to 'protocols/Tox')
-rw-r--r-- | protocols/Tox/src/tox_transfer.cpp | 23 | ||||
-rw-r--r-- | protocols/Tox/src/tox_transfer.h | 6 |
2 files changed, 11 insertions, 18 deletions
diff --git a/protocols/Tox/src/tox_transfer.cpp b/protocols/Tox/src/tox_transfer.cpp index e5f12a2b8c..1b7b6e4fc3 100644 --- a/protocols/Tox/src/tox_transfer.cpp +++ b/protocols/Tox/src/tox_transfer.cpp @@ -21,11 +21,10 @@ void CToxProto::OnFriendFile(Tox *tox, uint32_t friendNumber, uint32_t fileNumbe {
proto->debugLogA(__FUNCTION__": incoming avatar (%d) from %s (%d)", fileNumber, (const char*)pubKey, friendNumber);
- ptrW address(proto->getWStringA(hContact, TOX_SETTINGS_ID));
- wchar_t avatarName[MAX_PATH];
- mir_snwprintf(avatarName, MAX_PATH, L"%s.png", address.get());
+ CMStringA address(proto->getMStringU(hContact, TOX_SETTINGS_ID));
+ address += "%s.png";
- AvatarTransferParam *transfer = new AvatarTransferParam(friendNumber, fileNumber, avatarName, fileSize);
+ AvatarTransferParam *transfer = new AvatarTransferParam(friendNumber, fileNumber, address, fileSize);
transfer->pfts.flags |= PFTS_RECEIVING;
transfer->pfts.hContact = hContact;
proto->transfers.Add(transfer);
@@ -45,21 +44,15 @@ void CToxProto::OnFriendFile(Tox *tox, uint32_t friendNumber, uint32_t fileNumbe proto->debugLogA(__FUNCTION__": incoming file (%d) from %s (%d)", fileNumber, (const char*)pubKey, friendNumber);
CMStringA rawName((char*)fileName, (int)fileNameLength);
- const wchar_t *name = mir_utf8decodeW(rawName);
- FileTransferParam *transfer = new FileTransferParam(friendNumber, fileNumber, name, fileSize);
+ FileTransferParam *transfer = new FileTransferParam(friendNumber, fileNumber, rawName, fileSize);
transfer->pfts.flags |= PFTS_RECEIVING;
transfer->pfts.hContact = hContact;
proto->transfers.Add(transfer);
- PROTORECVFILE pre = {};
- pre.dwFlags = PRFF_UNICODE;
- pre.fileCount = 1;
- pre.timestamp = now();
- pre.descr.w = L"";
- pre.files.w = &name;
- pre.pUserInfo = transfer;
- ProtoChainRecvFile(hContact, &pre);
+ DB::EventInfo dbei;
+ dbei.timestamp = now();
+ ProtoChainRecvFile(hContact, DB::FILE_BLOB(transfer, rawName), dbei);
}
break;
@@ -270,7 +263,7 @@ HANDLE CToxProto::OnSendFile(Tox *tox, MCONTACT hContact, const wchar_t*, wchar_ }
debugLogA(__FUNCTION__": start sending file (%d) to %s (%d)", fileNumber, (const char*)pubKey, friendNumber);
- FileTransferParam *transfer = new FileTransferParam(friendNumber, fileNumber, fileName, fileSize);
+ FileTransferParam *transfer = new FileTransferParam(friendNumber, fileNumber, rawName, fileSize);
transfer->pfts.flags |= PFTS_SENDING;
transfer->pfts.hContact = hContact;
transfer->pfts.szWorkingDir.w = fileDir;
diff --git a/protocols/Tox/src/tox_transfer.h b/protocols/Tox/src/tox_transfer.h index 0e72a4cf77..3d79f6d9ca 100644 --- a/protocols/Tox/src/tox_transfer.h +++ b/protocols/Tox/src/tox_transfer.h @@ -11,7 +11,7 @@ struct FileTransferParam TOX_FILE_KIND transferType;
- FileTransferParam(uint32_t friendNumber, uint32_t fileNumber, const wchar_t *fileName, uint64_t fileSize)
+ FileTransferParam(uint32_t friendNumber, uint32_t fileNumber, const char *fileName, uint64_t fileSize)
{
hFile = nullptr;
this->friendNumber = friendNumber;
@@ -22,7 +22,7 @@ struct FileTransferParam pfts.hContact = NULL;
pfts.totalFiles = 1;
pfts.pszFiles.w = (wchar_t**)mir_alloc(sizeof(wchar_t*)*(pfts.totalFiles + 1));
- pfts.pszFiles.w[0] = pfts.szCurrentFile.w = mir_wstrdup(fileName);
+ pfts.pszFiles.w[0] = pfts.szCurrentFile.w = mir_utf8decodeW(fileName);
pfts.pszFiles.w[pfts.totalFiles] = nullptr;
pfts.totalBytes = pfts.currentFileSize = fileSize;
pfts.totalProgress = pfts.currentFileProgress = 0;
@@ -77,7 +77,7 @@ struct AvatarTransferParam : public FileTransferParam {
uint8_t hash[TOX_HASH_LENGTH];
- AvatarTransferParam(uint32_t friendNumber, uint32_t fileNumber, const wchar_t *fileName, uint64_t fileSize)
+ AvatarTransferParam(uint32_t friendNumber, uint32_t fileNumber, const char *fileName, uint64_t fileSize)
: FileTransferParam(friendNumber, fileNumber, fileName, fileSize)
{
transferType = TOX_FILE_KIND_AVATAR;
|