Files
packages/mail/emailrelay/files/emailrelay.init
Sergey Ponomarev ccd014b247 emailrelay: conf: TLS options
The server_tls/client_tls option also requires certs.

server_tls_required
server_tls_certificate
server_tls_verify
client_tls_required
client_tls_certificate
client_tls_verify

Signed-off-by: Sergey Ponomarev <stokito@gmail.com>
2025-05-21 11:08:36 +02:00

87 lines
3.2 KiB
Bash

#!/bin/sh /etc/rc.common
START=90
USE_PROCD=1
PROG=/usr/bin/emailrelay
NAME=emailrelay
emailrelay_instance()
{
local enabled mode port remote_clients \
server_auth server_tls server_tls_required server_tls_certificate server_tls_verify \
client_auth client_tls client_tls_required client_tls_certificate client_tls_verify \
anonymous domain smarthost address_verifier \
extra_cmdline
config_get_bool enabled "$1" enabled
[ "$enabled" = 0 ] && return 1
config_get mode "$1" mode
config_get port "$1" port
config_get_bool remote_clients "$1" remote_clients
config_get_bool server_tls "$1" server_tls
config_get_bool server_tls_required "$1" server_tls_required
config_get server_tls_certificate "$1" server_tls_certificate
config_get server_tls_verify "$1" server_tls_verify
config_get server_auth "$1" server_auth
config_get extra_cmdline "$1" extra_cmdline
config_get smarthost "$1" smarthost
config_get_bool client_tls "$1" client_tls
config_get_bool client_tls_required "$1" client_tls_required
config_get client_tls_certificate "$1" client_tls_certificate
config_get client_tls_verify "$1" client_tls_verify
config_get client_auth "$1" client_auth
config_get address_verifier "$1" address_verifier
config_get domain "$1" domain
config_get_bool anonymous "$1" anonymous
procd_open_instance
procd_set_param command "$PROG" --no-daemon
case "$mode" in
"server"|\
"proxy")
procd_append_param command "--as-${mode}"
[ -n "$smarthost" ] && procd_append_param command "$smarthost"
[ -n "$port" ] && procd_append_param command --port "$port"
[ "$remote_clients" = 1 ] && procd_append_param command --remote-clients
[ "$server_tls" = 1 ] && procd_append_param command --server-tls
[ "$server_tls_required" = 1 ] && procd_append_param command --server-tls-required
[ -n "$server_tls_certificate" ] && procd_append_param command --server-tls-certificate "$server_tls_certificate"
[ -n "$server_tls_verify" ] && procd_append_param command --server-tls-verify "$server_tls_verify"
[ -n "$server_auth" ] && procd_append_param command --server-auth "$server_auth"
[ "$client_tls" = 1 ] && procd_append_param command --client-tls
[ "$client_tls_required" = 1 ] && procd_append_param command --client-tls-required
[ -n "$client_tls_certificate" ] && procd_append_param command --client-tls-certificate "$client_tls_certificate"
[ -n "$client_tls_verify" ] && procd_append_param command --client-tls-verify "$client_tls_verify"
[ -n "$client_auth" ] && procd_append_param command --client-auth "$client_auth"
[ -n "$address_verifier" ] && procd_append_param command --address-verifier "$address_verifier"
[ -n "$domain" ] && procd_append_param command --domain "$domain"
[ "$anonymous" = 1 ] && procd_append_param command --anonymous
;;
"cmdline")
# empty by intention (just append extra_cmdline)
;;
*)
echo "no mode specified"
return 1
;;
esac
[ -n "$extra_cmdline" ] && procd_append_param command $extra_cmdline
procd_set_param respawn
procd_close_instance
}
start_service()
{
[ ! -d /var/spool/emailrelay ] && mkdir -p /var/spool/emailrelay
config_load "${NAME}"
config_foreach emailrelay_instance emailrelay
}