From 246b98bbdf221448fd7a638fea04373ed1612de5 Mon Sep 17 00:00:00 2001 From: dequis Date: Sat, 31 Mar 2018 00:05:46 -0300 Subject: [PATCH] jabber: try to join anyway after "Already present in chat" Most of the time that error meant a confusion on bitlbee's side, often a server for which we sent a join request and never got a reply for. --- protocols/jabber/jabber.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/protocols/jabber/jabber.c b/protocols/jabber/jabber.c index f31abc50f..15b88b30e 100644 --- a/protocols/jabber/jabber.c +++ b/protocols/jabber/jabber.c @@ -578,9 +578,14 @@ static struct groupchat *jabber_chat_join_(struct im_connection *ic, const char if (strchr(room, '@') == NULL) { imcb_error(ic, "%s is not a valid Jabber room name. Maybe you mean %s@conference.%s?", room, room, jd->server); - } else if (jabber_chat_by_jid(ic, room)) { - imcb_error(ic, "Already present in chat `%s'", room); } else { + struct groupchat *old; + + if ((old = jabber_chat_by_jid(ic, room))) { + imcb_log(ic, "Warning: Already present in chat `%s' - trying to join anyway", room); + jabber_chat_free(old); + } + /* jabber_chat_join without the underscore is the conference.c one */ return jabber_chat_join(ic, room, final_nick, set_getstr(sets, "password"), set_getbool(sets, "always_use_nicks"));