Added jid autocomplete for affiliation commands

This commit is contained in:
James Booth
2014-10-06 22:59:25 +01:00
parent 965f048b18
commit 78a1556f12
11 changed files with 174 additions and 19 deletions

View File

@@ -717,11 +717,18 @@ _muc_user_handler(xmpp_conn_t * const conn, xmpp_stanza_t * const stanza,
// kicked from room
} else if (g_slist_find_custom(status_codes, "307", (GCompareFunc)g_strcmp0) != NULL) {
char *actor = stanza_get_kick_actor(stanza);
char *reason = stanza_get_kick_reason(stanza);
char *actor = stanza_get_kickban_actor(stanza);
char *reason = stanza_get_kickban_reason(stanza);
handle_room_kicked(from_room, actor, reason);
free(reason);
// banned from room
} else if (g_slist_find_custom(status_codes, "301", (GCompareFunc)g_strcmp0) != NULL) {
char *actor = stanza_get_kickban_actor(stanza);
char *reason = stanza_get_kickban_reason(stanza);
handle_room_banned(from_room, actor, reason);
free(reason);
// normal exit
} else {
handle_leave_room(from_room);
@@ -783,11 +790,18 @@ _muc_user_handler(xmpp_conn_t * const conn, xmpp_stanza_t * const stanza,
// kicked from room
if (g_slist_find_custom(status_codes, "307", (GCompareFunc)g_strcmp0) != NULL) {
char *actor = stanza_get_kick_actor(stanza);
char *reason = stanza_get_kick_reason(stanza);
char *actor = stanza_get_kickban_actor(stanza);
char *reason = stanza_get_kickban_reason(stanza);
handle_room_occupent_kicked(from_room, from_nick, actor, reason);
free(reason);
// banned from room
} else if (g_slist_find_custom(status_codes, "301", (GCompareFunc)g_strcmp0) != NULL) {
char *actor = stanza_get_kickban_actor(stanza);
char *reason = stanza_get_kickban_reason(stanza);
handle_room_occupent_banned(from_room, from_nick, actor, reason);
free(reason);
// normal exit
} else {
handle_room_member_offline(from_room, from_nick, "offline", status_str);

View File

@@ -1181,7 +1181,7 @@ stanza_get_muc_destroy_reason(xmpp_stanza_t *stanza)
}
char *
stanza_get_kick_actor(xmpp_stanza_t *stanza)
stanza_get_kickban_actor(xmpp_stanza_t *stanza)
{
char *stanza_name = xmpp_stanza_get_name(stanza);
if (g_strcmp0(stanza_name, STANZA_NAME_PRESENCE) == 0) {
@@ -1207,7 +1207,7 @@ stanza_get_kick_actor(xmpp_stanza_t *stanza)
}
char *
stanza_get_kick_reason(xmpp_stanza_t *stanza)
stanza_get_kickban_reason(xmpp_stanza_t *stanza)
{
char *stanza_name = xmpp_stanza_get_name(stanza);
if (g_strcmp0(stanza_name, STANZA_NAME_PRESENCE) == 0) {

View File

@@ -258,7 +258,7 @@ gboolean stanza_room_destroyed(xmpp_stanza_t *stanza);
char* stanza_get_muc_destroy_alternative_room(xmpp_stanza_t *stanza);
char* stanza_get_muc_destroy_alternative_password(xmpp_stanza_t *stanza);
char* stanza_get_muc_destroy_reason(xmpp_stanza_t *stanza);
char* stanza_get_kick_actor(xmpp_stanza_t *stanza);
char* stanza_get_kick_reason(xmpp_stanza_t *stanza);
char* stanza_get_kickban_actor(xmpp_stanza_t *stanza);
char* stanza_get_kickban_reason(xmpp_stanza_t *stanza);
#endif