about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorJames Booth <boothj5@gmail.com>2012-11-09 01:31:52 +0000
committerJames Booth <boothj5@gmail.com>2012-11-09 01:31:52 +0000
commit8099dfbde6c573e3be0c6644cb13743098b8f31b (patch)
tree40e827272b52cbdbeecf67cad92a0deacdab054c /src
parent187ea6e8b87705c43dfbd91a0b17cdac124fce4d (diff)
downloadprofani-tty-8099dfbde6c573e3be0c6644cb13743098b8f31b.tar.gz
Fixed leaving chat room
Diffstat (limited to 'src')
-rw-r--r--src/command.c4
-rw-r--r--src/jabber.c1
-rw-r--r--src/stanza.c15
3 files changed, 18 insertions, 2 deletions
diff --git a/src/command.c b/src/command.c
index 938a6a08..b91a1180 100644
--- a/src/command.c
+++ b/src/command.c
@@ -1093,8 +1093,8 @@ _cmd_close(const char * const inp, struct cmd_help_t help)
     if (win_in_groupchat()) {
         char *room_jid = win_get_recipient();
         jabber_leave_chat_room(room_jid);
-    }
-    if (win_in_chat()) {
+        win_close_win();
+    } else if (win_in_chat()) {
 
         if (prefs_get_states()) {
             char *recipient = win_get_recipient();
diff --git a/src/jabber.c b/src/jabber.c
index abda6f3a..f54dbb86 100644
--- a/src/jabber.c
+++ b/src/jabber.c
@@ -253,6 +253,7 @@ jabber_leave_chat_room(const char * const room_jid)
     xmpp_stanza_t *presence = xmpp_stanza_new(jabber_conn.ctx);
     xmpp_stanza_set_name(presence, STANZA_NAME_PRESENCE);
     xmpp_stanza_set_type(presence, STANZA_TYPE_UNAVAILABLE);
+    xmpp_stanza_set_attribute(presence, STANZA_ATTR_TO, full_jid->str);
     xmpp_send(jabber_conn.conn, presence);
     xmpp_stanza_release(presence);
 
diff --git a/src/stanza.c b/src/stanza.c
index bc84f1e6..3530b671 100644
--- a/src/stanza.c
+++ b/src/stanza.c
@@ -98,4 +98,19 @@ stanza_create_room_presence(xmpp_ctx_t *ctx, const char * const room,
 
     return presence;
 }
+/*
+xmpp_stanza_t *
+stanza_create_room_leave(xmpp_ctx_t *ctx, const char * const room,
+    const char * const nick)
+{
+    GString *full_jid = g_string_new(room);
+    g_string_append(full_jid, "/");
+    g_string_append(full_jid, nick);
 
+    xmpp_stanza_t *presence = xmpp_stanza_new(ctx);
+    xmpp_stanza_set_name(presence, STANZA_NAME_PRESENCE);
+    xmpp_stanza_set_type(presence, STANZA_TYPE_UNAVAILABLE);
+
+    g_string_free(full_jid, TRUE);
+}
+*/