# HG changeset patch # User Mikael Berthe # Date 1136592904 -3600 # Node ID 3ad6675caaf1284a00522916c02c3ae9d2c75e06 # Parent 16cd6c858a5d28ff305a0fa788401a015271cfe0 MUC: fix join bug when the conference is in the roster diff -r 16cd6c858a5d -r 3ad6675caaf1 mcabber/src/jabglue.c --- a/mcabber/src/jabglue.c Sat Jan 07 01:12:03 2006 +0100 +++ b/mcabber/src/jabglue.c Sat Jan 07 01:15:04 2006 +0100 @@ -591,8 +591,12 @@ room_elt = roster_find(room, jidsearch, ROSTER_TYPE_USER|ROSTER_TYPE_ROOM); // Add room if it doesn't already exist - if (!room_elt) + if (!room_elt) { room_elt = roster_add_user(room, NULL, NULL, ROSTER_TYPE_ROOM, sub_none); + } else { + // Make sure this is a room (it can be a conversion user->room) + buddy_settype(room_elt->data, ROSTER_TYPE_ROOM); + } // If insideroom is TRUE, this is a nickname change and we don't care here if (!buddy_getinsideroom(room_elt->data)) { // We're trying to enter a room diff -r 16cd6c858a5d -r 3ad6675caaf1 mcabber/src/roster.c --- a/mcabber/src/roster.c Sat Jan 07 01:12:03 2006 +0100 +++ b/mcabber/src/roster.c Sat Jan 07 01:15:04 2006 +0100 @@ -823,7 +823,7 @@ { roster *roster_usr = rosterdata; - if (!(roster_usr->type & ROSTER_TYPE_ROOM)) return; + if (!(roster_usr->type & ROSTER_TYPE_ROOM)) return; // XXX Error message? if (roster_usr->nickname) { g_free((gchar*)roster_usr->nickname);