- Timestamp:
- 2008-12-14T15:04:48Z (16 years ago)
- Branches:
- master
- Children:
- 72b6783e
- Parents:
- 71d45c2
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
protocols/oscar/oscar.c
r71d45c2 r5469952 91 91 GSList *oscar_chats; 92 92 93 gboolean killme ;93 gboolean killme, no_reconnect; 94 94 gboolean icq; 95 95 GSList *evilhack; … … 181 181 static int gaim_parse_auth_resp (aim_session_t *, aim_frame_t *, ...); 182 182 static int gaim_parse_login (aim_session_t *, aim_frame_t *, ...); 183 static int gaim_parse_logout (aim_session_t *, aim_frame_t *, ...); 183 184 static int gaim_handle_redirect (aim_session_t *, aim_frame_t *, ...); 184 185 static int gaim_parse_oncoming (aim_session_t *, aim_frame_t *, ...); … … 294 295 aim_rxdispatch(odata->sess); 295 296 if (odata->killme) 296 imc_logout(ic, TRUE);297 imc_logout(ic, !odata->no_reconnect); 297 298 } else { 298 299 if ((conn->type == AIM_CONN_TYPE_BOS) || … … 520 521 case 0x18: 521 522 /* connecting too frequently */ 523 od->no_reconnect = TRUE; 522 524 imcb_error(ic, _("You have been connecting and disconnecting too frequently. Wait ten minutes and try again. If you continue to try, you will need to wait even longer.")); 523 525 break; … … 572 574 aim_conn_addhandler(sess, bosconn, AIM_CB_FAM_LOC, AIM_CB_LOC_USERINFO, gaim_parseaiminfo, 0); 573 575 aim_conn_addhandler(sess, bosconn, AIM_CB_FAM_MSG, AIM_CB_MSG_MTN, gaim_parsemtn, 0); 576 aim_conn_addhandler(sess, bosconn, AIM_CB_FAM_SPECIAL, AIM_CB_SPECIAL_CONNERR, gaim_parse_logout, 0); 574 577 575 578 ((struct oscar_data *)ic->proto_data)->conn = bosconn; … … 747 750 748 751 aim_send_login(sess, fr->conn, ic->acc->user, ic->acc->pass, &info, key); 752 753 return 1; 754 } 755 756 static int gaim_parse_logout(aim_session_t *sess, aim_frame_t *fr, ...) { 757 struct im_connection *ic = sess->aux_data; 758 struct oscar_data *odata = ic->proto_data; 759 int code; 760 va_list ap; 761 762 va_start(ap, fr); 763 code = va_arg(ap, int); 764 va_end(ap); 765 766 imcb_error( ic, "Connection aborted by server: %s", code == 1 ? 767 "someone else logged in with your account" : 768 "unknown reason" ); 769 770 /* Tell BitlBee to disable auto_reconnect if code == 1, since that 771 means a concurrent login somewhere else. */ 772 odata->no_reconnect = code == 1; 773 774 /* DO NOT log out here! Just tell the callback to do it. */ 775 odata->killme = TRUE; 749 776 750 777 return 1;
Note: See TracChangeset
for help on using the changeset viewer.