# HG changeset patch # User Luke Schierer # Date 1090084104 0 # Node ID 8a64666476e61e268a7e856297349618f5296fec # Parent 2e057acae3ab17b75ff9321cc8bc958454e1be00 [gaim-migrate @ 10386] (13:06:08) nosnilmot: Paco-Paco / LSchiere: this cures the flooding on signon for me committer: Tailor Script diff -r 2e057acae3ab -r 8a64666476e6 ChangeLog --- a/ChangeLog Fri Jul 16 16:45:32 2004 +0000 +++ b/ChangeLog Sat Jul 17 17:08:24 2004 +0000 @@ -5,6 +5,10 @@ * The autorecon plugin will somewhat remember state information(Yosef Radchenko) + Bug Fixes: + * Long buddy lists with irc should cause flooding disconnects less + (Stu Tomlinson) + version 0.80 (07/15/2004): New Features: * Ability to send files from the conversation window (Daniel Atallah) diff -r 2e057acae3ab -r 8a64666476e6 src/protocols/irc/irc.c --- a/src/protocols/irc/irc.c Fri Jul 16 16:45:32 2004 +0000 +++ b/src/protocols/irc/irc.c Sat Jul 17 17:08:24 2004 +0000 @@ -123,6 +123,17 @@ g_string_append_printf(string, "%s ", name); } +static void irc_ison_one(struct irc_conn *irc, struct irc_buddy *ib) +{ + char *buf; + + ib->flag = FALSE; + buf = irc_format(irc, "vn", "ISON", ib->name); + irc_send(irc, buf); + g_free(buf); +} + + static const char *irc_blist_icon(GaimAccount *a, GaimBuddy *b) { return "irc"; @@ -345,7 +356,11 @@ ib->name = g_strdup(buddy->name); g_hash_table_insert(irc->buddies, ib->name, ib); - irc_blist_timeout(irc); + /* if the timer isn't set, this is during signon, so we don't want to flood + * ourself off with ISON's, so we don't, but after that we want to know when + * someone's online asap */ + if (irc->timer) + irc_ison_one(irc, ib); } static void irc_remove_buddy(GaimConnection *gc, GaimBuddy *buddy, GaimGroup *group)