Mercurial > pidgin
changeset 1378:aedeb1218a0a
[gaim-migrate @ 1388]
libfaim has a bad cap for Games, update the TODO for Jabber stuff, and make autorecon.c work better, I hope
committer: Tailor Script <tailor@pidgin.im>
author | Eric Warmenhoven <eric@warmenhoven.org> |
---|---|
date | Fri, 05 Jan 2001 00:17:43 +0000 |
parents | 569835fcabc3 |
children | 11d21829ea3b |
files | TODO libfaim/aim_info.c plugins/autorecon.c |
diffstat | 3 files changed, 41 insertions(+), 19 deletions(-) [+] |
line wrap: on
line diff
--- a/TODO Thu Jan 04 23:29:52 2001 +0000 +++ b/TODO Fri Jan 05 00:17:43 2001 +0000 @@ -3,16 +3,15 @@ Make Yahoo plugin let you have two identities in the same connection (different from multiple connections) Figure out some way of not displaying a million new mail messages - Allow messages through server for ICQ File transfer for IRC? Maybe later? - Chat for Yahoo/ICQ + Chat for Yahoo/ICQ/Jabber File transfer for Yahoo/ICQ/Oscar/Napster Working file transfer for TOC Other RVOUS actions for TOC/Oscar - Get Jabber working + Jabber Transports Fix MSN signon process Make it so you can register new accounts via gaim - Napster user registration + Jabber/ICQ/Napster user registration Syd is cool and gave all of these ideas: Have multiple tickers in the same window, one for buddies
--- a/libfaim/aim_info.c Thu Jan 04 23:29:52 2001 +0000 +++ b/libfaim/aim_info.c Fri Jan 05 00:17:43 2001 +0000 @@ -126,7 +126,7 @@ /* Games */ {0x09, 0x46, 0x13, 0x4a, 0x4c, 0x7f, 0x11, 0xd1, - 0x22, 0x82, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00}, + 0x82, 0x22, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00}, }; faim_internal unsigned short aim_getcap(unsigned char *capblock, int buflen) @@ -153,7 +153,10 @@ } } if (!identified) { - printf("faim: unknown capability!\n"); + printf("faim: unknown capability "); + for (y = 0; y < 0x10; y++) + printf("%02x ", capblock[offset+y]); + printf("\n"); ret |= 0xff00; } @@ -374,6 +377,8 @@ break; outinfo->capabilities = aim_getcap(buf+i+4, len); + if (outinfo->capabilities & 0xff00) + printf("%s\n", outinfo->sn); } break;
--- a/plugins/autorecon.c Thu Jan 04 23:29:52 2001 +0000 +++ b/plugins/autorecon.c Fri Jan 05 00:17:43 2001 +0000 @@ -4,10 +4,11 @@ extern GtkWidget *imaway; -static int recon; static int away_state; static int forced_off = 0; -static struct away_message *last_away; +static struct away_message *last_away = NULL; +GSList *reconnects = NULL; +GSList *recontim = NULL; char *name() { return "Auto Reconnect"; @@ -17,23 +18,39 @@ return "When AOL kicks you off, this auto-reconnects you."; } -void do_signon(char *name) { - struct aim_user *u = find_user(name, -1); - g_free(name); - gtk_timeout_remove(recon); - if (!u) return; - serv_login(u); - forced_off = 0; +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) do_away_message(NULL, last_away); } -void reconnect(struct gaim_connection *gc, void *m) { - char *name = g_strdup(gc->username); - recon = gtk_timeout_add(8000, (GtkFunction)do_signon, name); +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; + serv_login(u); +} + +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; } -void away_toggle(void *m) { +static void away_toggle(void *m) { if ((int)m == 1) { last_away = awaymessage; away_state = 1; @@ -51,6 +68,7 @@ gaim_signal_connect(handle, event_away, away_toggle, (void *)1); gaim_signal_connect(handle, event_back, away_toggle, (void *)0); gaim_signal_connect(handle, event_signoff, reconnect, NULL); + gaim_signal_connect(handle, event_signon, now_online, NULL); return NULL; }