From 6860b3202f3c8218288fad2778529ba76463015c Mon Sep 17 00:00:00 2001 From: Kirill Volinsky Date: Sat, 13 Oct 2012 09:07:09 +0000 Subject: MSN: folders restructurization git-svn-id: http://svn.miranda-ng.org/main/trunk@1901 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- protocols/MSN/src/msn_errors.cpp | 91 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 protocols/MSN/src/msn_errors.cpp (limited to 'protocols/MSN/src/msn_errors.cpp') diff --git a/protocols/MSN/src/msn_errors.cpp b/protocols/MSN/src/msn_errors.cpp new file mode 100644 index 0000000000..d2c5558927 --- /dev/null +++ b/protocols/MSN/src/msn_errors.cpp @@ -0,0 +1,91 @@ +/* +Plugin of Miranda IM for communicating with users of the MSN Messenger protocol. +Copyright (c) 2006-2012 Boris Krasnovskiy. +Copyright (c) 2003-2005 George Hazan. +Copyright (c) 2002-2003 Richard Hughes (original version). + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "msn_global.h" +#include "msn_proto.h" + +int CMsnProto::MSN_HandleErrors(ThreadData* info, char* cmdString) +{ + int errorCode, packetID = -1; + sscanf(cmdString, "%d %d", &errorCode, &packetID); + + MSN_DebugLog("Server error:%s", cmdString); + + switch(errorCode) { + case ERR_INTERNAL_SERVER: + MSN_ShowError("MSN Services are temporarily unavailable, please try to connect later"); + SendBroadcast(NULL, ACKTYPE_LOGIN, ACKRESULT_FAILED, NULL, LOGINERR_NOSERVER); + return 1; + + case ERR_SERVER_BUSY: + case ERR_SERVER_UNAVAILABLE: + MSN_ShowError("MSN Services are too busy, please try to connect later"); + SendBroadcast(NULL, ACKTYPE_LOGIN, ACKRESULT_FAILED, NULL, LOGINERR_NOSERVER); + return 1; + + case ERR_NOT_ALLOWED_WHEN_OFFLINE: + MSN_ShowError("MSN protocol does not allow you to communicate with others when you are invisible"); + return 0; + + case ERR_LIST_FULL: + MSN_ShowError("MSN plugin cannot add a new contact because the contact list is full"); + return 0; + + case ERR_ALREADY_THERE: + MSN_ShowError("User is already in your contact list"); + return 0; + + case ERR_CONTACT_LIST_FAILED: + case ERR_LIST_UNAVAILABLE: + char* tWords[3]; + if (sttDivideWords(cmdString, 3, tWords) == 3) + HReadBuffer(info, 0).surelyRead(atol(tWords[2])); + return 0; + + case ERR_NOT_ONLINE: + if (info->mInitialContactWLID) + SendBroadcast(MSN_HContactFromEmail(info->mInitialContactWLID), ACKTYPE_MESSAGE, ACKRESULT_FAILED, + (HANDLE)999999, (LPARAM)MSN_Translate("User not online")); + else + MSN_ShowError("User not online"); + + return 1; + + case ERR_NOT_EXPECTED: + MSN_ShowError("Your MSN account e-mail is unverified. Goto http://www.passport.com and verify the primary e-mail first"); + return 0; + + case ERR_AUTHENTICATION_FAILED: + if (info->mType != SERVER_SWITCHBOARD) + { + MSN_ShowError("Your username or password is incorrect"); + SendBroadcast(NULL, ACKTYPE_LOGIN, ACKRESULT_FAILED, NULL, LOGINERR_WRONGPASSWORD); + } + return 1; + + default: + MSN_DebugLog("Unprocessed error: %s", cmdString); + if (errorCode >= 500) //all these errors look fatal-ish + MSN_ShowError("Unrecognised error %d. The server has closed our connection", errorCode); + + break; + } + return 0; +} -- cgit v1.2.3