void GaduServerUnregisterAccount::performAction(const QString &tokenId, const QString &tokenValue) { H = gg_unregister3(Uin, unicode2cp(Password).data(), unicode2cp(tokenId).data(), unicode2cp(tokenValue).data(), 1); if (H) { GaduPubdirSocketNotifiers *sn = new GaduPubdirSocketNotifiers(); connect(sn, SIGNAL(done(bool, struct gg_http *)), this, SLOT(done(bool, struct gg_http *))); sn->watchFor(H); } else
//////////////////////////////////////////////////////////////////////////////// // Remove Account : Proc void *gg_dounregister(GGPROTO *gg, uin_t uin, char *password) { // Connection handles struct gg_http *h; struct gg_pubdir *s; GGTOKEN token; #ifdef DEBUGMODE gg->debugLogA("gg_dounregister(): Starting."); #endif if (!uin || !password) return NULL; // Load token if (!gg->gettoken(&token)) return NULL; if (!(h = gg_unregister3(uin, password, token.id, token.val, 0)) || !(s = (gg_pubdir*)h->data) || !s->success || s->uin != uin) { TCHAR error[128]; mir_sntprintf(error, SIZEOF(error), TranslateT("Your account cannot be removed because of error:\n\t%s"), (h && !s) ? http_error_string(h ? h->error : 0) : (s ? TranslateT("Bad number or password") : _tcserror(errno))); MessageBox(NULL, error, gg->m_tszUserName, MB_OK | MB_ICONSTOP); gg->debugLogA("gg_dounregister(): Cannot remove account. errno=%d: %s", errno, strerror(errno)); } else { gg_pubdir_free(h); gg->delSetting(GG_KEY_PASSWORD); gg->delSetting(GG_KEY_UIN); gg->debugLogA("gg_dounregister(): Account %d has been removed.", uin); MessageBox(NULL, TranslateT("Your account has been removed."), gg->m_tszUserName, MB_OK | MB_ICONINFORMATION); } #ifdef DEBUGMODE gg->debugLogA("gg_dounregister(): End."); #endif return NULL; }