From 57c7564445bb9b3034be895a709d8ec777188a74 Mon Sep 17 00:00:00 2001 From: James Booth Date: Wed, 11 Mar 2015 23:47:11 +0000 Subject: Show message received text for receipts --- src/xmpp/message.c | 22 ++++++++++++++++------ src/xmpp/stanza.c | 4 +--- src/xmpp/stanza.h | 2 +- src/xmpp/xmpp.h | 4 ++-- 4 files changed, 20 insertions(+), 12 deletions(-) (limited to 'src/xmpp') diff --git a/src/xmpp/message.c b/src/xmpp/message.c index 739a95e6..dea4f8d0 100644 --- a/src/xmpp/message.c +++ b/src/xmpp/message.c @@ -79,7 +79,7 @@ message_add_handlers(void) HANDLE(STANZA_NS_CAPTCHA, NULL, _captcha_handler); } -void +char * message_send_chat(const char * const barejid, const char * const msg) { xmpp_conn_t * const conn = connection_get_conn(); @@ -103,7 +103,8 @@ message_send_chat(const char * const barejid, const char * const msg) jid = strdup(barejid); } - xmpp_stanza_t *message = stanza_create_message(ctx, jid, STANZA_TYPE_CHAT, msg); + char *id = create_unique_id("msg"); + xmpp_stanza_t *message = stanza_create_message(ctx, id, jid, STANZA_TYPE_CHAT, msg); free(jid); if (state) { @@ -115,9 +116,11 @@ message_send_chat(const char * const barejid, const char * const msg) xmpp_send(conn, message); xmpp_stanza_release(message); + + return id; } -void +char * message_send_chat_encrypted(const char * const barejid, const char * const msg) { xmpp_conn_t * const conn = connection_get_conn(); @@ -140,7 +143,8 @@ message_send_chat_encrypted(const char * const barejid, const char * const msg) jid = strdup(barejid); } - xmpp_stanza_t *message = stanza_create_message(ctx, barejid, STANZA_TYPE_CHAT, msg); + char *id = create_unique_id("msg"); + xmpp_stanza_t *message = stanza_create_message(ctx, id, barejid, STANZA_TYPE_CHAT, msg); free(jid); if (state) { @@ -153,6 +157,8 @@ message_send_chat_encrypted(const char * const barejid, const char * const msg) xmpp_send(conn, message); xmpp_stanza_release(message); + + return id; } void @@ -160,7 +166,9 @@ message_send_private(const char * const fulljid, const char * const msg) { xmpp_conn_t * const conn = connection_get_conn(); xmpp_ctx_t * const ctx = connection_get_ctx(); - xmpp_stanza_t *message = stanza_create_message(ctx, fulljid, STANZA_TYPE_CHAT, msg); + char *id = create_unique_id("prv"); + xmpp_stanza_t *message = stanza_create_message(ctx, id, fulljid, STANZA_TYPE_CHAT, msg); + free(id); xmpp_send(conn, message); xmpp_stanza_release(message); @@ -171,7 +179,9 @@ message_send_groupchat(const char * const roomjid, const char * const msg) { xmpp_conn_t * const conn = connection_get_conn(); xmpp_ctx_t * const ctx = connection_get_ctx(); - xmpp_stanza_t *message = stanza_create_message(ctx, roomjid, STANZA_TYPE_GROUPCHAT, msg); + char *id = create_unique_id("muc"); + xmpp_stanza_t *message = stanza_create_message(ctx, id, roomjid, STANZA_TYPE_GROUPCHAT, msg); + free(id); xmpp_send(conn, message); xmpp_stanza_release(message); diff --git a/src/xmpp/stanza.c b/src/xmpp/stanza.c index 635f5678..0b291d2e 100644 --- a/src/xmpp/stanza.c +++ b/src/xmpp/stanza.c @@ -318,7 +318,7 @@ stanza_attach_receipt_request(xmpp_ctx_t *ctx, xmpp_stanza_t *stanza) } xmpp_stanza_t * -stanza_create_message(xmpp_ctx_t *ctx, const char * const recipient, +stanza_create_message(xmpp_ctx_t *ctx, char *id, const char * const recipient, const char * const type, const char * const message) { xmpp_stanza_t *msg, *body, *text; @@ -327,9 +327,7 @@ stanza_create_message(xmpp_ctx_t *ctx, const char * const recipient, xmpp_stanza_set_name(msg, STANZA_NAME_MESSAGE); xmpp_stanza_set_type(msg, type); xmpp_stanza_set_attribute(msg, STANZA_ATTR_TO, recipient); - char *id = create_unique_id(NULL); xmpp_stanza_set_id(msg, id); - free(id); body = xmpp_stanza_new(ctx); xmpp_stanza_set_name(body, STANZA_NAME_BODY); diff --git a/src/xmpp/stanza.h b/src/xmpp/stanza.h index eca3bf8a..50f3dbd0 100644 --- a/src/xmpp/stanza.h +++ b/src/xmpp/stanza.h @@ -194,7 +194,7 @@ xmpp_stanza_t * stanza_attach_state(xmpp_ctx_t *ctx, xmpp_stanza_t *stanza, cons xmpp_stanza_t * stanza_attach_carbons_private(xmpp_ctx_t *ctx, xmpp_stanza_t *stanza); xmpp_stanza_t * stanza_attach_receipt_request(xmpp_ctx_t *ctx, xmpp_stanza_t *stanza); -xmpp_stanza_t* stanza_create_message(xmpp_ctx_t *ctx, +xmpp_stanza_t* stanza_create_message(xmpp_ctx_t *ctx, char *id, const char * const recipient, const char * const type, const char * const message); xmpp_stanza_t* stanza_create_room_join_presence(xmpp_ctx_t * const ctx, diff --git a/src/xmpp/xmpp.h b/src/xmpp/xmpp.h index e8e79ee9..7deb71db 100644 --- a/src/xmpp/xmpp.h +++ b/src/xmpp/xmpp.h @@ -145,8 +145,8 @@ char* jabber_get_account_name(void); GList * jabber_get_available_resources(void); // message functions -void message_send_chat(const char * const barejid, const char * const msg); -void message_send_chat_encrypted(const char * const barejid, const char * const msg); +char* message_send_chat(const char * const barejid, const char * const msg); +char* message_send_chat_encrypted(const char * const barejid, const char * const msg); 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); -- cgit 1.4.1-2-gfad0