about summary refs log tree commit diff stats
path: root/src/xmpp
diff options
context:
space:
mode:
authorJames Booth <boothj5@gmail.com>2015-01-04 20:19:42 +0000
committerJames Booth <boothj5@gmail.com>2015-01-04 20:19:42 +0000
commit42a5c431c777ab22c2187bb6f50a62ef304d8d6b (patch)
tree84fc499f366e477010ffedfd566ad6b540c2eca6 /src/xmpp
parent4898ed10a45581a98986fed5a2fabe6a6e7a9dab (diff)
downloadprofani-tty-42a5c431c777ab22c2187bb6f50a62ef304d8d6b.tar.gz
Use resource in chat sessions
Diffstat (limited to 'src/xmpp')
-rw-r--r--src/xmpp/message.c19
-rw-r--r--src/xmpp/stanza.c5
-rw-r--r--src/xmpp/stanza.h2
-rw-r--r--src/xmpp/xmpp.h8
4 files changed, 16 insertions, 18 deletions
diff --git a/src/xmpp/message.c b/src/xmpp/message.c
index d87c5fb2..4b2a517f 100644
--- a/src/xmpp/message.c
+++ b/src/xmpp/message.c
@@ -149,23 +149,22 @@ message_send_invite(const char * const roomjid, const char * const contact,
 }
 
 void
-message_send_composing(const char * const barejid)
+message_send_composing(const char * const fulljid)
 {
     xmpp_conn_t * const conn = connection_get_conn();
     xmpp_ctx_t * const ctx = connection_get_ctx();
-    xmpp_stanza_t *stanza = stanza_create_chat_state(ctx, barejid,
-        STANZA_NAME_COMPOSING);
+    xmpp_stanza_t *stanza = stanza_create_chat_state(ctx, fulljid, STANZA_NAME_COMPOSING);
 
     xmpp_send(conn, stanza);
     xmpp_stanza_release(stanza);
 }
 
 void
-message_send_paused(const char * const barejid)
+message_send_paused(const char * const fulljid)
 {
     xmpp_conn_t * const conn = connection_get_conn();
     xmpp_ctx_t * const ctx = connection_get_ctx();
-    xmpp_stanza_t *stanza = stanza_create_chat_state(ctx, barejid,
+    xmpp_stanza_t *stanza = stanza_create_chat_state(ctx, fulljid,
         STANZA_NAME_PAUSED);
 
     xmpp_send(conn, stanza);
@@ -173,11 +172,11 @@ message_send_paused(const char * const barejid)
 }
 
 void
-message_send_inactive(const char * const barejid)
+message_send_inactive(const char * const fulljid)
 {
     xmpp_conn_t * const conn = connection_get_conn();
     xmpp_ctx_t * const ctx = connection_get_ctx();
-    xmpp_stanza_t *stanza = stanza_create_chat_state(ctx, barejid,
+    xmpp_stanza_t *stanza = stanza_create_chat_state(ctx, fulljid,
         STANZA_NAME_INACTIVE);
 
     xmpp_send(conn, stanza);
@@ -185,11 +184,11 @@ message_send_inactive(const char * const barejid)
 }
 
 void
-message_send_gone(const char * const barejid)
+message_send_gone(const char * const fulljid)
 {
     xmpp_conn_t * const conn = connection_get_conn();
     xmpp_ctx_t * const ctx = connection_get_ctx();
-    xmpp_stanza_t *stanza = stanza_create_chat_state(ctx, barejid,
+    xmpp_stanza_t *stanza = stanza_create_chat_state(ctx, fulljid,
         STANZA_NAME_GONE);
 
     xmpp_send(conn, stanza);
@@ -469,7 +468,7 @@ _chat_handler(xmpp_conn_t * const conn, xmpp_stanza_t * const stanza,
         }
 
         // create or update chat session
-        chat_session_on_incoming_message(jid->barejid, recipient_supports);
+        chat_session_on_incoming_message(jid->barejid, jid->resourcepart, recipient_supports);
 
         // determine if the notifications happened whilst offline
         GTimeVal tv_stamp;
diff --git a/src/xmpp/stanza.c b/src/xmpp/stanza.c
index 1766fe26..4f1d412d 100644
--- a/src/xmpp/stanza.c
+++ b/src/xmpp/stanza.c
@@ -199,15 +199,14 @@ stanza_create_bookmarks_pubsub_add(xmpp_ctx_t *ctx, const char * const jid,
 #endif
 
 xmpp_stanza_t *
-stanza_create_chat_state(xmpp_ctx_t *ctx, const char * const recipient,
-    const char * const state)
+stanza_create_chat_state(xmpp_ctx_t *ctx, const char * const fulljid, const char * const state)
 {
     xmpp_stanza_t *msg, *chat_state;
 
     msg = xmpp_stanza_new(ctx);
     xmpp_stanza_set_name(msg, STANZA_NAME_MESSAGE);
     xmpp_stanza_set_type(msg, STANZA_TYPE_CHAT);
-    xmpp_stanza_set_attribute(msg, STANZA_ATTR_TO, recipient);
+    xmpp_stanza_set_attribute(msg, STANZA_ATTR_TO, fulljid);
     char *id = create_unique_id(NULL);
     xmpp_stanza_set_id(msg, id);
     free(id);
diff --git a/src/xmpp/stanza.h b/src/xmpp/stanza.h
index e60e9fe1..84282401 100644
--- a/src/xmpp/stanza.h
+++ b/src/xmpp/stanza.h
@@ -179,7 +179,7 @@ typedef enum {
 xmpp_stanza_t* stanza_create_bookmarks_storage_request(xmpp_ctx_t *ctx);
 
 xmpp_stanza_t* stanza_create_chat_state(xmpp_ctx_t *ctx,
-    const char * const recipient, const char * const state);
+    const char * const fulljid, const char * const state);
 
 xmpp_stanza_t* stanza_create_message(xmpp_ctx_t *ctx,
     const char * const recipient, const char * const type,
diff --git a/src/xmpp/xmpp.h b/src/xmpp/xmpp.h
index 2499d008..d4d35c6b 100644
--- a/src/xmpp/xmpp.h
+++ b/src/xmpp/xmpp.h
@@ -151,10 +151,10 @@ void message_send_private(const char * const fulljid, const char * const msg);
 void message_send_groupchat(const char * const roomjid, const char * const msg);
 void message_send_groupchat_subject(const char * const roomjid, const char * const subject);
 
-void message_send_inactive(const char * const barejid);
-void message_send_composing(const char * const barejid);
-void message_send_paused(const char * const barejid);
-void message_send_gone(const char * const barejid);
+void message_send_inactive(const char * const fulljid);
+void message_send_composing(const char * const fulljid);
+void message_send_paused(const char * const fulljid);
+void message_send_gone(const char * const fulljid);
 
 void message_send_invite(const char * const room, const char * const contact,
     const char * const reason);