diff src/protocols/oscar/oscar.c @ 6029:38999b6b1838

[gaim-migrate @ 6479] This fixes many random problems with oscar not being able to sign on or getting kicked offline. committer: Tailor Script <tailor@pidgin.im>
author Mark Doliner <mark@kingant.net>
date Sat, 05 Jul 2003 07:36:09 +0000
parents 272c761c52e3
children 8c44020a958e
line wrap: on
line diff
--- a/src/protocols/oscar/oscar.c	Sat Jul 05 07:33:48 2003 +0000
+++ b/src/protocols/oscar/oscar.c	Sat Jul 05 07:36:09 2003 +0000
@@ -516,8 +516,10 @@
 		} else {
 			if (aim_get_command(od->sess, conn) >= 0) {
 				aim_rxdispatch(od->sess);
-				if (od->killme)
-					gaim_connection_destroy(gc);
+				if (od->killme) {
+					gaim_debug(GAIM_DEBUG_ERROR, "oscar", "Waiting to be destroyed\n");
+					return;
+				}
 			} else {
 				if ((conn->type == AIM_CONN_TYPE_BOS) ||
 					   !(aim_getconn_type(od->sess, AIM_CONN_TYPE_BOS))) {
@@ -1028,16 +1030,15 @@
 }
 
 static int gaim_parse_auth_resp(aim_session_t *sess, aim_frame_t *fr, ...) {
+	GaimConnection *gc = sess->aux_data;
+	struct oscar_data *od = gc->proto_data;
+	GaimAccount *account = gc->account;
+	aim_conn_t *bosconn;
+	char *host; int port;
+	int i, rc;
 	va_list ap;
 	struct aim_authresp_info *info;
-	int i, rc;
-	char *host; int port;
-	GaimAccount *account;
-	aim_conn_t *bosconn;
-
-	GaimConnection *gc = sess->aux_data;
-        struct oscar_data *od = gc->proto_data;
-	account = gc->account;
+
 	port = gaim_account_get_int(account, "port", FAIM_LOGIN_PORT);
 
 	va_start(ap, fr);