--- clamd.orig 2007-03-05 17:03:48.000000000 -0800 +++ clamd 2007-03-12 16:25:59.000000000 -0700 @@ -45,6 +45,47 @@ chown ${clamav_user} ${logfile} fi + + local milter_ext=no + local milter_svr=no + args=`getopt -q --options "es" --longoptions "external,server" -- $MILTER_OPTS` + for arg in $args; do + + case "$arg" in + + -e | --external) + milter_ext=yes; + shift;; + + -s | --server) + milter_svr=yes; + shift;; + + --) + shift; + break;; + esac + done + + if [[ $milter_ext == yes && $milter_svr == no ]]; then + local clamd_socket_wait_count=0 + local clamd_socket_wait_max=10 + local clamd_socket_wait_result=-1 + ebegin "Waiting for clamd to create ${clamd_socket}" + while (( clamd_socket_wait < clamd_socket_wait_max )); do + if [ -S "${clamd_socket:-/tmp/clamd}" ]; then + clamd_socket_wait_result=0 + break + else + echo -n " ." + let clamd_socket_wait++ + sleep 1 + fi + done + echo + eend $clamd_socket_wait_result "Timeout waiting for ${clamd_socket}" + fi + ebegin "Starting clamav-milter" start-stop-daemon --start --quiet \ --exec /usr/sbin/clamav-milter -- ${MILTER_OPTS} ${MILTER_SOCKET}