mirror of
https://blitiri.com.ar/repos/chasquid
synced 2025-12-19 14:57:04 +00:00
The server is written assuming there's at least one valid SSL/TLS certificate. For example, it unconditionally advertises STARTTLS, and only supports AUTH over TLS. This patch makes the server fail to listen if there are no certificates configured, so the users don't accidentally run an unsupported configuration.
47 lines
1.2 KiB
Bash
Executable File
47 lines
1.2 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -e
|
|
. $(dirname ${0})/../util/lib.sh
|
|
|
|
init
|
|
|
|
# This should fail, as it has no certificates.
|
|
rm config/certs/testserver/*.pem
|
|
if chasquid -v=2 --logfile=.logs/chasquid.log --config_dir=config; then
|
|
fail "chasquid should not start without certificates"
|
|
fi
|
|
|
|
generate_certs_for testserver
|
|
add_user user@testserver secretpassword
|
|
add_user someone@testserver secretpassword
|
|
|
|
mkdir -p .logs
|
|
chasquid -v=2 --logfile=.logs/chasquid.log --config_dir=config &
|
|
wait_until_ready 1025
|
|
|
|
run_msmtp someone@testserver < content
|
|
|
|
wait_for_file .mail/someone@testserver
|
|
|
|
mail_diff content .mail/someone@testserver
|
|
|
|
# At least for now, we allow AUTH over the SMTP port to avoid unnecessary
|
|
# complexity, so we expect it to work.
|
|
if ! run_msmtp -a smtpport someone@testserver < content 2> /dev/null; then
|
|
fail "failed auth on the SMTP port"
|
|
fi
|
|
|
|
if run_msmtp nobody@testserver < content 2> /dev/null; then
|
|
fail "successfuly sent an email to a non-existent user"
|
|
fi
|
|
|
|
if run_msmtp -a baduser someone@testserver < content 2> /dev/null; then
|
|
fail "successfully sent an email with a bad password"
|
|
fi
|
|
|
|
if run_msmtp -a badpasswd someone@testserver < content 2> /dev/null; then
|
|
fail "successfully sent an email with a bad password"
|
|
fi
|
|
|
|
success
|