Mercurial > pidgin
changeset 22846:f09acca60066
Patch from sadrul to fix IRC servers which neglect to send RPL_LISTSTART
(321) before sending their channel list with RPL_LIST (322).
Fixes #2225
author | Ethan Blanton <elb@pidgin.im> |
---|---|
date | Mon, 05 May 2008 14:56:36 +0000 |
parents | 61e0bcbf31ab |
children | 750813c2db46 |
files | ChangeLog libpurple/protocols/irc/msgs.c |
diffstat | 2 files changed, 7 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog Mon May 05 04:54:37 2008 +0000 +++ b/ChangeLog Mon May 05 14:56:36 2008 +0000 @@ -9,6 +9,8 @@ switching between different operating systems. * Fix reception of IRC PART without a part message on Undernet (fixes a problem with litter in the channel user list). + * IRC no longer crashes on /list on servers which erroneously omit + RPL_LISTSTART. Pidgin: * The typing notification in the conversation history can be disabled or
--- a/libpurple/protocols/irc/msgs.c Mon May 05 04:54:37 2008 +0000 +++ b/libpurple/protocols/irc/msgs.c Mon May 05 14:56:36 2008 +0000 @@ -422,6 +422,11 @@ if (!args[0] || !args[1] || !args[2] || !args[3]) return; + if (!purple_roomlist_get_in_progress(irc->roomlist)) { + purple_debug_warning("irc", "Buggy server didn't send RPL_LISTSTART.\n"); + purple_roomlist_set_in_progress(irc->roomlist, TRUE); + } + room = purple_roomlist_room_new(PURPLE_ROOMLIST_ROOMTYPE_ROOM, args[1], NULL); purple_roomlist_room_add_field(irc->roomlist, room, args[1]); purple_roomlist_room_add_field(irc->roomlist, room, GINT_TO_POINTER(strtol(args[2], NULL, 10)));