diff options
Diffstat (limited to 'mail-mta/netqmail/files/qmail-config-system')
-rw-r--r-- | mail-mta/netqmail/files/qmail-config-system | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/mail-mta/netqmail/files/qmail-config-system b/mail-mta/netqmail/files/qmail-config-system new file mode 100644 index 000000000000..345e1d000960 --- /dev/null +++ b/mail-mta/netqmail/files/qmail-config-system @@ -0,0 +1,72 @@ +#!/bin/bash +# $Header: /var/cvsroot/gentoo-x86/mail-mta/netqmail/files/qmail-config-system,v 1.1 2006/02/12 18:42:33 hansmi Exp $ + +# This is a configuration system to make using and controlling the interesting +# parts of the qmail behavior simple. The only variable that needs to be set +# before running this is $SERVICE. + +# this is to inherit QMAIL_CONTROLDIR +. /etc/profile + +# now run +# grab the common configuration +[[ -s ${QMAIL_CONTROLDIR}/conf-common ]] && \ + . ${QMAIL_CONTROLDIR}/conf-common + +# grab the per-service configuration +[[ -s ${QMAIL_CONTROLDIR}/conf-${SERVICE}d ]] && \ + . ${QMAIL_CONTROLDIR}/conf-${SERVICE}d + +# special case for qmail-send +[[ "${SERVICE}" = send && -s ${QMAIL_CONTROLDIR}/conf-send ]] && \ + . ${QMAIL_CONTROLDIR}/conf-send + +# you may want to disable this at some point, so I give you the choice here +if [[ -z "${QMAIL_DISABLE_SANITY_CHECK}" ]] +then + # This is intended solely to stop qmail eating up all your hard disk space with logs + + CONFIG_SANITY_GOOD= + + # check simple stuff first + if [[ -z "${QMAILDUID}" || -z "${NOFILESGID}" || -z "${SERVICE}" || -z "${QMAILLUID}" ]] + then + echo "SERVICE(${SERVICE}), QMAILDUID(${QMAILDUID}), NOFILESGID(${NOFILESGID}) or "\ + "QMAILLUID(${QMAILLUID}) is unset in $0" + CONFIG_SANITY_GOOD=0 + fi + + if [[ -z "${LOG_OPTS}" || -z "${LOG_DEST}" ]] + then + echo "LOG_OPTS: ${LOG_OPTS}" + echo "LOG_DEST: ${LOG_DEST}" + echo "Error in logging setup!" + CONFIG_SANITY_GOOD=0 + fi + + if [[ "${SERVICE}" = smtp && + ! -f ${QMAIL_CONTROLDIR}/rcpthosts && + -z "${QMAIL_DISABLE_SANITY_CHECK}" ]] + then + echo "No /var/qmail/control/rcpthosts!" + echo "Refusing to start SMTP listener because it'll create an open relay" + CONFIG_SANITY_GOOD=0 + fi + + if [[ "${SERVICE}" != send && ! -f "${TCPSERVER_RULESCDB}" ]] + then + echo "No CDB file found (${TCPSERVER_RULESCDB})" + CONFIG_SANITY_GOOD=0 + fi + + if [[ -n "${CONFIG_SANITY_GOOD}" ]] + then + echo "Some error detected in ${SERVICE}, sleeping for 90 seconds for safety" + sleep 90s + exit 1 + fi +else + echo "Failed to find sanity checker!" + sleep 30s + exit 1 +fi |