summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKirill Volinsky <mataes2007@gmail.com>2015-04-07 13:43:24 +0000
committerKirill Volinsky <mataes2007@gmail.com>2015-04-07 13:43:24 +0000
commit96f529b347c2c3c0394a0bc3ad1c6830137847a9 (patch)
tree1b97a670523f3b0e74c4628e71e968061df85979
parent4056ab703967ccbba528aebc93802f732ae13884 (diff)
set avatar 2nd attempt
git-svn-id: http://svn.miranda-ng.org/main/trunk@12652 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
-rw-r--r--protocols/SkypeWeb/src/http_request.h6
-rw-r--r--protocols/SkypeWeb/src/requests/avatars.h13
-rw-r--r--protocols/SkypeWeb/src/skype_avatars.cpp2
3 files changed, 14 insertions, 7 deletions
diff --git a/protocols/SkypeWeb/src/http_request.h b/protocols/SkypeWeb/src/http_request.h
index 50e9528dfd..b281a8846f 100644
--- a/protocols/SkypeWeb/src/http_request.h
+++ b/protocols/SkypeWeb/src/http_request.h
@@ -230,8 +230,10 @@ public:
url.Insert(0, flags & NLHRF_SSL ? "https://" : "http://");
szUrl = url.GetBuffer();
- pData = Body.ToString();
- dataLength = mir_strlen(pData);
+ if (!pData) {
+ pData = Body.ToString();
+ dataLength = mir_strlen(pData);
+ }
char message[1024];
mir_snprintf(message, SIZEOF(message), "Send request to %s", szUrl);
diff --git a/protocols/SkypeWeb/src/requests/avatars.h b/protocols/SkypeWeb/src/requests/avatars.h
index c45c94c1ed..6b71a0732d 100644
--- a/protocols/SkypeWeb/src/requests/avatars.h
+++ b/protocols/SkypeWeb/src/requests/avatars.h
@@ -13,14 +13,19 @@ public:
class SetAvatarRequest : public HttpRequest
{
public:
- SetAvatarRequest(const char *token, const char *skypename, const char *data) :
+ SetAvatarRequest(const char *token, const char *skypename, const char *data, size_t dataSize) :
HttpRequest(REQUEST_PUT, FORMAT, "api.skype.com/users/%s/profile/avatar", skypename)
{
+ pData = (char*)mir_alloc(dataSize);
+ memcpy(pData, data, dataSize);
+ dataLength = dataSize;
Headers
<< CHAR_VALUE("X-Skypetoken", token)
- << CHAR_VALUE("Content-Type", "image/jpg");
-
- Body << VALUE(data);
+ << CHAR_VALUE("Content-Type", "image/jpeg");
+ }
+ ~SetAvatarRequest()
+ {
+ mir_free(pData);
}
};
diff --git a/protocols/SkypeWeb/src/skype_avatars.cpp b/protocols/SkypeWeb/src/skype_avatars.cpp
index caa9ac88e0..b6b486c2ab 100644
--- a/protocols/SkypeWeb/src/skype_avatars.cpp
+++ b/protocols/SkypeWeb/src/skype_avatars.cpp
@@ -187,7 +187,7 @@ INT_PTR CSkypeProto::SvcSetMyAvatar(WPARAM wParam, LPARAM lParam)
ptrA token(getStringA("TokenSecret"));
ptrA skypename(getStringA("Skypename"));
- PushRequest(new SetAvatarRequest(token, skypename, data), &CSkypeProto::OnSentAvatar);
+ PushRequest(new SetAvatarRequest(token, skypename, data, length), &CSkypeProto::OnSentAvatar);
}
else
{