From 5fcd74673d731ef707d8910bfde2e39d2d93bdb6 Mon Sep 17 00:00:00 2001
From: Simon Morlat <simon.morlat@linphone.org>
Date: Fri, 13 Oct 2023 17:59:48 +0200
Subject: [PATCH] Enable deflate compression for x3dh server engine. Indeed,
 multipart content for IMDNs can be very large.

---
 src/chat/encryption/lime-x3dh-server-engine.cpp | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/src/chat/encryption/lime-x3dh-server-engine.cpp b/src/chat/encryption/lime-x3dh-server-engine.cpp
index 0e50f67e58..50ae7faeb4 100644
--- a/src/chat/encryption/lime-x3dh-server-engine.cpp
+++ b/src/chat/encryption/lime-x3dh-server-engine.cpp
@@ -99,6 +99,11 @@ LimeX3dhEncryptionServerEngine::processOutgoingMessage(const std::shared_ptr<Cha
 	finalContent.setContentType(internalContent->getContentType());
 	finalContent.getContentType().removeParameter("boundary");
 	finalContent.getContentType().addParameter("boundary", boundary);
+	if (linphone_core_content_encoding_supported(L_GET_C_BACK_PTR(chatRoom->getCore()), "deflate")) {
+		finalContent.setContentEncoding("deflate");
+	} else {
+		lWarning() << "Cannot use 'deflate' Content-Encoding to compress body - consider rebuilding with libz support.";
+	}
 	message->setInternalContent(finalContent);
 	return ChatMessageModifier::Result::Done;
 }
-- 
GitLab