diff plugins/autorecon.c @ 1817:b367beee6448

[gaim-migrate @ 1827] reworked autorecon.c. committer: Tailor Script <tailor@pidgin.im>
author Eric Warmenhoven <eric@warmenhoven.org>
date Sun, 06 May 2001 10:08:40 +0000
parents 96e93119268d
children 84782d1cb051
line wrap: on
line diff
--- a/plugins/autorecon.c	Sun May 06 09:43:20 2001 +0000
+++ b/plugins/autorecon.c	Sun May 06 10:08:40 2001 +0000
@@ -3,78 +3,28 @@
 #include "prpl.h"
 #include <gtk/gtk.h>
 
-extern GtkWidget *imaway;
-
-static int away_state;
-static int forced_off = 0;
-static char *last_away = NULL;
-GSList *reconnects = NULL;
-GSList *recontim = NULL;
-
 char *name() {
 	return "Auto Reconnect";
 }
 
 char *description() {
-	return "When AOL kicks you off, this auto-reconnects you.";
+	return "When you are kicked offline, this reconnects you.";
 }
 
-static void now_online(struct gaim_connection *gc, void *m) {
-	gint place;
-	guint recon;
-	if (!g_slist_find(reconnects, gc->user))
-		return;
-	place = g_slist_index(reconnects, gc->user);
-	recon = (guint)g_slist_nth(recontim, place);
-	reconnects = g_slist_remove(reconnects, gc->user);
-	recontim = g_slist_remove(recontim, (void *)recon);
-	if (away_state) serv_set_away(gc, GAIM_AWAY_CUSTOM, last_away);
-}
-
-static void do_signon(struct aim_user *u) {
-	gint place;
-	guint recon;
-	place = g_slist_index(reconnects, u);
-	recon = (guint)g_slist_nth(recontim, place);
-	gtk_timeout_remove(recon);
-	forced_off = 0;
+static gboolean do_signon(struct aim_user *u) {
+	if (!g_list_index(aim_users, u))
+		return FALSE;
 	serv_login(u);
+	return FALSE;
 }
 
 static void reconnect(struct gaim_connection *gc, void *m) {
-	guint recon;
-	if (g_slist_find(reconnects, gc->user))
-		return;
-	recon = gtk_timeout_add(8000, (GtkFunction)do_signon, gc->user);
-	reconnects = g_slist_append(reconnects, gc->user);
-	recontim = g_slist_append(recontim, (void *)recon);
-	forced_off = 1;
-}
-
-static void away_toggle(struct gaim_connection *gc, char *state, char *message, gpointer data) {
-	if (gc->away) {
-		if (last_away)
-			g_free(last_away);
-		last_away = g_strdup(gc->away);
-		away_state = 1;
-	} else if (!forced_off)
-		away_state = 0;
+	if (gc->wants_to_die)
+		gtk_timeout_add(8000, (GtkFunction)do_signon, gc->user);
 }
 
 char *gaim_plugin_init(GModule *handle) {
-	if (awaymessage) {
-		away_state = 1;
-		last_away = g_strdup(awaymessage->message);
-	} else
-		away_state = 0;
-
-	gaim_signal_connect(handle, event_away, away_toggle, NULL);
 	gaim_signal_connect(handle, event_signoff, reconnect, NULL);
-	gaim_signal_connect(handle, event_signon, now_online, NULL);
 
 	return NULL;
 }
-
-void gaim_plugin_remove() {
-	g_free(last_away);
-}