summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Bolhovskoy <elzorfox@ya.ru>2014-09-22 05:06:18 +0000
committerSergey Bolhovskoy <elzorfox@ya.ru>2014-09-22 05:06:18 +0000
commit8ed905af0f2d288f054e93bd537ef60208a5f458 (patch)
tree41b1540fa99fa472aa6a0d12afabcddf7f4e81f3
parentc7a27d3642116b0e37b025dbb3d49dbb9a0f9e38 (diff)
VKontakte: rework errors handling code
git-svn-id: http://svn.miranda-ng.org/main/trunk@10552 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
-rw-r--r--protocols/VKontakte/src/misc.cpp17
-rw-r--r--protocols/VKontakte/src/vk.h30
2 files changed, 33 insertions, 14 deletions
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 <http://www.gnu.org/licenses/>.
#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 <http://www.gnu.org/licenses/>.
#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)