mirror of
https://github.com/chatmail/core.git
synced 2026-05-17 05:46:30 +03:00
Move message size limits to constants
Corresponding C code:
d31c82478c/src/dc_context.h (L165)
This commit is contained in:
@@ -17,6 +17,13 @@ use crate::param::*;
|
|||||||
use crate::peerstate::{Peerstate, PeerstateVerifiedStatus};
|
use crate::peerstate::{Peerstate, PeerstateVerifiedStatus};
|
||||||
use crate::stock::StockMessage;
|
use crate::stock::StockMessage;
|
||||||
|
|
||||||
|
// attachments of 25 mb brutto should work on the majority of providers
|
||||||
|
// (brutto examples: web.de=50, 1&1=40, t-online.de=32, gmail=25, posteo=50, yahoo=25, all-inkl=100).
|
||||||
|
// as an upper limit, we double the size; the core won't send messages larger than this
|
||||||
|
// to get the netto sizes, we subtract 1 mb header-overhead and the base64-overhead.
|
||||||
|
const RECOMMENDED_FILE_SIZE: u64 = 24 * 1024 * 1024 / 4 * 3;
|
||||||
|
const UPPER_LIMIT_FILE_SIZE: u64 = 49 * 1024 * 1024 / 4 * 3;
|
||||||
|
|
||||||
#[derive(Debug, Clone)]
|
#[derive(Debug, Clone)]
|
||||||
pub enum Loaded {
|
pub enum Loaded {
|
||||||
Message { chat: Chat },
|
Message { chat: Chat },
|
||||||
@@ -846,7 +853,7 @@ impl<'a, 'b> MimeFactory<'a, 'b> {
|
|||||||
if !is_file_size_okay(context, &self.msg) {
|
if !is_file_size_okay(context, &self.msg) {
|
||||||
bail!(
|
bail!(
|
||||||
"Message exceeds the recommended {} MB.",
|
"Message exceeds the recommended {} MB.",
|
||||||
24 * 1024 * 1024 / 4 * 3 / 1000 / 1000,
|
RECOMMENDED_FILE_SIZE / 1_000_000,
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
let (file_part, _) = build_body_file(context, &self.msg, "")?;
|
let (file_part, _) = build_body_file(context, &self.msg, "")?;
|
||||||
@@ -1104,7 +1111,7 @@ fn is_file_size_okay(context: &Context, msg: &Message) -> bool {
|
|||||||
match msg.param.get_path(Param::File, context).unwrap_or(None) {
|
match msg.param.get_path(Param::File, context).unwrap_or(None) {
|
||||||
Some(path) => {
|
Some(path) => {
|
||||||
let bytes = dc_get_filebytes(context, &path);
|
let bytes = dc_get_filebytes(context, &path);
|
||||||
bytes <= (49 * 1024 * 1024 / 4 * 3)
|
bytes <= UPPER_LIMIT_FILE_SIZE
|
||||||
}
|
}
|
||||||
None => false,
|
None => false,
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user