From d088ee8bc50cfe13130da745791f533705acd35e Mon Sep 17 00:00:00 2001 From: dequis Date: Thu, 26 Nov 2015 01:46:51 -0300 Subject: irc: Send numeric error when failing to join a channel This fixes issues like getting a blank window with a channel that the irc client thinks the user is in but bitlbee doesn't. The error is sent either by returning NULL in the chat_join prpl function, or by calling imcb_chat_free() before the user is added to the channel. This wasn't possible before since purple returned NULL in its chat_join, which resulted in other bugs too. Since that's fixed, I can finally apply this, which has been in my stash for a very long while. --- irc_channel.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'irc_channel.c') diff --git a/irc_channel.c b/irc_channel.c index 714e974a..50fa14b3 100644 --- a/irc_channel.c +++ b/irc_channel.c @@ -254,6 +254,10 @@ int irc_channel_del_user(irc_channel_t *ic, irc_user_t *iu, irc_channel_del_user irc_channel_user_t *icu; if (!(icu = irc_channel_has_user(ic, iu))) { + if (iu == ic->irc->user && type == IRC_CDU_KICK) { + /* an error happened before joining, inform the client with a numeric */ + irc_send_num(ic->irc, 403, "%s :Error joining channel (check control channel?)", ic->name); + } return 0; } -- cgit v1.2.3