#!/bin/bash # $Header: /var/cvsroot/gentoo-x86/mail-mta/qmail-ldap/files/qmail-config-system,v 1.1 2007/06/16 13:48:10 hollow 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