From 8ed905af0f2d288f054e93bd537ef60208a5f458 Mon Sep 17 00:00:00 2001 From: Sergey Bolhovskoy Date: Mon, 22 Sep 2014 05:06:18 +0000 Subject: VKontakte: rework errors handling code git-svn-id: http://svn.miranda-ng.org/main/trunk@10552 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- protocols/VKontakte/src/misc.cpp | 17 +++++++++++++---- protocols/VKontakte/src/vk.h | 30 ++++++++++++++++++++---------- 2 files changed, 33 insertions(+), 14 deletions(-) (limited to 'protocols/VKontakte/src') diff --git a/protocols/VKontakte/src/misc.cpp b/protocols/VKontakte/src/misc.cpp index 0457b460c4..40570adf24 100644 --- a/protocols/VKontakte/src/misc.cpp +++ b/protocols/VKontakte/src/misc.cpp @@ -96,14 +96,23 @@ bool CVkProto::CheckJsonResult(AsyncHttpRequest *pReq, NETLIBHTTPREQUEST *reply, return true; int iErrorCode = json_as_int(pErrorCode); - if (iErrorCode == ERROR_ACCESS_DENIED) + + switch (iErrorCode){ + case VKERR_AUTHORIZATION_FAILED: ConnectionFailed(LOGINERR_WRONGPASSWORD); - else if (iErrorCode == 14) // captcha + break; + case VKERR_CAPTCHA_NEEDED: ApplyCaptcha(pReq, pError); - else if (iErrorCode == 6) {// Too many requests per second + break; + case VKERR_UNKNOWN: + case VKERR_TOO_MANY_REQ_PER_SEC: + case VKERR_FLOOD_CONTROL: + case VKERR_INTERNAL_SERVER_ERR: pReq->bNeedsRestart = true; - Sleep(330); //Pause for fix err 6 + Sleep(500); //Pause for fix err + break; } + return iErrorCode == 0; } diff --git a/protocols/VKontakte/src/vk.h b/protocols/VKontakte/src/vk.h index 2a322ddb86..9f7ae21514 100644 --- a/protocols/VKontakte/src/vk.h +++ b/protocols/VKontakte/src/vk.h @@ -17,6 +17,7 @@ along with this program. If not, see . #define VK_APP_ID 3917910 +// LongPool servers events #define VKPOLL_MSG_REMOVED 0 #define VKPOLL_MSG_NEWFLAGS 1 #define VKPOLL_MSG_ADDFLAGS 2 @@ -29,16 +30,25 @@ along with this program. If not, see . #define VKPOLL_CHAT_UTN 62 #define VKPOLL_RING 70 -#define VKFLAG_MSGUNREAD 1 // сообщение не прочитано -#define VKFLAG_MSGOUTBOX 2 // исходящее сообщение -#define VKFLAG_MSGREPLIED 4 // на сообщение был создан ответ -#define VKFLAG_MSGIMPORTANT 8 // помеченное сообщение -#define VKFLAG_MSGCHAT 16 // сообщение отправлено через чат -#define VKFLAG_MSGFRIENDS 32 // сообщение отправлено другом -#define VKFLAG_MSGSPAM 64 // сообщение помечено как "Спам" -#define VKFLAG_MSGDELЕTЕD 128 // сообщение удалено (в корзине) -#define VKFLAG_MSGFIXED 256 // сообщение проверено пользователем на спам -#define VKFLAG_MSGMEDIA 512 // сообщение содержит медиаконтент +// Flags for VKPOLL_MSG_ADDED +#define VKFLAG_MSGUNREAD 1 // сообщение не прочитано +#define VKFLAG_MSGOUTBOX 2 // исходящее сообщение +#define VKFLAG_MSGREPLIED 4 // на сообщение был создан ответ +#define VKFLAG_MSGIMPORTANT 8 // помеченное сообщение +#define VKFLAG_MSGCHAT 16 // сообщение отправлено через чат +#define VKFLAG_MSGFRIENDS 32 // сообщение отправлено другом +#define VKFLAG_MSGSPAM 64 // сообщение помечено как "Спам" +#define VKFLAG_MSGDELЕTЕD 128 // сообщение удалено (в корзине) +#define VKFLAG_MSGFIXED 256 // сообщение проверено пользователем на спам +#define VKFLAG_MSGMEDIA 512 // сообщение содержит медиаконтент + +// Errors +#define VKERR_UNKNOWN 1 // Unknown error occurred +#define VKERR_TOO_MANY_REQ_PER_SEC 6 // Too many requests per second +#define VKERR_AUTHORIZATION_FAILED 5 // User authorization failed +#define VKERR_FLOOD_CONTROL 9 // Flood control +#define VKERR_INTERNAL_SERVER_ERR 10 // Internal server error +#define VKERR_CAPTCHA_NEEDED 14 // Captcha needed #define VK_API_VER "5.24" #define VER_API CHAR_PARAM("v", VK_API_VER) -- cgit v1.2.3