#!/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 }