#!/sbin/runscript # Copyright 1999-2005 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: $ depend() { need clamd } start() { if [ -z "${MILTER_CONF_FILE}" ]; then MILTER_CONF_FILE="/etc/clamav-milter.conf" fi logfix local milter_socket=`awk '$1 == "MilterSocket" { print $2 }' /etc/clamav-milter.conf | grep unix: | sed -e 's/unix://'` if [ -S "${milter_socket}" ]; then rm -f ${milter_socket} fi ebegin "Starting clamav-milter" start-stop-daemon --start --quiet \ --nicelevel ${MILTER_NICELEVEL:-0} \ --exec /usr/sbin/clamav-milter -- -c "${MILTER_CONF_FILE}" retcode=$? if [ ${retcode} != 0 ]; then eend ${retcode} #necessary to tell openrc that freshclam actually _isn't_ running return ${retcode} fi if [ x$milter_socket != x ]; then local milter_socket_wait_count=0 local milter_socket_wait_max=10 local milter_socket_wait_result=-1 ebegin "Waiting for clamav-milter to create ${milter_socket}" while (( milter_socket_wait < milter_socket_wait_max )); do if [ -S "${milter_socket:-/tmp/clamd}" ]; then milter_socket_wait_result=0 break else echo -n " ." let milter_socket_wait++ sleep 1 fi done echo eend $milter_socket_wait_result "Timeout waiting for ${milter_socket}" if [ $milter_socket_wait_result = 0 ]; then chown "${SOCKET_USER:-clamav}:${SOCKET_GROUP:-milter}" "${milter_socket}" chmod 770 "${milter_socket}" fi fi eend ${retcode} } stop() { ebegin "Stopping clamav-milter" start-stop-daemon --stop --quiet --exec /usr/sbin/clamav-milter eend $? } logfix() { # fix freshclam log permissions # (might be clobbered by logrotate or something) logfile=`awk '$1 == "LogFile" { print $2 }' "${MILTER_CONF_FILE}"` local freshclam_user=`awk '$1 == "User" { print $2 }' "${MILTER_CONF_FILE}"` if [ -n "${logfile}" -a -n "${clamav_user}" ]; then if [ ! -f "${logfile}" ]; then touch ${logfile} fi chown ${freshclam_user} ${logfile} chmod 640 ${logfile} fi }