#!/bin/sh # # $FreeBSD$ # # PROVIDE: clamav-milter # REQUIRE: LOGIN clamd # BEFORE: mail # KEYWORD: shutdown # # Add the following lines to /etc/rc.conf to enable clamav-milter: # #clamav_milter_enable="YES" # # See clamav-milter(1) for flags # . %%RC_SUBR%% name=clamav_milter rcvar=`set_rcvar` command=%%PREFIX%%/sbin/clamav-milter pidfile=%%RUNDIR%%/clamav-milter.pid required_dirs=%%DBDIR%% required_files=%%PREFIX%%/etc/clamd.conf start_precmd=start_precmd start_precmd() { if [ -S "$clamav_milter_socket" ]; then warn "Stale socket $clamav_milter_socket removed." rm "$clamav_milter_socket" fi rc_flags="--pidfile ${pidfile} ${flags:-$clamav_milter_flags} $clamav_milter_socket" if checkyesno clamav_clamd_enable && [ "x$clamav_clamd_socket" != "x" ]; then echo -n "Waiting for clamd socket.. " i=${clamav_milter_socktimeout} while [ $i -ne 0 ] do [ -S "$clamav_clamd_socket" ] && break if [ `expr $i % 10` -eq 0 ]; then echo -n "${i}.. " fi sleep 1 i=$(($i-1)) done echo if [ $i -eq 0 ]; then echo "There is no clamd socket (${clamav_clamd_socket})!" exit 1 fi fi } # read settings, set default values load_rc_config $name : ${clamav_milter_enable="NO"} : ${clamav_milter_socket="%%CLAMAV_MILTER_SOCKET%%"} : ${clamav_milter_flags="--postmaster-only --local --outgoing --timeout=0 --max-children=50"} : ${clamav_milter_socktimeout="60"} : ${clamav_clamd_socket="%%CLAMAV_CLAMD_SOCKET%%"} : ${clamav_clamd_enable="NO"} run_rc_command "$1"