#!/sbin/openrc-run # Copyright 1999-2014 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 conf="/etc/conf.d/postgrey" extra_started_commands="reload" depend() { need net before postfix provide postfix_greylist } conf_error() { eerror "You need to setup ${conf} first" return 1 } checkconfig() { if [ -z "${POSTGREY_TYPE}" ] then einfo "You need to choose the server type you want" einfo "by setting the POSTGREY_TYPE variable in ${conf}." else if [ "x${POSTGREY_TYPE}" = "xinet" ] then if [ -z "${POSTGREY_PORT}" ] || [ -z "${POSTGREY_HOST}" ] then einfo "The following entries are missing in ${conf}:" [ -z "${POSTGREY_HOST}" ] && einfo " - POSTGREY_HOST" [ -z "${POSTGREY_PORT}" ] && einfo " - POSTGREY_PORT" conf_error fi POSTGREY_ADDR="${POSTGREY_TYPE}=${POSTGREY_HOST}:${POSTGREY_PORT}" else if [ -z "${POSTGREY_SOCKET}" ] then einfo "The following entries are missing in ${conf}:" [ -z "${POSTGREY_SOCKET}" ] && einfo " - POSTGREY_SOCKET" conf_error fi POSTGREY_ADDR="${POSTGREY_TYPE}=${POSTGREY_SOCKET}" fi fi if [ -z "${POSTGREY_PID}" ] then einfo "The following entries are missing in ${conf}:" [ -z "${POSTGREY_PID}" ] && einfo " - POSTGREY_PID" conf_error fi checkpath -q -d -o postgrey:postgrey -m 0755 "$(dirname ${POSTGREY_PID})" || return 1 } start() { checkconfig || return 1 ebegin "Starting Postgrey" # HACK -- start a subshell and corrects perms on the socket... if [ "x${POSTGREY_TYPE}" = "xunix" ]; then rm -f ${POSTGREY_SOCKET} ( while ! test -S ${POSTGREY_SOCKET}; do sleep 1; done; chmod a+rw,a-x ${POSTGREY_SOCKET} ) & fi if [ -z ${POSTGREY_DELAY} ] ; then POSTGREY_DELAY_ARG="" else POSTGREY_DELAY_ARG="--delay=${POSTGREY_DELAY}" fi if [ -z "${POSTGREY_TEXT}" ] ; then POSTGREY_TEXT_ARG="" else POSTGREY_TEXT_ARG="--greylist-text=${POSTGREY_TEXT}" fi if [ -z "${POSTGREY_HEADER}" ] ; then POSTGREY_HEADER_ARG="" else POSTGREY_HEADER_ARG="--x-greylist-header=${POSTGREY_HEADER}" fi start-stop-daemon --start --quiet --background \ --pidfile=${POSTGREY_PID} \ --name postgrey \ --exec /usr/sbin/postgrey -- \ --${POSTGREY_ADDR} \ --daemonize \ --pidfile=${POSTGREY_PID} \ ${POSTGREY_DELAY_ARG} \ ${POSTGREY_OPTS} \ "${POSTGREY_TEXT_ARG}" \ "${POSTGREY_HEADER_ARG}" eend ${?} } stop() { ebegin "Stopping Postgrey" start-stop-daemon --stop --quiet --pidfile ${POSTGREY_PID} eend ${?} } reload() { ebegin "Reloading Postgrey" start-stop-daemon --stop --signal HUP --oknodo --pidfile ${POSTGREY_PID} eend $? }