diff src/oscar.c @ 891:fa2feef25e1e

[gaim-migrate @ 901] Oscar options? committer: Tailor Script <tailor@pidgin.im>
author Eric Warmenhoven <eric@warmenhoven.org>
date Tue, 12 Sep 2000 22:59:36 +0000
parents 41bfae606d39
children e18815f5a4e9
line wrap: on
line diff
--- a/src/oscar.c	Tue Sep 12 20:24:08 2000 +0000
+++ b/src/oscar.c	Tue Sep 12 22:59:36 2000 +0000
@@ -52,6 +52,7 @@
 int gaim_caps = AIM_CAPS_CHAT | AIM_CAPS_SENDFILE | AIM_CAPS_GETFILE |
 		AIM_CAPS_VOICE | AIM_CAPS_IMIMAGE | AIM_CAPS_BUDDYICON;
 int USE_OSCAR = 0;
+int keepalv = -1;
 
 GList *oscar_chats = NULL;
 
@@ -861,6 +862,9 @@
 		do_error_dialog(_("Your connection may be lost."),
 				_("AOL error"));
 
+	if (keepalv < 0)
+		update_keepalive(TRUE);
+
 	return 1;
 }
 
@@ -1217,3 +1221,22 @@
 	cnv->watcher = gdk_input_add(newconn->fd, GDK_INPUT_READ | GDK_INPUT_EXCEPTION, oscar_callback, newconn);
 	aim_conn_addhandler(gaim_sess, newconn, AIM_CB_FAM_OFT, AIM_CB_OFT_DIRECTIMINITIATE, gaim_directim_initiate, 0);
 }
+
+void send_keepalive(gpointer d) {
+	debug_print("sending oscar NOP\n");
+	if (USE_OSCAR) { /* keeping it open for TOC */
+		aim_flap_nop(gaim_sess, gaim_conn);
+	} else {
+	}
+}
+
+void update_keepalive(gboolean on) {
+	if (on && keepalv < 0 && blist) {
+		debug_print("allowing NOP\n");
+		keepalv = gtk_timeout_add(60000, (GtkFunction)send_keepalive, 0);
+	} else if (!on && keepalv > -1) {
+		debug_print("removing NOP\n");
+		gtk_timeout_remove(keepalv);
+		keepalv = -1;
+	}
+}