Added basic delivery receipts

This commit is contained in:
James Booth
2015-03-11 23:18:28 +00:00
parent e5bb12a0d6
commit 78becceedb
10 changed files with 158 additions and 37 deletions

View File

@@ -281,10 +281,45 @@ stanza_create_room_subject_message(xmpp_ctx_t *ctx, const char * const room, con
return msg;
}
xmpp_stanza_t *
stanza_attach_state(xmpp_ctx_t *ctx, xmpp_stanza_t *stanza, const char * const state)
{
xmpp_stanza_t *chat_state = xmpp_stanza_new(ctx);
xmpp_stanza_set_name(chat_state, state);
xmpp_stanza_set_ns(chat_state, STANZA_NS_CHATSTATES);
xmpp_stanza_add_child(stanza, chat_state);
xmpp_stanza_release(chat_state);
return stanza;
}
xmpp_stanza_t *
stanza_attach_carbons_private(xmpp_ctx_t *ctx, xmpp_stanza_t *stanza)
{
xmpp_stanza_t *private_carbon = xmpp_stanza_new(ctx);
xmpp_stanza_set_name(private_carbon, "private");
xmpp_stanza_set_ns(private_carbon, STANZA_NS_CARBONS);
xmpp_stanza_add_child(stanza, private_carbon);
xmpp_stanza_release(private_carbon);
return stanza;
}
xmpp_stanza_t *
stanza_attach_receipt_request(xmpp_ctx_t *ctx, xmpp_stanza_t *stanza)
{
xmpp_stanza_t *receipet_request = xmpp_stanza_new(ctx);
xmpp_stanza_set_name(receipet_request, "request");
xmpp_stanza_set_ns(receipet_request, STANZA_NS_RECEIPTS);
xmpp_stanza_add_child(stanza, receipet_request);
xmpp_stanza_release(receipet_request);
return stanza;
}
xmpp_stanza_t *
stanza_create_message(xmpp_ctx_t *ctx, const char * const recipient,
const char * const type, const char * const message,
const char * const state, gboolean encrypted)
const char * const type, const char * const message)
{
xmpp_stanza_t *msg, *body, *text;
@@ -306,22 +341,6 @@ stanza_create_message(xmpp_ctx_t *ctx, const char * const recipient,
xmpp_stanza_add_child(msg, body);
xmpp_stanza_release(body);
if (state != NULL) {
xmpp_stanza_t *chat_state = xmpp_stanza_new(ctx);
xmpp_stanza_set_name(chat_state, state);
xmpp_stanza_set_ns(chat_state, STANZA_NS_CHATSTATES);
xmpp_stanza_add_child(msg, chat_state);
xmpp_stanza_release(chat_state);
}
if (encrypted) {
xmpp_stanza_t *private_carbon = xmpp_stanza_new(ctx);
xmpp_stanza_set_name(private_carbon, "private");
xmpp_stanza_set_ns(private_carbon, STANZA_NS_CARBONS);
xmpp_stanza_add_child(msg, private_carbon);
xmpp_stanza_release(private_carbon);
}
return msg;
}