changeset 649:3ad6675caaf1

MUC: fix join bug when the conference is in the roster
author Mikael Berthe <mikael@lilotux.net>
date Sat, 07 Jan 2006 01:15:04 +0100
parents 16cd6c858a5d
children c2d50b97ced4
files mcabber/src/jabglue.c mcabber/src/roster.c
diffstat 2 files changed, 6 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- 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
--- 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);