aboutsummaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
authorfiaxh <git@lightrise.org>2025-04-21 12:53:34 +0200
committerfiaxh <git@lightrise.org>2025-12-19 12:14:28 +0100
commit5fb3de6443eaf0d94f1ccd07dee94b124708fe16 (patch)
tree6c96cc222a0b7b0114c093c2b00abb1bda669c5f /plugins
parentf777856517ce39c4004be61c2661cc15377648fc (diff)
Handle content type != mime type
Diffstat (limited to 'plugins')
-rw-r--r--plugins/http-files/src/file_provider.vala6
-rw-r--r--plugins/http-files/src/file_sender.vala6
-rw-r--r--plugins/omemo/src/file_transfer/file_encryptor.vala2
-rw-r--r--plugins/openpgp/src/file_transfer/file_decryptor.vala2
4 files changed, 8 insertions, 8 deletions
diff --git a/plugins/http-files/src/file_provider.vala b/plugins/http-files/src/file_provider.vala
index 3a6c9e49..702dd3b3 100644
--- a/plugins/http-files/src/file_provider.vala
+++ b/plugins/http-files/src/file_provider.vala
@@ -92,7 +92,7 @@ public class FileProvider : Dino.FileProvider, Object {
if (name.down() == "content-type") content_type = val;
if (name.down() == "content-length") content_length = val;
});
- file_meta.mime_type = content_type;
+ file_meta.content_type = new FileContentType.from_mime_type(content_type);
if (content_length != null) {
file_meta.size = int64.parse(content_length);
}
@@ -131,7 +131,7 @@ public class FileProvider : Dino.FileProvider, Object {
if (file_transfer.provider == FileManager.SFS_PROVIDER_ID) {
var file_meta = new HttpFileMeta();
file_meta.size = file_transfer.size;
- file_meta.mime_type = file_transfer.mime_type;
+ file_meta.content_type = file_transfer.content_type;
file_meta.file_name = file_transfer.file_name;
file_meta.message = null;
return file_meta;
@@ -145,7 +145,7 @@ public class FileProvider : Dino.FileProvider, Object {
var file_meta = new HttpFileMeta();
file_meta.size = file_transfer.size;
- file_meta.mime_type = file_transfer.mime_type;
+ file_meta.content_type = file_transfer.content_type;
file_meta.file_name = extract_file_name_from_url(message.body);
diff --git a/plugins/http-files/src/file_sender.vala b/plugins/http-files/src/file_sender.vala
index cce4ac8e..ad92a3a0 100644
--- a/plugins/http-files/src/file_sender.vala
+++ b/plugins/http-files/src/file_sender.vala
@@ -28,7 +28,7 @@ public class HttpFileSender : FileSender, Object {
if (stream == null) return null;
try {
- var slot_result = yield stream_interactor.module_manager.get_module(file_transfer.account, Xmpp.Xep.HttpFileUpload.Module.IDENTITY).request_slot(stream, file_transfer.server_file_name, file_meta.size, file_meta.mime_type);
+ var slot_result = yield stream_interactor.module_manager.get_module(file_transfer.account, Xmpp.Xep.HttpFileUpload.Module.IDENTITY).request_slot(stream, file_transfer.server_file_name, file_meta.size, file_meta.content_type);
send_data.url_down = slot_result.url_get;
send_data.url_up = slot_result.url_put;
send_data.headers = slot_result.headers;
@@ -145,9 +145,9 @@ public class HttpFileSender : FileSender, Object {
#if SOUP_3_0
string transfer_host = Uri.parse(file_send_data.url_up, UriFlags.NONE).get_host();
put_message.accept_certificate.connect((peer_cert, errors) => { return ConnectionManager.on_invalid_certificate(transfer_host, peer_cert, errors); });
- put_message.set_request_body(file_meta.mime_type, file_transfer.input_stream, (ssize_t) file_meta.size);
+ put_message.set_request_body(file_meta.content_type.get_mime_type(), file_transfer.input_stream, (ssize_t) file_meta.size);
#else
- put_message.request_headers.set_content_type(file_meta.mime_type, null);
+ put_message.request_headers.set_content_type(file_meta.content_type.get_mime_type(), null);
put_message.request_headers.set_content_length(file_meta.size);
put_message.request_body.set_accumulate(false);
put_message.wrote_headers.connect(() => transfer_more_bytes(file_transfer.input_stream, put_message.request_body));
diff --git a/plugins/omemo/src/file_transfer/file_encryptor.vala b/plugins/omemo/src/file_transfer/file_encryptor.vala
index 53e394b7..58be7ef1 100644
--- a/plugins/omemo/src/file_transfer/file_encryptor.vala
+++ b/plugins/omemo/src/file_transfer/file_encryptor.vala
@@ -38,7 +38,7 @@ public class OmemoFileEncryptor : Dino.FileEncryptor, Object {
omemo_http_file_meta.iv = iv;
omemo_http_file_meta.key = key;
omemo_http_file_meta.size = file_transfer.size + 16;
- omemo_http_file_meta.mime_type = "application/octet-stream";
+ omemo_http_file_meta.content_type = new FileContentType.from_mime_type("application/octet-stream");
file_transfer.input_stream = new ConverterInputStream(file_transfer.input_stream, new SymmetricCipherEncrypter((owned) cipher, 16));
} catch (Crypto.Error error) {
throw new FileSendError.ENCRYPTION_FAILED("OMEMO file encryption error: %s".printf(error.message));
diff --git a/plugins/openpgp/src/file_transfer/file_decryptor.vala b/plugins/openpgp/src/file_transfer/file_decryptor.vala
index 202fa9c9..bc8add41 100644
--- a/plugins/openpgp/src/file_transfer/file_decryptor.vala
+++ b/plugins/openpgp/src/file_transfer/file_decryptor.vala
@@ -17,7 +17,7 @@ public class PgpFileDecryptor : FileDecryptor, Object {
}
public bool can_decrypt_file(Conversation conversation, FileTransfer file_transfer, FileReceiveData receive_data) {
- return file_transfer.file_name.has_suffix("pgp") || file_transfer.mime_type == "application/pgp-encrypted";
+ return file_transfer.file_name.has_suffix("pgp") || file_transfer.content_type.get_mime_type() == "application/pgp-encrypted";
}
public async InputStream decrypt_file(InputStream encrypted_stream, Conversation conversation, FileTransfer file_transfer, FileReceiveData receive_data) throws FileReceiveError {