From 42a5c431c777ab22c2187bb6f50a62ef304d8d6b Mon Sep 17 00:00:00 2001 From: James Booth Date: Sun, 4 Jan 2015 20:19:42 +0000 Subject: Use resource in chat sessions --- src/xmpp/message.c | 19 +++++++++---------- src/xmpp/stanza.c | 5 ++--- src/xmpp/stanza.h | 2 +- src/xmpp/xmpp.h | 8 ++++---- 4 files changed, 16 insertions(+), 18 deletions(-) (limited to 'src/xmpp') 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); -- cgit 1.4.1-2-gfad0