changeset 265:59f1748b09a6

[gaim-migrate @ 275] Logging in works properly for Oscar now. Let's hope I didn't break the TOC side of things. committer: Tailor Script <tailor@pidgin.im>
author Eric Warmenhoven <eric@warmenhoven.org>
date Thu, 25 May 2000 08:09:03 +0000
parents ced25773243c
children 3b5b469d07f7
files TODO libfaim/CHANGES.gaim libfaim/README.gaim src/aim.c src/oscar.c src/server.c
diffstat 6 files changed, 23 insertions(+), 26 deletions(-) [+]
line wrap: on
line diff
--- a/TODO	Thu May 25 06:29:22 2000 +0000
+++ b/TODO	Thu May 25 08:09:03 2000 +0000
@@ -1,8 +1,7 @@
---- STUFF FOR 0.9.15 RELEASE ---
+--- STUFF FOR 0.9.16 RELEASE ---
         Gaim 95? 
 	KDE Awareness?
 	Smilie Faces
-	File Transfers
 	Locale Support
 	Make Buddy Chat Prettier
 	Icons for buddy list (I forget what this was)
--- a/libfaim/CHANGES.gaim	Thu May 25 06:29:22 2000 +0000
+++ b/libfaim/CHANGES.gaim	Thu May 25 08:09:03 2000 +0000
@@ -1,3 +1,9 @@
+
+Thu May 25 07:10:34 UTC 2000 EWarmenhoven
+	- Changed around aim.c a bit so that the registering of sounds and
+	  plugins and such gets taken care of after we actually finish signing
+	  on. this should fix a lot of things, but still not the 100% bug (as I
+	  call it now).
 
 Wed May 24 19:10:19 UTC 2000 EWarmenhoven
 	- Got rid of aim_select. Good. But it still uses 100% of the CPU. Bad.
--- a/libfaim/README.gaim	Thu May 25 06:29:22 2000 +0000
+++ b/libfaim/README.gaim	Thu May 25 08:09:03 2000 +0000
@@ -57,14 +57,9 @@
 You can receive more messages in less time with TOC than with libfaim. It's not
 completely libfaim's fault though.
 
-- It's possible that if the server negotiations don't happen fast enough, it'll
-look like you're trying to sign in twice (and in fact you will be). It doesn't
-seem to negatively affect anything, but it will when people start using it. (I
-think this may actually be related to the auto_recon plugin.) (FIXME for this is
-marked in aim.c)
-
 - There are a lot of problems with panel support (funny that I'm supporting the
-panel code, and the oscar code I wrote doesn't work well with it).
+panel code, and the oscar code I wrote doesn't work well with it). I think this
+is related to oscar_callback being funny.
 
 - Oscar doesn't do whispering in chat rooms any more (and hasn't for quite a
 while, evidently). So if you want to "whisper" to someone, just IM them.
--- a/src/aim.c	Thu May 25 06:29:22 2000 +0000
+++ b/src/aim.c	Thu May 25 08:09:03 2000 +0000
@@ -119,10 +119,10 @@
 }
 
 char g_screenname[ 64 ];	/* gotta be enough */
+gboolean running = FALSE;
 
 void dologin(GtkWidget *widget, GtkWidget *w)
 {
-	static gboolean running = FALSE;
 	char *username = gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(name)->entry));
         char *password = gtk_entry_get_text(GTK_ENTRY(pass));
 	int i;
@@ -157,13 +157,18 @@
 	if (running) return;
 	running = TRUE;
 
-	/* libfaim FIXME : serv_login only starts the process. it's not over
-	 * after serv_login gets called */
         if (serv_login(username, password) < 0) {
 		running = FALSE;
                 return;
 	}
+#ifdef USE_OSCAR
+}
 
+/* we need to do this for Oscar because serv_login only starts the login
+ * process, it doesn't end there. gaim_setup will be called later from
+ * oscar.c, after the buddy list is made and serv_finish_login is called */
+void gaim_setup() {
+#endif /* USE_OSCAR */
 	if (sound_options & OPT_SOUND_LOGIN &&
 		sound_options & OPT_SOUND_SILENT_SIGNON) {
 		logins_not_muted = 0;
@@ -183,7 +188,7 @@
 			 _("Signoff"),
 			 signoff,
 			 NULL);
-#endif
+#endif /* USE_APPLET */
 
 #ifdef GAIM_PLUGINS
 	 {
@@ -199,7 +204,7 @@
 			 c = c->next;
 		 }
 	 }
-#endif
+#endif /* GAIM_PLUGINS */
 
 	 running = FALSE;
 	 return;
--- a/src/oscar.c	Thu May 25 06:29:22 2000 +0000
+++ b/src/oscar.c	Thu May 25 08:09:03 2000 +0000
@@ -87,15 +87,8 @@
 			aim_logoff(sess);
 			gdk_input_remove(inpa);
 		} else {
-			aim_rxdispatch(sess);
-			/* the rest of this is a bad hack to try and get it to
-			 * update the display at least occasionally */
-			gdk_input_remove(inpa);
-			while (gtk_events_pending())
-				gtk_main_iteration();
-			inpa = gdk_input_add(gaim_conn->fd,
-			GDK_INPUT_READ | GDK_INPUT_WRITE | GDK_INPUT_EXCEPTION,
-			oscar_callback, sess);
+			if (aim_rxdispatch(sess))
+				debug_print("I hate GDK!\n");
 		}
 	}
 }
@@ -348,6 +341,7 @@
 		refresh_buddy_window();
 #endif
 		serv_finish_login();
+		gaim_setup();
 		if (bud_list_cache_exists())
 			do_import(NULL, 0);
 
--- a/src/server.c	Thu May 25 06:29:22 2000 +0000
+++ b/src/server.c	Thu May 25 08:09:03 2000 +0000
@@ -377,9 +377,7 @@
 	sflap_send(buf, -1, TYPE_DATA);
 #else
 	/* oscar requires us to do everyone at once (?) */
-/* FIXME : there's something wrong with this code, it causes the entire buddy
- * list to update, and can cause other people's buddy lists to improperly update
- */
+	/* I think this code is OK now. */
 	if (!(permdeny == 1 || permdeny == 4)) {
 		list = permit; at = 0;
 		while (list) {