changeset 288:6e609d42f767

[gaim-migrate @ 298] Hopefully signing on will work a little better now. At least I know what's causing it. committer: Tailor Script <tailor@pidgin.im>
author Eric Warmenhoven <eric@warmenhoven.org>
date Wed, 31 May 2000 19:58:36 +0000
parents 8bbc269d5b8d
children d618dc6c7d21
files libfaim/CHANGES.gaim libfaim/README.gaim src/oscar.c
diffstat 3 files changed, 23 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- a/libfaim/CHANGES.gaim	Wed May 31 18:06:09 2000 +0000
+++ b/libfaim/CHANGES.gaim	Wed May 31 19:58:36 2000 +0000
@@ -1,3 +1,9 @@
+
+Wed May 31 19:15:38 UTC 2000 EWarmenhoven
+	- Signon works better; oscar_callback takes an aim_conn_t instead of an
+	  aim_session_t now to try and prevent reported connection errors.
+	- Setting the latency before creating the buddy list seems to remove
+	  some signon problems, especially if you have a larger buddy list.
 
 Wed May 31 02:50:36 UTC 2000 EWarmenhoven
 	- Good fun things here. Sometimes I think Adam does things just to make
--- a/libfaim/README.gaim	Wed May 31 18:06:09 2000 +0000
+++ b/libfaim/README.gaim	Wed May 31 19:58:36 2000 +0000
@@ -77,6 +77,14 @@
 "Allow anyone" works all the time (?) and "Deny some" doesn't work some of the
 time. That's a bug.
 
+- Sometimes signing on doesn't work completely correctly. (If you want a bad
+fix for it, comment out the lines where it imports your buddy list in oscar.c,
+and import it manually.)
+
+- If you receive a message that's too large, gaim segfaults. I haven't watched
+this in gdb or gotten a backtrace on it, so I'm not exactly sure what the
+problem is.
+
 - Gaim/TOC can do file transfers, but Gaim/Faim cannot. This is not because
 there is any difference in the two protocols as far as the actual transfer is
 concerned. The only thing preventing this is it is currently not possible to
--- a/src/oscar.c	Wed May 31 18:06:09 2000 +0000
+++ b/src/oscar.c	Wed May 31 19:58:36 2000 +0000
@@ -61,24 +61,24 @@
 
 static void oscar_callback(gpointer data, gint source,
 				GdkInputCondition condition) {
-	struct aim_session_t *sess = (struct aim_session_t *)data;
+	struct aim_conn_t *conn = (struct aim_conn_t *)data;
 
 	if (condition & GDK_INPUT_EXCEPTION) {
 		signoff();
 		hide_login_progress("Disconnected.");
-		aim_logoff(sess);
+		aim_logoff(gaim_sess);
 		gdk_input_remove(inpa);
 		return;
 	}
 	if (condition & GDK_INPUT_READ) {
-		if (aim_get_command(sess, gaim_conn) < 0) {
+		if (aim_get_command(gaim_sess, conn) < 0) {
 			debug_print("connection error!\n");
 			signoff();
 			hide_login_progress("Disconnected.");
-			aim_logoff(sess);
+			aim_logoff(gaim_sess);
 			gdk_input_remove(inpa);
 		} else {
-			aim_rxdispatch(sess);
+			aim_rxdispatch(gaim_sess);
 		}
 	}
 }
@@ -136,9 +136,8 @@
 				gaim_auth_server_ready, 0);
 	aim_send_login(sess, conn, username, password, &info);
 
-	gaim_conn = conn;
 	inpa = gdk_input_add(conn->fd, GDK_INPUT_READ | GDK_INPUT_EXCEPTION,
-			oscar_callback, sess);
+			oscar_callback, conn);
 
 	u = find_user(username);
 
@@ -226,7 +225,6 @@
 		hide_login_progress("Could Not Connect");
 		return -1;
 	}
-	gaim_conn = bosconn;
 
 	aim_conn_addhandler(sess, bosconn, AIM_CB_FAM_ACK, AIM_CB_ACK_ACK, NULL, 0);
 	aim_conn_addhandler(sess, bosconn, AIM_CB_FAM_GEN, AIM_CB_GEN_SERVERREADY, gaim_server_ready, 0);
@@ -246,8 +244,9 @@
 	aim_conn_addhandler(sess, bosconn, AIM_CB_FAM_GEN, AIM_CB_GEN_MOTD, gaim_parse_motd, 0);
 
 	aim_auth_sendcookie(sess, bosconn, sess->logininfo.cookie);
+	gaim_conn = bosconn;
 	inpa = gdk_input_add(bosconn->fd, GDK_INPUT_READ | GDK_INPUT_EXCEPTION,
-			oscar_callback, sess);
+			oscar_callback, bosconn);
 	set_login_progress(4, "Connection established, cookie sent");
 	return 1;
 }
@@ -324,6 +323,7 @@
 		aim_bos_clientready(sess, command->conn);
 
 		aim_bos_reqservice(sess, command->conn, AIM_CONN_TYPE_CHATNAV);
+		aim_conn_setlatency(command->conn, 1);
 
 		debug_print("Roger that, all systems go\n");
 #ifdef USE_APPLET
@@ -348,8 +348,6 @@
 		if (bud_list_cache_exists())
 			do_import(NULL, 0);
 
-		aim_conn_setlatency(command->conn, 1);
-
 		break;
 	case 0x7: /* Authorizer */
 		{