mirror of
https://git.jabber.space/devs/cproof.git
synced 2026-08-01 06:56:21 +00:00
Refactored muc_room_is_active to only take room, rather than full jid
This commit is contained in:
@@ -1656,16 +1656,13 @@ cmd_join(gchar **args, struct cmd_help_t help)
|
|||||||
nick = account->muc_nick;
|
nick = account->muc_nick;
|
||||||
}
|
}
|
||||||
|
|
||||||
Jid *room_jid = jid_create_from_bare_and_resource(room, nick);
|
if (!muc_room_is_active(room)) {
|
||||||
|
|
||||||
if (!muc_room_is_active(room_jid)) {
|
|
||||||
presence_join_room(room, nick, passwd);
|
presence_join_room(room, nick, passwd);
|
||||||
}
|
}
|
||||||
ui_room_join(room);
|
ui_room_join(room);
|
||||||
muc_remove_invite(room);
|
muc_remove_invite(room);
|
||||||
|
|
||||||
jid_destroy(room_arg);
|
jid_destroy(room_arg);
|
||||||
jid_destroy(room_jid);
|
|
||||||
g_string_free(room_str, TRUE);
|
g_string_free(room_str, TRUE);
|
||||||
account_free(account);
|
account_free(account);
|
||||||
|
|
||||||
|
|||||||
@@ -164,10 +164,10 @@ muc_leave_room(const char * const room)
|
|||||||
* Returns TRUE if the user is currently in the room
|
* Returns TRUE if the user is currently in the room
|
||||||
*/
|
*/
|
||||||
gboolean
|
gboolean
|
||||||
muc_room_is_active(Jid *jid)
|
muc_room_is_active(const char * const room)
|
||||||
{
|
{
|
||||||
if (rooms != NULL) {
|
if (rooms != NULL) {
|
||||||
ChatRoom *chat_room = g_hash_table_lookup(rooms, jid->barejid);
|
ChatRoom *chat_room = g_hash_table_lookup(rooms, room);
|
||||||
|
|
||||||
if (chat_room != NULL) {
|
if (chat_room != NULL) {
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ void muc_init(void);
|
|||||||
void muc_close(void);
|
void muc_close(void);
|
||||||
void muc_join_room(const char * const room, const char * const nick);
|
void muc_join_room(const char * const room, const char * const nick);
|
||||||
void muc_leave_room(const char * const room);
|
void muc_leave_room(const char * const room);
|
||||||
gboolean muc_room_is_active(Jid *jid);
|
gboolean muc_room_is_active(const char * const room);
|
||||||
GList* muc_get_active_room_list(void);
|
GList* muc_get_active_room_list(void);
|
||||||
char * muc_get_room_nick(const char * const room);
|
char * muc_get_room_nick(const char * const room);
|
||||||
|
|
||||||
|
|||||||
@@ -156,13 +156,11 @@ handle_room_invite(jabber_invite_t invite_type,
|
|||||||
const char * const invitor, const char * const room,
|
const char * const invitor, const char * const room,
|
||||||
const char * const reason)
|
const char * const reason)
|
||||||
{
|
{
|
||||||
Jid *room_jid = jid_create(room);
|
if (!muc_room_is_active(room) && !muc_invites_include(room)) {
|
||||||
if (!muc_room_is_active(room_jid) && !muc_invites_include(room)) {
|
|
||||||
cons_show_room_invite(invitor, room, reason);
|
cons_show_room_invite(invitor, room, reason);
|
||||||
muc_add_invite(room);
|
muc_add_invite(room);
|
||||||
ui_current_page_off();
|
ui_current_page_off();
|
||||||
}
|
}
|
||||||
jid_destroy(room_jid);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|||||||
@@ -930,7 +930,7 @@ _ui_new_chat_win(const char * const to)
|
|||||||
if (window == NULL) {
|
if (window == NULL) {
|
||||||
Jid *jid = jid_create(to);
|
Jid *jid = jid_create(to);
|
||||||
|
|
||||||
if (muc_room_is_active(jid)) {
|
if (muc_room_is_active(jid->barejid)) {
|
||||||
window = wins_new(to, WIN_PRIVATE);
|
window = wins_new(to, WIN_PRIVATE);
|
||||||
} else {
|
} else {
|
||||||
window = wins_new(to, WIN_CHAT);
|
window = wins_new(to, WIN_CHAT);
|
||||||
@@ -1037,7 +1037,7 @@ _ui_outgoing_msg(const char * const from, const char * const to,
|
|||||||
if (window == NULL) {
|
if (window == NULL) {
|
||||||
Jid *jid = jid_create(to);
|
Jid *jid = jid_create(to);
|
||||||
|
|
||||||
if (muc_room_is_active(jid)) {
|
if (muc_room_is_active(jid->barejid)) {
|
||||||
window = wins_new(to, WIN_PRIVATE);
|
window = wins_new(to, WIN_PRIVATE);
|
||||||
} else {
|
} else {
|
||||||
window = wins_new(to, WIN_CHAT);
|
window = wins_new(to, WIN_CHAT);
|
||||||
|
|||||||
@@ -300,7 +300,7 @@ _bookmark_handle_result(xmpp_conn_t * const conn,
|
|||||||
|
|
||||||
log_debug("Autojoin %s with nick=%s", jid, name);
|
log_debug("Autojoin %s with nick=%s", jid, name);
|
||||||
room_jid = jid_create_from_bare_and_resource(jid, name);
|
room_jid = jid_create_from_bare_and_resource(jid, name);
|
||||||
if (!muc_room_is_active(room_jid)) {
|
if (!muc_room_is_active(room_jid->barejid)) {
|
||||||
presence_join_room(jid, name, NULL);
|
presence_join_room(jid, name, NULL);
|
||||||
/* TODO: this should be removed after fixing #195 */
|
/* TODO: this should be removed after fixing #195 */
|
||||||
ui_room_join(jid);
|
ui_room_join(jid);
|
||||||
|
|||||||
@@ -247,7 +247,7 @@ _version_result_handler(xmpp_conn_t * const conn, xmpp_stanza_t * const stanza,
|
|||||||
|
|
||||||
PContact contact;
|
PContact contact;
|
||||||
Jid *jidp = jid_create(jid);
|
Jid *jidp = jid_create(jid);
|
||||||
if (muc_room_is_active(jidp)) {
|
if (muc_room_is_active(jidp->barejid)) {
|
||||||
contact = muc_get_participant(jidp->barejid, jidp->resourcepart);
|
contact = muc_get_participant(jidp->barejid, jidp->resourcepart);
|
||||||
} else {
|
} else {
|
||||||
contact = roster_get_contact(jidp->barejid);
|
contact = roster_get_contact(jidp->barejid);
|
||||||
|
|||||||
@@ -386,7 +386,7 @@ _groupchat_handler(xmpp_conn_t * const conn,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// room not active in profanity
|
// room not active in profanity
|
||||||
if (!muc_room_is_active(jid)) {
|
if (!muc_room_is_active(jid->barejid)) {
|
||||||
log_error("Message recieved for inactive chat room: %s", jid->str);
|
log_error("Message recieved for inactive chat room: %s", jid->str);
|
||||||
jid_destroy(jid);
|
jid_destroy(jid);
|
||||||
return 1;
|
return 1;
|
||||||
@@ -438,7 +438,7 @@ _chat_handler(xmpp_conn_t * const conn, xmpp_stanza_t * const stanza,
|
|||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
// private message from chat room use full jid (room/nick)
|
// private message from chat room use full jid (room/nick)
|
||||||
} else if (muc_room_is_active(jid)) {
|
} else if (muc_room_is_active(jid->barejid)) {
|
||||||
// determine if the notifications happened whilst offline
|
// determine if the notifications happened whilst offline
|
||||||
GTimeVal tv_stamp;
|
GTimeVal tv_stamp;
|
||||||
gboolean delayed = stanza_get_delay(stanza, &tv_stamp);
|
gboolean delayed = stanza_get_delay(stanza, &tv_stamp);
|
||||||
|
|||||||
@@ -597,7 +597,7 @@ stanza_is_muc_self_presence(xmpp_stanza_t * const stanza,
|
|||||||
char *from = xmpp_stanza_get_attribute(stanza, STANZA_ATTR_FROM);
|
char *from = xmpp_stanza_get_attribute(stanza, STANZA_ATTR_FROM);
|
||||||
if (from != NULL) {
|
if (from != NULL) {
|
||||||
Jid *jidp = jid_create(from);
|
Jid *jidp = jid_create(from);
|
||||||
if (muc_room_is_active(jidp)) {
|
if (muc_room_is_active(jidp->barejid)) {
|
||||||
char *nick = muc_get_room_nick(jidp->barejid);
|
char *nick = muc_get_room_nick(jidp->barejid);
|
||||||
if (g_strcmp0(jidp->resourcepart, nick) == 0) {
|
if (g_strcmp0(jidp->resourcepart, nick) == 0) {
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|||||||
@@ -59,23 +59,20 @@ void test_muc_invite_count_5(void **state)
|
|||||||
|
|
||||||
void test_muc_room_is_not_active(void **state)
|
void test_muc_room_is_not_active(void **state)
|
||||||
{
|
{
|
||||||
Jid *jidp = jid_create("room@server.org/bob");
|
char *room = "room@server.org";
|
||||||
|
|
||||||
gboolean room_is_active = muc_room_is_active(jidp);
|
gboolean room_is_active = muc_room_is_active(room);
|
||||||
|
|
||||||
assert_false(room_is_active);
|
assert_false(room_is_active);
|
||||||
|
|
||||||
jid_destroy(jidp);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void test_muc_room_is_active(void **state)
|
void test_muc_room_is_active(void **state)
|
||||||
{
|
{
|
||||||
Jid *jidp = jid_create("room@server.org/bob");
|
char *room = "room@server.org";
|
||||||
muc_join_room(jidp->barejid, jidp->resourcepart);
|
char *nick = "bob";
|
||||||
|
muc_join_room(room, nick);
|
||||||
|
|
||||||
gboolean room_is_active = muc_room_is_active(jidp);
|
gboolean room_is_active = muc_room_is_active(room);
|
||||||
|
|
||||||
assert_true(room_is_active);
|
assert_true(room_is_active);
|
||||||
|
|
||||||
jid_destroy(jidp);
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -216,7 +216,7 @@ void handle_presence_error_when_nick_conflict_does_not_join_room(void **state)
|
|||||||
|
|
||||||
handle_presence_error(from, type, err_msg);
|
handle_presence_error(from, type, err_msg);
|
||||||
|
|
||||||
gboolean room_is_active = muc_room_is_active(jidp);
|
gboolean room_is_active = muc_room_is_active(jidp->barejid);
|
||||||
assert_false(room_is_active);
|
assert_false(room_is_active);
|
||||||
|
|
||||||
muc_close();
|
muc_close();
|
||||||
|
|||||||
Reference in New Issue
Block a user