diff src/oscar.c @ 704:1d989562af1f

[gaim-migrate @ 714] ya ha ha committer: Tailor Script <tailor@pidgin.im>
author Eric Warmenhoven <eric@warmenhoven.org>
date Wed, 16 Aug 2000 20:44:39 +0000
parents d904bf694bd7
children 957957d0dc2c
line wrap: on
line diff
--- a/src/oscar.c	Wed Aug 16 20:13:57 2000 +0000
+++ b/src/oscar.c	Wed Aug 16 20:44:39 2000 +0000
@@ -116,7 +116,6 @@
 			if (aim_get_command(gaim_sess, conn) >= 0) {
 				aim_rxdispatch(gaim_sess);
 			} else {
-				debug_print(_("connection error!\n"));
 				if (conn->type == AIM_CONN_TYPE_RENDEZVOUS &&
 				    conn->subtype == AIM_CONN_SUBTYPE_OFT_DIRECTIM) {
 					struct conversation *cnv =
@@ -126,15 +125,19 @@
 						make_direct(cnv, FALSE, NULL, 0);
 					}
 					aim_conn_kill(gaim_sess, &conn);
-				} else if (conn->type = AIM_CONN_TYPE_CHAT) {
-					/* FIXME: we got disconnected from a chat room, but
-					 * libfaim won't tell us which room */
-				} else if (conn->type == AIM_CONN_TYPE_BOS) {
+				} else if ((conn->type == AIM_CONN_TYPE_BOS) ||
+					   !(aim_getconn_type(gaim_sess, AIM_CONN_TYPE_BOS))) {
 					debug_print(_("major connection error\n"));
 					signoff();
 					hide_login_progress(_("Disconnected."));
 					auth_failed();
+				} else if (conn->type = AIM_CONN_TYPE_CHAT) {
+					/* FIXME: we got disconnected from a chat room, but
+					 * libfaim won't tell us which room */
+					debug_print("connection error for chat...\n");
+					aim_conn_kill(gaim_sess, &conn);
 				} else {
+					debug_print("holy crap! generic connection error!\n");
 					aim_conn_kill(gaim_sess, &conn);
 				}
 			}