xep-0308: Initial support for incoming LMC

This commit is contained in:
Michael Vetter
2020-02-10 13:19:54 +01:00
parent 968006e1dd
commit f16d56a15e
5 changed files with 75 additions and 7 deletions

View File

@@ -188,6 +188,7 @@ message_init(void)
message->jid = NULL;
message->id = NULL;
message->originid = NULL;
message->replace_id = NULL;
message->body = NULL;
message->encrypted = NULL;
message->plain = NULL;
@@ -215,6 +216,10 @@ message_free(ProfMessage *message)
xmpp_free(ctx, message->originid);
}
if (message->replace_id) {
xmpp_free(ctx, message->replace_id);
}
if (message->body) {
xmpp_free(ctx, message->body);
}
@@ -1113,6 +1118,20 @@ _handle_chat(xmpp_stanza_t *const stanza)
ProfMessage *message = message_init();
message->jid = jid;
// message stanza id
const char *id = xmpp_stanza_get_id(stanza);
if (id) {
message->id = strdup(id);
}
xmpp_stanza_t *replace_id_stanza = xmpp_stanza_get_child_by_ns(stanza, STANZA_NS_LAST_MESSAGE_CORRECTION);
if (replace_id_stanza) {
const char *replace_id = xmpp_stanza_get_id(replace_id_stanza);
if (replace_id) {
message->replace_id = strdup(replace_id);
}
}
if (mucuser) {
message->mucuser = TRUE;
}