about summary refs log tree commit diff stats
path: root/src/xmpp
diff options
context:
space:
mode:
authorPaul Fariello <paul@fariello.eu>2019-03-18 07:11:19 +0140
committerPaul Fariello <paul@fariello.eu>2019-04-10 17:12:31 +0200
commita9d55dec9275c472d7eea2ff79304eda1aefd3be (patch)
tree3b648f1756b402fc7768b8a62f84587f4a6f99a8 /src/xmpp
parentf7ce1607f96f527b5c22e89510ab5185a200800d (diff)
downloadprofani-tty-a9d55dec9275c472d7eea2ff79304eda1aefd3be.tar.gz
Add support for sending encrypted message in MUC
Diffstat (limited to 'src/xmpp')
-rw-r--r--src/xmpp/message.c14
-rw-r--r--src/xmpp/xmpp.h2
2 files changed, 11 insertions, 5 deletions
diff --git a/src/xmpp/message.c b/src/xmpp/message.c
index 8fbaedd9..47a21438 100644
--- a/src/xmpp/message.c
+++ b/src/xmpp/message.c
@@ -318,13 +318,19 @@ char*
 message_send_chat_omemo(const char *const jid, uint32_t sid, GList *keys,
     const unsigned char *const iv, size_t iv_len,
     const unsigned char *const ciphertext, size_t ciphertext_len,
-    gboolean request_receipt)
+    gboolean request_receipt, gboolean muc)
 {
     char *state = chat_session_get_state(jid);
     xmpp_ctx_t * const ctx = connection_get_ctx();
-    char *id = connection_create_stanza_id("msg");
-
-    xmpp_stanza_t *message = xmpp_message_new(ctx, STANZA_TYPE_CHAT, jid, id);
+    char *id;
+    xmpp_stanza_t *message;
+    if (muc) {
+        id = connection_create_stanza_id("muc");
+        message = xmpp_message_new(ctx, STANZA_TYPE_GROUPCHAT, jid, id);
+    } else {
+        id = connection_create_stanza_id("msg");
+        message = xmpp_message_new(ctx, STANZA_TYPE_CHAT, jid, id);
+    }
 
     xmpp_stanza_t *encrypted = xmpp_stanza_new(ctx);
     xmpp_stanza_set_name(encrypted, "encrypted");
diff --git a/src/xmpp/xmpp.h b/src/xmpp/xmpp.h
index f2eec6c7..6675369a 100644
--- a/src/xmpp/xmpp.h
+++ b/src/xmpp/xmpp.h
@@ -140,7 +140,7 @@ char* message_send_chat(const char *const barejid, const char *const msg, const
     gboolean request_receipt);
 char* message_send_chat_otr(const char *const barejid, const char *const msg, gboolean request_receipt);
 char* message_send_chat_pgp(const char *const barejid, const char *const msg, gboolean request_receipt);
-char* message_send_chat_omemo(const char *const jid, uint32_t sid, GList *keys, const unsigned char *const iv, size_t iv_len, const unsigned char *const ciphertext, size_t ciphertext_len, gboolean request_receipt);
+char* message_send_chat_omemo(const char *const jid, uint32_t sid, GList *keys, const unsigned char *const iv, size_t iv_len, const unsigned char *const ciphertext, size_t ciphertext_len, gboolean request_receipt, gboolean muc);
 void message_send_private(const char *const fulljid, const char *const msg, const char *const oob_url);
 void message_send_groupchat(const char *const roomjid, const char *const msg, const char *const oob_url);
 void message_send_groupchat_subject(const char *const roomjid, const char *const subject);