void become_logged_in(const StrBuf *user, const StrBuf *pass, StrBuf *serv_response)
{
wcsession *WCC = WC;
- char buf[SIZ];
+ StrBuf *Buf;
StrBuf *FloorDiv;
StrBuf *Language = NULL;
- WC->logged_in = 1;
+ WCC->logged_in = 1;
if (WCC->wc_fullname == NULL)
WCC->wc_fullname = NewStrBufPlain(NULL, StrLength(serv_response));
load_preferences();
+ Buf = NewStrBuf();
serv_puts("CHEK");
- serv_getln(buf, sizeof buf);
- if (buf[0] == '2') {
- WC->new_mail = extract_int(&buf[4], 0);
- WC->need_regi = extract_int(&buf[4], 1);
- WC->need_vali = extract_int(&buf[4], 2);
- extract_token(WC->cs_inet_email, &buf[4], 3, '|', sizeof WC->cs_inet_email);
+ StrBuf_ServGetln(Buf);
+ if (GetServerStatus(Buf, NULL) == 2) {
+ const char *pch;
+
+ pch = ChrPtr(Buf) + 4;
+ WCC->new_mail = StrBufExtractNext_long(Buf, &pch, '|');
+ WCC->need_regi = StrBufExtractNext_long(Buf, &pch, '|');
+ WCC->need_vali = StrBufExtractNext_long(Buf, &pch, '|');
+ if (WCC->cs_inet_email == NULL)
+ WCC->cs_inet_email = NewStrBuf();
+ StrBufExtract_NextToken(WCC->cs_inet_email, Buf, &pch, '|');
}
if (havebstr("language"))
set_preference("language", NewStrBufDup(SBSTR("language")), 1);
}
}
get_preference("floordiv_expanded", &FloorDiv);
- WC->floordiv_expanded = FloorDiv;
+ WCC->floordiv_expanded = FloorDiv;
+ FreeStrBuf(&Buf);
}
*/
void display_reg(int during_login)
{
+ message_summary *VCMsg;
+ wc_mime_attachment *VCAtt;
long vcard_msgnum;
if (goto_config_room() != 0) {
return;
}
- vcard_msgnum = locate_user_vcard_in_this_room();
+ vcard_msgnum = locate_user_vcard_in_this_room(&VCMsg, &VCAtt);
if (vcard_msgnum < 0L) {
if (during_login) do_welcome();
else display_main_menu();
}
if (during_login) {
- do_edit_vcard(vcard_msgnum, "1", "do_welcome", USERCONFIGROOM);
+ do_edit_vcard(vcard_msgnum, "1", VCMsg, VCAtt, "do_welcome", USERCONFIGROOM);
}
else {
- do_edit_vcard(vcard_msgnum, "1", "display_main_menu", USERCONFIGROOM);
+ do_edit_vcard(vcard_msgnum, "1", VCMsg, VCAtt, "display_main_menu", USERCONFIGROOM);
}
}