summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Pösel <robyer@seznam.cz>2014-12-04 14:00:27 +0000
committerRobert Pösel <robyer@seznam.cz>2014-12-04 14:00:27 +0000
commite89765da6a2c6e5efb6e019ebd037e0d3f1565b0 (patch)
treed4ba2c6bf520c313a2975240fc12040a9d4ce761
parentf16b4030068686b9f8bc1c4d22cd8c52b78a21d0 (diff)
Steam: Don't try delete contact from server when we're not friends anyway
git-svn-id: http://svn.miranda-ng.org/main/trunk@11241 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
-rw-r--r--protocols/Steam/src/steam_contacts.cpp5
-rw-r--r--protocols/Steam/src/steam_proto.cpp10
2 files changed, 12 insertions, 3 deletions
diff --git a/protocols/Steam/src/steam_contacts.cpp b/protocols/Steam/src/steam_contacts.cpp
index f0498f25f6..582e7f5b20 100644
--- a/protocols/Steam/src/steam_contacts.cpp
+++ b/protocols/Steam/src/steam_contacts.cpp
@@ -463,7 +463,10 @@ void CSteamProto::OnFriendRemoved(const NETLIBHTTPREQUEST *response, void *arg)
{
if (response == NULL || response->resultCode != HTTP_STATUS_OK || lstrcmpiA(response->pData, "true"))
{
- debugLogA("CSteamProto::OnFriendRemoved: failed to remove friend %s", ptrA((char*)arg));
+ MCONTACT hContact = (MCONTACT)arg;
+ ptrA who(getStringA(hContact, "SteamID"));
+
+ debugLogA("CSteamProto::OnFriendRemoved: failed to remove friend %s", who);
return;
}
}
diff --git a/protocols/Steam/src/steam_proto.cpp b/protocols/Steam/src/steam_proto.cpp
index e4668ebe38..f2878659f0 100644
--- a/protocols/Steam/src/steam_proto.cpp
+++ b/protocols/Steam/src/steam_proto.cpp
@@ -386,15 +386,21 @@ int __cdecl CSteamProto::OnEvent(PROTOEVENTTYPE eventType, WPARAM wParam, LPARAM
case EV_PROTO_ONCONTACTDELETED:
if (IsOnline())
{
+ MCONTACT hContact = (MCONTACT)wParam;
+
ptrA token(getStringA("TokenSecret"));
ptrA sessionId(getStringA("SessionID"));
ptrA steamId(getStringA("SteamID"));
- char *who = getStringA(wParam, "SteamID");
+ ptrA who(getStringA(hContact, "SteamID"));
+
+ // Don't request delete contact from server when we're not friends anyway
+ if (getByte(hContact, "Auth", 0) != 0)
+ return 0;
PushRequest(
new SteamWebApi::RemoveFriendRequest(token, sessionId, steamId, who),
&CSteamProto::OnFriendRemoved,
- who);
+ (void*)hContact);
}
return 0;