From 8070bb670467511b558e5ccdd6adc448c2766fc8 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Tue, 21 Jan 2003 08:15:33 +0000 Subject: [PATCH] If JOIN is sent to channel you've already joined, assume a missing PART and resync the channel (instead of just ignoring as before). Patch by dg. git-svn-id: http://svn.irssi.org/repos/irssi/trunk@3099 dbcabf3a-b0e7-0310-adc4-f8d773084564 --- src/irc/core/channel-events.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/irc/core/channel-events.c b/src/irc/core/channel-events.c index 92784c1a..dc98be3e 100644 --- a/src/irc/core/channel-events.c +++ b/src/irc/core/channel-events.c @@ -253,12 +253,11 @@ static void event_join(IRC_SERVER_REC *server, const char *data, const char *nic chanrec = irc_channel_find(server, channel); if (chanrec != NULL && chanrec->joined) { - /* already joined this channel - this check was added - here because of broken irssi proxy :) */ - g_free(shortchan); - g_free(params); - return; - } + /* already joined this channel - probably a broken proxy that + forgot to send PART between */ + chanrec->left = TRUE; + channel_destroy(CHANNEL(chanrec)); + chanrec = NULL; } if (chanrec == NULL) { /* look again, because of the channel name cut issues. */