/miranda/protocols/IcqOscarJ/changeinfo/upload.cpp
C++ | 103 lines | 47 code | 20 blank | 36 comment | 12 complexity | 8aabddfd609d137043fcc7a162eb89da MD5 | raw file
Possible License(s): GPL-2.0, MPL-2.0-no-copyleft-exception, LGPL-3.0, LGPL-2.1
- // ---------------------------------------------------------------------------80
- // ICQ plugin for Miranda Instant Messenger
- // ________________________________________
- //
- // Copyright 2001-2004 Richard Hughes, Martin Öberg
- // Copyright 2004-2009 Joe Kucera, Bio
- //
- // 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, write to the Free Software
- // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- //
- // -----------------------------------------------------------------------------
- //
- // File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/changeinfo/upload.cpp $
- // Revision : $Revision: 14415 $
- // Last change on : $Date: 2013-04-03 21:45:32 +0200 (Wed, 03 Apr 2013) $
- // Last change by : $Author: rainwater@gmail.com $
- //
- // DESCRIPTION:
- //
- // ChangeInfo Plugin stuff
- //
- // -----------------------------------------------------------------------------
-
- #include "icqoscar.h"
-
-
- int CIcqProto::StringToListItemId(const char *szSetting,int def)
- {
- int i;
-
- for(i=0;i<settingCount;i++)
- if(!strcmpnull(szSetting,setting[i].szDbSetting))
- break;
-
- if (i==settingCount) return def;
-
- FieldNamesItem *list = (FieldNamesItem*)setting[i].pList;
-
- char *szValue = getSettingStringUtf(NULL, szSetting, NULL);
- if (!szValue)
- return def;
-
- for (i=0; list[i].text; i++)
- if (!strcmpnull(list[i].text, szValue))
- break;
-
- SAFE_FREE(&szValue);
- if (!list[i].text) return def;
-
- return list[i].code;
- }
-
-
- int ChangeInfoData::UploadSettings(void)
- {
- if (!ppro->icqOnline())
- {
- MessageBoxUtf(hwndDlg, LPGEN("You are not currently connected to the ICQ network. You must be online in order to update your information on the server."), LPGEN("Change ICQ Details"), MB_OK);
- return 0;
- }
-
- hUpload[0] = (HANDLE)ppro->ChangeInfoEx(CIXT_FULL, 0);
-
- //password
- char* tmp = ppro->GetUserPassword(TRUE);
- if (tmp)
- {
- if (strlennull(Password) > 0 && strcmpnull(Password, tmp))
- {
- // update password in user info dialog (still open)
- strcpy(Password, tmp);
- // update password in protocol
- strcpy(ppro->m_szPassword, tmp);
-
- hUpload[1] = (HANDLE)ppro->icq_changeUserPasswordServ(tmp);
- char szPwd[PASSWORDMAXLEN] = {0};
-
- if (ppro->GetUserStoredPassword(szPwd, sizeof(szPwd)))
- { // password is stored in DB, update
- char ptmp[PASSWORDMAXLEN];
-
- strcpy(ptmp, tmp);
-
- CallService(MS_DB_CRYPT_ENCODESTRING, sizeof(ptmp), (LPARAM)ptmp);
-
- ppro->setSettingString(NULL, "Password", ptmp);
- }
- }
- }
-
- return 1;
- }