diff plugins/icq/gaim_icq.c @ 1498:0ef6603d986e

[gaim-migrate @ 1508] updating icqlib committer: Tailor Script <tailor@pidgin.im>
author Eric Warmenhoven <eric@warmenhoven.org>
date Thu, 22 Feb 2001 23:07:34 +0000
parents d33bf6548543
children de0b946e86a4
line wrap: on
line diff
--- a/plugins/icq/gaim_icq.c	Thu Feb 22 22:50:03 2001 +0000
+++ b/plugins/icq/gaim_icq.c	Thu Feb 22 23:07:34 2001 +0000
@@ -18,9 +18,10 @@
 struct icq_data {
 	ICQLINK *link;
 	int cur_status;
-	int ack_timer;
 };
 
+static guint ack_timer = 0;
+
 static struct gaim_connection *find_gaim_conn_by_icq_link(ICQLINK *link) {
 	GSList *c = connections;
 	struct gaim_connection *gc = NULL;
@@ -152,22 +153,19 @@
 	serv_got_update(gc, buf, 1, 0, 0, 0, status, 0);
 }
 
-static gint icq_set_timeout_cb(struct icq_data *id) {
-	icq_HandleTimeout(id->link);
-	id->ack_timer = -1;
+static gint icq_set_timeout_cb() {
+	icq_HandleTimeout();
+	ack_timer = 0;
 	return FALSE;
 }
 
-static void icq_set_timeout(ICQLINK *link, long interval) {
-	struct gaim_connection *gc = find_gaim_conn_by_icq_link(link);
-	struct icq_data *id = (struct icq_data *)gc->proto_data;
-
+static void icq_set_timeout(long interval) {
 	debug_printf("icq_SetTimeout: %ld\n", interval);
-	if (interval > 0 && id->ack_timer < 1)
-		id->ack_timer = gtk_timeout_add(interval * 1000, (GtkFunction)icq_set_timeout_cb, id);
-	else if (id->ack_timer > 0) {
-		gtk_timeout_remove(id->ack_timer);
-		id->ack_timer = -1;
+	if (interval > 0 && ack_timer == 0)
+		ack_timer = gtk_timeout_add(interval * 1000, (GtkFunction)icq_set_timeout_cb, NULL);
+	else if (ack_timer > 0) {
+		gtk_timeout_remove(ack_timer);
+		ack_timer = 0;
 	}
 }
 
@@ -258,7 +256,6 @@
 	link->icq_WrongPassword = icq_wrong_passwd;
 	link->icq_InvalidUIN = icq_invalid_uin;
 	link->icq_Log = icq_do_log;
-	link->icq_SetTimeout = icq_set_timeout;
 
 	icq_ContactClear(id->link);
 	if (bud_list_cache_exists(gc))
@@ -479,6 +476,7 @@
 
 char *gaim_plugin_init(GModule *handle) {
 	icq_SocketNotify = icq_sock_notify;
+	icq_SetTimeout = icq_set_timeout;
 	load_protocol(icq_init, sizeof(struct prpl));
 	return NULL;
 }