//////////////////////////////////////////////////////////////////////////////// // Gadu-Gadu Plugin for Miranda IM // // Copyright (c) 2003-2006 Adam Strzelecki // // 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. //////////////////////////////////////////////////////////////////////////////// #include "gg.h" ////////////////////////////////////////////////////////// // remind password typedef struct { uin_t uin; const char *email; } GG_REMIND_PASS; void __cdecl GGPROTO::remindpasswordthread(void *param) { // Connection handle struct gg_http *h; GG_REMIND_PASS *rp = (GG_REMIND_PASS *)param; GGTOKEN token; #ifdef DEBUGMODE netlog("gg_remindpasswordthread(): Starting."); #endif if (!rp || !rp->email || !rp->uin || !strlen(rp->email)) { if (rp) free(rp); return; } // Get token if (!gettoken(&token)) return; if (!(h = gg_remind_passwd3(rp->uin, rp->email, token.id, token.val, 0))) { TCHAR error[128]; mir_sntprintf(error, SIZEOF(error), TranslateT("Password could not be reminded because of error:\n\t%s"), _tcserror(errno)); MessageBox(NULL, error, m_tszUserName, MB_OK | MB_ICONSTOP); netlog("gg_remindpasswordthread(): Password could not be reminded because of \"%s\".", strerror(errno)); } else { gg_pubdir_free(h); netlog("gg_remindpasswordthread(): Password remind successful."); MessageBox(NULL, TranslateT("Password was sent to your e-mail."), m_tszUserName, MB_OK | MB_ICONINFORMATION); } #ifdef DEBUGMODE netlog("gg_remindpasswordthread(): End."); #endif if (rp) free(rp); } void GGPROTO::remindpassword(uin_t uin, const char *email) { GG_REMIND_PASS *rp = (GG_REMIND_PASS*)malloc(sizeof(GG_REMIND_PASS)); rp->uin = uin; rp->email = email; forkthread(&GGPROTO::remindpasswordthread, rp); }