|
#!/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_tls server_auth extra_cmdline smarthost client_tls client_auth address_verifier domain anonymous
|
|
|
|
config_get_bool enabled "$1" enabled
|
|
config_get mode "$1" mode
|
|
config_get port "$1" port
|
|
config_get_bool remote_clients "$1" remote_clients
|
|
config_get server_tls "$1" server_tls
|
|
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 client_auth "$1" client_auth
|
|
config_get address_verifier "$1" address_verifier
|
|
config_get domain "$1" domain
|
|
config_get_bool anonymous "$1" anonymous
|
|
|
|
[ "$enabled" = 0 ] && return 1
|
|
|
|
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
|
|
[ -n "$server_tls" ] && procd_append_param command --server-tls "$server_tls"
|
|
[ -n "$server_auth" ] && procd_append_param command --server-auth "$server_auth"
|
|
[ "$client_tls" = 1 ] && procd_append_param command --client-tls
|
|
[ -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
|
|
}
|