commit b1a67ccafcc91c3d25f7e8cb52e6b508496ac75d Author: Alberto Bertogli <albertito@blitiri.com.ar> Date: Sun Jan 19 12:09:56 2025 +0000 Update changelog for release 1.15.0-1 commit a9010190d3cd4a12b1999536f9fdb0feb5ecb918 Author: Alberto Bertogli <albertito@blitiri.com.ar> Date: Sun Jan 19 12:06:07 2025 +0000 New upstream release (1.15.0) commit 911289615eed2fa05d6273ba16ec06543ccbb169 Merge: df5b910 deb2a2f Author: Alberto Bertogli <albertito@blitiri.com.ar> Date: Sun Jan 19 12:05:55 2025 +0000 Merge tag 'upstream/1.15.0' into debian/sid upstream/1.15.0 commit deb2a2f22b6f4a49a2193f1b0f5c0544dd0b2253 Author: Alberto Bertogli <albertito@blitiri.com.ar> Date: Fri Jan 17 18:10:51 2025 +0000 docs: v1.15.0 release notes commit 19ce435e928868a81305f47f3947262cf293bc26 Author: Alberto Bertogli <albertito@blitiri.com.ar> Date: Sun Dec 1 22:21:19 2024 +0000 Regenerate auto-generated files This patch regenerates the auto-generated files. There are no significant changes. - Protobuf files updated the comment formatting to match recent changes in Go libraries. - IANA assignment for a AEGIS (currently an IETF draft) has been updated. - The link to the human-readable IANA assignment tables from the generator was manually updated. commit 7e560aba6e9adfbaaf7934d47be107af0faa20e6 Author: Alberto Bertogli <albertito@blitiri.com.ar> Date: Sun Dec 1 22:17:40 2024 +0000 modules: Update Go dependencies commit 227379ecdeb65c9adc13f938d37519aadc6f0649 Author: Andreas Deininger <andreas@deininger.net> Date: Sun Dec 1 21:56:13 2024 +0100 cleanup: Remove unused/unnecessary code commit eb21e61a4f7fba28042f72547cce4e78b806ce45 Author: Andreas Deininger <andreas@deininger.net> Date: Sun Dec 1 21:56:13 2024 +0100 monitoring: Use _ for unused function arguments commit 9dab8f4f04efd6cfd0a07d86404c2536b68d2517 Author: Alberto Bertogli <albertito@blitiri.com.ar> Date: Sun Nov 17 10:25:58 2024 +0000 etc: Add fail2ban filter configuration example This patch adds a fail2ban filter configuration example for chasquid. It can be used to configure fail2ban to detect IPs causing connection churn or high rate of errors. commit 41bb7b6f5eb52f18b9fd5d4270234135ebd4ab96 Author: Alberto Bertogli <albertito@blitiri.com.ar> Date: Thu Oct 31 13:05:57 2024 +0000 normalize: Improve ToCRLF/StringToCRLF performance The ToCRLF/StringToCRLF functions are not very performance critical, but we call it for each mail, and the current implementation is very inefficient (mainly because it goes one byte at a time). This patch replaces it with a better implementation that goes line by line. The new implementation of ToCRLF is ~40% faster, and StringToCRLF is ~60% faster. ``` $ benchstat old.txt new.txt goos: linux goarch: amd64 pkg: blitiri.com.ar/go/chasquid/internal/normalize cpu: 13th Gen Intel(R) Core(TM) i9-13900T │ old.txt │ new.txt │ │ sec/op │ sec/op vs base │ ToCRLF-32 162.96µ ± 6% 95.42µ ± 12% -41.44% (p=0.000 n=10) StringToCRLF-32 190.70µ ± 14% 76.51µ ± 6% -59.88% (p=0.000 n=10) geomean 176.3µ 85.44µ -51.53% ``` commit 723c47d352f4dc7c1c30e0c91937c193218e29f2 Author: Alberto Bertogli <albertito@blitiri.com.ar> Date: Thu Oct 31 13:09:52 2024 +0000 test: Update deprecated ssl.wrap_socket() call ssl.wrap_socket() has been deprecated and is no longer functional in Python 3.12: https://docs.python.org/3/whatsnew/3.12.html#ssl. This patch replaces it with the equivalent (in this context) ssl.SSLContext. commit a1b6821ce12acbaed40c902763b715cf7f691666 Author: Alberto Bertogli <albertito@blitiri.com.ar> Date: Fri May 10 16:47:22 2024 +0100 dkim: Make timestamp parsing more robust against overflow The timestamp string in the t= and x= headers is an "unsigned decimal integer", but time.Unix takes an int64. Today we parse it as uint64 and then cast it, but this can cause issues with overflow and type conversion. This patch fixes that by parsing the timestamps as signed integers, and then checking they're positive. commit aae0367c60ba63f27d5c41e84c9f94c78d2e37f2 Author: Alberto Bertogli <albertito@blitiri.com.ar> Date: Fri May 10 11:42:07 2024 +0100 Log how many things were loaded for each domain This patch makes chasquid log how many users, aliases and DKIM keys were loaded for each domain. This makes it easier to confirm changes, and troubleshoot problems related to these per-domain configuration files. commit e6a94103772e49590c714fc99b4b0b4f562eee7e Author: Alberto Bertogli <albertito@blitiri.com.ar> Date: Fri May 10 09:11:35 2024 +0100 Exit if there's an error reading users/aliases files on startup Today, when starting up, if there's an error reading the users or aliases files, we only log but do not exit. And then those files will not be attempted to be read on the periodic reload. We also treat "file does not exist" as an error for users file, but not aliases file, resulting in inconsistent behaviour between the two. All of this makes some classes of problems (like permission errors) more difficult to spot and troubleshoot. For example, https://github.com/albertito/chasquid/issues/55. So this patch makes errors reading users/aliases files on startup a fatal error, and also unifies the "file does not exist" behaviour to make it not an error in both cases. Note that the behaviour on the periodic reload is unchanged: treat these errors as fatal too. This may be changed in future patches. commit 0414af09b446e82854d7d8e4a807acf972f7a86b Author: Alberto Bertogli <albertito@blitiri.com.ar> Date: Sat Apr 27 16:40:37 2024 +0100 test: Avoid file with ':' in the name Unfortunately, `go get` rejects repos that have files with ':': https://github.com/golang/go/issues/28001. We have one such file in the tests. This prevents some of the Go tooling from working on the latest release, including pkg.go.dev. So, as a workaround we use a compatible file name in the repository, and rename it when running the test. This is very hacky, but it's okay for a single test. commit 7dbde5a6949da1f52b3d89af60de9d1e350c5b69 Author: Alberto Bertogli <albertito@blitiri.com.ar> Date: Sun Apr 21 11:55:49 2024 +0100 ci: Fix docker push of `latest` tag The `latest` tag is meant to track the `main` branch, but I just noticed it hasn't been pushed out in a while. This is because the conditional gating the push on the branch being `main` is incorrect. This patch fixes the problem by using the correct conditional on the branch name.
There is 1 open security issue in bookworm.
You can find information about how to handle this issue in the security team's documentation.