From 5bd5d3dc1920e22d0632dd265593b6dacce227dd Mon Sep 17 00:00:00 2001
From: Alexander Lantsev <aunsane@gmail.com>
Date: Sun, 1 Feb 2015 18:12:17 +0000
Subject: Tox: fixed message sending

git-svn-id: http://svn.miranda-ng.org/main/trunk@11977 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
---
 protocols/Tox/src/tox_messages.cpp | 16 +++++++++-------
 protocols/Tox/src/tox_transfer.cpp |  2 +-
 2 files changed, 10 insertions(+), 8 deletions(-)

(limited to 'protocols/Tox')

diff --git a/protocols/Tox/src/tox_messages.cpp b/protocols/Tox/src/tox_messages.cpp
index a050b7f962..c513780f3f 100644
--- a/protocols/Tox/src/tox_messages.cpp
+++ b/protocols/Tox/src/tox_messages.cpp
@@ -35,8 +35,9 @@ void CToxProto::OnFriendAction(Tox *tox, const int number, const uint8_t *action
 
 int __cdecl CToxProto::SendMsg(MCONTACT hContact, int flags, const char* msg)
 {
-	uint32_t number = 0;// getDword(hContact, TOX_SETTINGS_NUMBER, TOX_ERROR);
-	if (number == TOX_ERROR)
+	ToxBinAddress pubKey = ptrA(getStringA(hContact, TOX_SETTINGS_ID));
+	int32_t friendNumber = tox_get_friend_number(tox, pubKey);
+	if (friendNumber == TOX_ERROR)
 	{
 		debugLogA("CToxProto::SendMsg: failed to get friend number");
 		return 0;
@@ -46,11 +47,11 @@ int __cdecl CToxProto::SendMsg(MCONTACT hContact, int flags, const char* msg)
 	{
 		if (strncmp(msg, "/me ", 4) != 0)
 		{
-			result = tox_send_message(tox, number, (uint8_t*)msg, mir_strlen(msg));
+			result = tox_send_message(tox, friendNumber, (uint8_t*)msg, mir_strlen(msg));
 		}
 		else
 		{
-			result = tox_send_action(tox, number, (uint8_t*)&msg[4], mir_strlen(msg) - 4);
+			result = tox_send_action(tox, friendNumber, (uint8_t*)&msg[4], mir_strlen(msg) - 4);
 		}
 	}
 
@@ -115,10 +116,11 @@ int __cdecl CToxProto::UserIsTyping(MCONTACT hContact, int type)
 {
 	if (hContact && IsOnline())
 	{
-		uint32_t number = 0;//getDword(hContact, TOX_SETTINGS_NUMBER, TOX_ERROR);
-		if (number >= 0)
+		ToxBinAddress pubKey = ptrA(getStringA(hContact, TOX_SETTINGS_ID));
+		int32_t friendNumber = tox_get_friend_number(tox, pubKey);
+		if (friendNumber >= 0)
 		{
-			tox_set_user_is_typing(tox, number, type);
+			tox_set_user_is_typing(tox, friendNumber, type);
 			return 0;
 		}
 	}
diff --git a/protocols/Tox/src/tox_transfer.cpp b/protocols/Tox/src/tox_transfer.cpp
index fd244f5136..43656ce349 100644
--- a/protocols/Tox/src/tox_transfer.cpp
+++ b/protocols/Tox/src/tox_transfer.cpp
@@ -146,7 +146,7 @@ HANDLE __cdecl CToxProto::SendFile(MCONTACT hContact, const PROTOCHAR*, PROTOCHA
 	int32_t friendNumber = tox_get_friend_number(tox, pubKey);
 	if (friendNumber == TOX_ERROR)
 	{
-		debugLogA("CToxProto::SendFilesAsync: cannot get friend number by public key");
+		debugLogA("CToxProto::SendMsg: failed to get friend number");
 		return NULL;
 	}
 
-- 
cgit v1.2.3