# HG changeset patch # User Eric Warmenhoven # Date 995048378 0 # Node ID a23832262ca2911efe7d6ea98018659f2133cca5 # Parent 05df89293018f591d8ad242a8c8623ae587622ac [gaim-migrate @ 2077] god damn it mid committer: Tailor Script diff -r 05df89293018 -r a23832262ca2 src/oscar.c --- a/src/oscar.c Fri Jul 13 16:49:22 2001 +0000 +++ b/src/oscar.c Fri Jul 13 18:19:38 2001 +0000 @@ -91,6 +91,8 @@ GSList *direct_ims; GSList *getfiles; GSList *hasicons; + + gboolean killme; }; struct chat_connection { @@ -351,6 +353,8 @@ } else { if (aim_get_command(odata->sess, conn) >= 0) { aim_rxdispatch(odata->sess); + if (odata->killme) + signoff(gc); } else { if ((conn->type == AIM_CONN_TYPE_BOS) || !(aim_getconn_type(odata->sess, AIM_CONN_TYPE_BOS))) { @@ -588,6 +592,7 @@ struct aim_user *user; struct gaim_connection *gc = sess->aux_data; + struct oscar_data *od = gc->proto_data; user = gc->user; port = user->proto_opt[USEROPT_AUTHPORT][0] ? atoi(user->proto_opt[USEROPT_AUTHPORT]) : FAIM_LOGIN_PORT, @@ -642,8 +647,7 @@ } debug_printf("Login Error Code 0x%04x\n", errorcode); debug_printf("Error URL: %s\n", errurl); - aim_conn_kill(sess, &command->conn); - signoff(gc); + od->killme = TRUE; return 1; } @@ -667,8 +671,8 @@ bosconn = aim_newconn(sess, AIM_CONN_TYPE_BOS, NULL); if (bosconn == NULL) { hide_login_progress(gc, _("Internal Error")); - signoff(gc); - return 1; + od->killme = TRUE; + return 0; } aim_conn_addhandler(sess, bosconn, 0x0009, 0x0003, gaim_bosrights, 0); @@ -710,8 +714,8 @@ g_free(host); if (bosconn->fd < 0) { hide_login_progress(gc, _("Could Not Connect")); - signoff(gc); - return 1; + od->killme = TRUE; + return 0; } aim_auth_sendcookie(sess, bosconn, cookie); gdk_input_remove(gc->inpa);