Send presence changes to chat rooms

This commit is contained in:
James Booth
2012-11-20 00:33:11 +00:00
parent 2d590a81e0
commit 306965501a
3 changed files with 33 additions and 2 deletions

View File

@@ -346,6 +346,21 @@ jabber_update_presence(jabber_presence_t status, const char * const msg)
xmpp_stanza_add_child(presence, priority);
}
xmpp_send(jabber_conn.conn, presence);
// send presence for each room
GList *rooms = room_get_rooms();
while (rooms != NULL) {
char *room = rooms->data;
char *nick = room_get_nick_for_room(room);
char *full_room_jid = room_create_full_room_jid(room, nick);
xmpp_stanza_set_attribute(presence, STANZA_ATTR_TO, full_room_jid);
xmpp_send(jabber_conn.conn, presence);
rooms = g_list_next(rooms);
}
g_list_free(rooms);
xmpp_stanza_release(presence);
}
@@ -730,8 +745,9 @@ _room_presence_handler(const char * const jid, xmpp_stanza_t * const stanza)
prof_handle_room_nick_change(room, nick);
// handle roster complete
} else {
} else if (!room_get_roster_received(room)) {
prof_handle_room_roster_complete(room);
}
// handle presence from room members