Compare commits

...

2 commits

Author SHA1 Message Date
a15b0ee5d6 Change storage to sqlite + filesystem 2025-01-12 21:32:41 +01:00
188237a41d Address first round of review 2025-01-12 21:32:40 +01:00
3 changed files with 33 additions and 4 deletions

View file

@ -1,4 +1,4 @@
koma.aliases: ENC[AES256_GCM,data:YXHv59u9hHbkXH9s8CbDmP1adthMLiU3ijCIg/yBfXvwtzWUY45un3D/iP8aIEB31PkfVtmTYcbsrJRU5brPgtev28U9DsTc1UrLdUW7YyAgo8xN0nyte6Qxdv9OfUVmwTg4tY9Tv7WmjgpXuIx2sRglfn42X3S4tVAmqzYNrg==,iv:3PM0wfq4lFG1bV607cGkZ6QgznRk8iLMQ55M/BMMJAg=,tag:npKbdQ4esykcjMcYEVHR5Q==,type:str] koma.aliases: ENC[AES256_GCM,data:AB/EiyqSMfA5Gfioh1GsiLaydRJjedbp3FYQA6gZNC0KZ042hWVXxm1tZEx0VjVaan4nVpdiszQTNbs4iF3P72dyJGTcE9l3q3WpS2IEfc1tykCasfWNOorTs1POVTS6sCGs4m7W5HPXQQ==,iv:s9xsEqRYlTkYBgrR9wqCp8BGYey5vAc1bbhYIrS3AVU=,tag:MzA2sMSElVNofuyo2qYmyg==,type:str]
sops: sops:
kms: [] kms: []
gcp_kms: [] gcp_kms: []
@ -41,8 +41,8 @@ sops:
OW5ZQWIvU2x1OEN6OW84K0dqRmhGNUUKOA3ugnG/ZD7m1DKrFjpZ8opPnjPtLaQx OW5ZQWIvU2x1OEN6OW84K0dqRmhGNUUKOA3ugnG/ZD7m1DKrFjpZ8opPnjPtLaQx
t8qgGuQIoX6KeUb+YybRAOAPPzl51/m9GSUB43Eanm/tVJpdaew7/g== t8qgGuQIoX6KeUb+YybRAOAPPzl51/m9GSUB43Eanm/tVJpdaew7/g==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
lastmodified: "2024-11-23T09:05:51Z" lastmodified: "2025-01-05T14:22:26Z"
mac: ENC[AES256_GCM,data:L29+n5e38RVgVT71y96EbrboHZigbCUvv1gZ+uTWEchOmB8+pgamKhF/m3mpI1iauKtkNlkcS7NbtsEhbLumEHAibJ1H2EZdbWKB53m0RZMCWdZKV+49DenLjROljWMC+mXs0zIir+ts3mhD3ORhQZVBgs/svfkgIyPkcl0wHaE=,iv:ipUpydj18/fgFgwoD0NDjmwLXM+vfkC85I3uvmG9GLE=,tag:sA1UVTquN7cbWAMh9vF5cg==,type:str] mac: ENC[AES256_GCM,data:5u3rV35uXHA0YqWHvnLn+aOmtHAlkuQoIRt3gj1dvc0+bMv+XBAYu+Yih/tkveeIY8Q0wXdhXdJvsdjkZR/INp5DwtjHUBpEeY5Ko0cQnhToJNhZnrXu/KVkwEtAJ5ir1Djex7ZSGCfMgBkCwCHd/VE2/lr1DksoD4cZy4AGPSo=,iv:r4zzreY6NCCuheRNE4etOo3CBl/unNlPL3cRP3Zvm+U=,tag:xyfBbOUqxcUUcSvfY7YBCw==,type:str]
pgp: [] pgp: []
unencrypted_suffix: _unencrypted unencrypted_suffix: _unencrypted
version: 3.9.1 version: 3.9.2

View file

@ -190,6 +190,13 @@ in {
# see passwd on azathoth for plaintext or machine secret in encoded format for HTTP Basic AUTH # see passwd on azathoth for plaintext or machine secret in encoded format for HTTP Basic AUTH
secret = cfg.stalwartAdminHash; secret = cfg.stalwartAdminHash;
}; };
store = {
# structured data in SQLite, blobs on filesystem
db.type = "sqlite";
db.path = "/var/lib/stalwart-mail/data/index.sqlite3";
fs.type = "fs";
fs.path = "/var/lib/stalwart-mail/data/blobs";
};
}; };
}; };
}; };

22
sieve-rs.patch Normal file
View file

@ -0,0 +1,22 @@
diff --git a/src/runtime/actions/action_redirect.rs b/src/runtime/actions/action_redirect.rs
index 5b4599d..bfb46b0 100644
--- a/src/runtime/actions/action_redirect.rs
+++ b/src/runtime/actions/action_redirect.rs
@@ -41,17 +41,6 @@ impl Redirect {
.count()
< ctx.runtime.max_received_headers
{
- // Try to avoid forwarding loops
- if !self.list
- && (address.eq_ignore_ascii_case(ctx.user_address.as_ref())
- || ctx.envelope.iter().any(|(e, v)| {
- matches!(e, Envelope::From)
- && v.to_string().eq_ignore_ascii_case(address.as_str())
- }))
- {
- return;
- }
-
if !self.copy && matches!(&ctx.final_event, Some(Event::Keep { .. })) {
ctx.final_event = None;
}