Mail-MIMEDefang

 view release on metacpan or  search on metacpan

redhat/mimedefang-init.in  view on Meta::CPAN

# Locale should be set to "C" for generating valid date headers
LC_ALL=C
export LC_ALL

start() {

    # Lets not run twice
    if [ -f /var/lock/subsys/$prog ]; then
	RETVAL=2
	return $RETVAL
    fi

    # Check mimedefang-filter syntax
    configtest
    RETVAL=$?
    if [ $RETVAL != 0 ] ; then
	return $RETVAL
    fi

    # Since @SPOOLDIR@ might be tmpfs, ensure that it is properly
    # initialized.
    chown defang:defang @SPOOLDIR@
    restorecon -R @SPOOLDIR@ >/dev/null 2>&1
    if [ ! -d @SPOOLDIR@/.razor ]; then
	mkdir @SPOOLDIR@/.razor
	chown defang:defang @SPOOLDIR@/.razor
	chmod 0750 @SPOOLDIR@/.razor
    fi
    if [ ! -L @SPOOLDIR@/.razor/razor-agent.log ]; then
	# The Razor2 log is mostly useless, and we can't change its location.
	# In order to prevent it from filling up the spool, we just link it to
	# /dev/null.
	ln -sf /dev/null @SPOOLDIR@/.razor/razor-agent.log
	chown -h defang:defang @SPOOLDIR@/.razor/razor-agent.log
    fi

    echo -n "Starting $prog-multiplexor: "
    [ -e $MX_SOCKET ] && rm -f $MX_SOCKET
    # Tricky stuff below... "echo -E" won't work, hence the two-step.
    daemon $PROGDIR/$prog-multiplexor -p /var/run/$prog-multiplexor.pid \
	   -o @SPOOLDIR@/$prog-multiplexor.lock \
	   $([ -n "$FILTER" ] && echo "-f $FILTER") \
	   $([ -n "$SYSLOG_FACILITY" ] && echo "-S $SYSLOG_FACILITY") \
	   $([ -n "$SUBFILTER" ] && echo "-F $SUBFILTER") \
	   $([ -n "$MX_MINIMUM" ] && echo "-m $MX_MINIMUM") \
	   $([ -n "$MX_MAXIMUM" ] && echo "-x $MX_MAXIMUM") \
	   $([ -n "$MX_RECIPOK_PERDOMAIN_LIMIT" ] && echo "-y $MX_RECIPOK_PERDOMAIN_LIMIT") \
	   $([ -n "$MX_USER" ] && echo "-U $MX_USER") \
	   $([ -n "$MX_IDLE" ] && echo "-i $MX_IDLE") \
	   $([ -n "$MX_BUSY" ] && echo "-b $MX_BUSY") \
	   $([ -n "$MX_QUEUE_SIZE" ] && echo "-q $MX_QUEUE_SIZE") \
	   $([ -n "$MX_QUEUE_TIMEOUT" ] && echo "-Q $MX_QUEUE_TIMEOUT") \
	   $([ -n "$MX_REQUESTS" ] && echo "-r $MX_REQUESTS") \
	   $([ -n "$MX_MAP_SOCKET" ] && echo "-N $MX_MAP_SOCKET") \
	   $([ -n "$MX_WORKER_DELAY" ] && echo "-w $MX_WORKER_DELAY") \
	   $([ -n "$MX_MIN_WORKER_DELAY" ] && echo "-W $MX_MIN_WORKER_DELAY") \
	   $([ -n "$MX_LOG_WORKER_STATUS_INTERVAL" ] && echo "-L $MX_LOG_WORKER_STATUS_INTERVAL") \
	   $([ -n "$MX_MAX_RSS" ] && echo "-R $MX_MAX_RSS") \
	   $([ -n "$MX_MAX_AS" ] && echo "-M $MX_MAX_AS") \
	   $([ -n "$MX_MAX_LIFETIME" ] && echo "-V $MX_MAX_LIFETIME") \
	   $([ "$MX_EMBED_PERL" = "yes" ] && (echo -n "-"; echo "E")) \
	   $([ "$MX_LOG" = "yes" ] && echo "-l") \
	   $([ "$MX_STATS" = "yes" ] && echo "-t /var/log/mimedefang/stats") \
	   $([ "$MX_STATUS_UPDATES" = "yes" ] && echo "-Z") \
	   $([ "$MX_STATS" = "yes" -a "$MX_FLUSH_STATS" = "yes" ] && echo "-u") \
	   $([ -n "$MX_TICK_REQUEST" ] && echo "-X $MX_TICK_REQUEST") \
	   $([ -n "$MX_TICK_PARALLEL" ] && echo "-P $MX_TICK_PARALLEL") \
	   $([ "$MX_STATS_SYSLOG" = "yes" ] && echo "-T") \
	   $([ "$MD_ALLOW_GROUP_ACCESS" = "yes" ] && echo "-G") \
	   $([ -n "$MX_NOTIFIER" ] && echo "-O $MX_NOTIFIER") \
	   $([ -n "$MX_AUTOSCALE" ] && echo "-k") \
	   -s $MX_SOCKET
    echo

    # Start daemon
    echo -n "Starting $prog: "
    [ -e $SOCKET ] && rm -f $SOCKET

    # NOTE: You should limit the stack size on Linux, or
    # thread-creation will fail on a very busy server.
    ulimit -s 2048

    daemon $PROGDIR/$prog -P /var/run/$prog.pid \
	   -o @SPOOLDIR@/$prog.lock \
	   -m $MX_SOCKET \
	   $([ -n "$LOOPBACK_RESERVED_CONNECTIONS" ] && echo "-R $LOOPBACK_RESERVED_CONNECTIONS") \
	   $([ -n "$MX_USER" ] && echo "-U $MX_USER") \
	   $([ -n "$SYSLOG_FACILITY" ] && echo "-S $SYSLOG_FACILITY") \
	   $([ "$USE_SETSYMLIST" = "yes" ] && echo "-y") \
	   $([ "$LOG_FILTER_TIME" = "yes" ] && echo "-T") \
	   $([ "$MX_RELAY_CHECK" = "yes" ] && echo "-r") \
	   $([ "$MX_HELO_CHECK" = "yes" ] && echo "-H") \
	   $([ "$MX_SENDER_CHECK" = "yes" ] && echo "-s") \
	   $([ "$MX_RECIPIENT_CHECK" = "yes" ] && echo "-t") \
	   $([ "$KEEP_FAILED_DIRECTORIES" = "yes" ] && echo "-k") \
	   $([ "$MD_ALLOW_GROUP_ACCESS" = "yes" ] && echo "-G") \
	   $([ "$MD_SKIP_BAD_RCPTS" = "yes" ] && echo "-N") \
	   $([ -n "$MD_EXTRA" ] && echo "$MD_EXTRA") \
	   $([ "$ALLOW_NEW_CONNECTIONS_TO_QUEUE" = "yes" ] && echo "-q") \
	   -p $SOCKET
    RETVAL=$?
    echo

    [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog

    return $RETVAL
}

configtest () {
    echo -n "Checking filter syntax: "
    $PROGDIR/mimedefang.pl $([ -n "$SUBFILTER" ] && echo "-f $SUBFILTER") -test > @SPOOLDIR@/configtest.out 2>&1
    if [ $? != 0 ] ; then
	echo "FAILED."
	echo ""
	cat @SPOOLDIR@/configtest.out
	return 1
    fi
    rm -f @SPOOLDIR@/configtest.out
    echo "OK"
    return 0
}



( run in 2.498 seconds using v1.01-cache-2.11-cpan-3fabe0161c3 )