diff src/server.c @ 1153:3063e6743913

[gaim-migrate @ 1163] handle the keepalives better. have ICQ force keepalives for connections, it's a bad hack but it's probably necessary for a UDP protocol. committer: Tailor Script <tailor@pidgin.im>
author Eric Warmenhoven <eric@warmenhoven.org>
date Tue, 28 Nov 2000 04:12:06 +0000
parents cd96ca1aed02
children 4fd0d35826fe
line wrap: on
line diff
--- a/src/server.c	Tue Nov 28 02:22:42 2000 +0000
+++ b/src/server.c	Tue Nov 28 04:12:06 2000 +0000
@@ -67,11 +67,11 @@
 
 	if (gc->idle_timer > 0)
 		gtk_timeout_remove(gc->idle_timer);
-        gc->idle_timer = -1;
+        gc->idle_timer = 0;
 
 	if (gc->keepalive > 0)
 		gtk_timeout_remove(gc->keepalive);
-	gc->keepalive = -1;
+	gc->keepalive = 0;
 
 	if (gc->prpl && gc->prpl->close)
 		(*gc->prpl->close)(gc);
@@ -111,6 +111,8 @@
         time(&gc->login_time);
 
         serv_add_buddy(gc, gc->username);
+
+	update_keepalive(gc, gc->options & OPT_USR_KEEPALV);
 }
 
 
@@ -704,18 +706,17 @@
 
 void send_keepalive(gpointer d) {
 	struct gaim_connection *gc = (struct gaim_connection *)d;
-	debug_print("sending oscar NOP\n");
 	if (gc->prpl && gc->prpl->keepalive)
 		(*gc->prpl->keepalive)(gc);
 }
 
 void update_keepalive(struct gaim_connection *gc, gboolean on) {
-	if (on && gc->keepalive < 0 && blist) {
+	if (on && !gc->keepalive && blist) {
 		debug_print("allowing NOP\n");
 		gc->keepalive = gtk_timeout_add(60000, (GtkFunction)send_keepalive, gc);
-	} else if (!on && gc->keepalive > -1) {
+	} else if (!on && gc->keepalive > 0) {
 		debug_print("removing NOP\n");
 		gtk_timeout_remove(gc->keepalive);
-		gc->keepalive = -1;
+		gc->keepalive = 0;
 	}
 }