c509dba
#!/bin/bash
c509dba
c509dba
PATH=/usr/bin:/sbin:/bin:/usr/sbin
c509dba
export PATH
c509dba
c509dba
# Source function library.
c509dba
. /etc/rc.d/init.d/functions
c509dba
c509dba
# Source networking configuration.
c509dba
. /etc/sysconfig/network
c509dba
c509dba
# Check that networking is up.
c509dba
[ ${NETWORKING} = "no" ] && exit 0
c509dba
c509dba
# check if the squid-squidGuard.conf file is present
c509dba
[ -f /etc/squid/squid-squidGuard.conf ] || exit 0
c509dba
c509dba
if [ -f /etc/sysconfig/squid ]; then
c509dba
  . /etc/sysconfig/squid
c509dba
fi
c509dba
c509dba
# don't raise an error if the config file is incomplete 
c509dba
# set defaults instead:
c509dba
SQUID_OPTS=${SQUID_OPTS:-"-D"}
c509dba
SQUID_PIDFILE_TIMEOUT=${SQUID_PIDFILE_TIMEOUT:-20}
c509dba
SQUID_SHUTDOWN_TIMEOUT=${SQUID_SHUTDOWN_TIMEOUT:-100}
c509dba
c509dba
# determine the name of the squid binary
c509dba
[ -f /usr/sbin/squid ] && SQUID=squid
c509dba
[ -z "$SQUID" ] && exit 0
c509dba
c509dba
prog="$SQUID"
c509dba
c509dba
# determine which one is the cache_swap directory
c509dba
CACHE_SWAP=`sed -e 's/#.*//g' /etc/squid/squid-squidGuard.conf | \
c509dba
	grep cache_dir |  awk '{ print $3 }'`
c509dba
[ -z "$CACHE_SWAP" ] && CACHE_SWAP=/var/spool/squid
c509dba
c509dba
RETVAL=0
c509dba
c509dba
start() {
c509dba
    for adir in $CACHE_SWAP; do
c509dba
        if [ ! -d $adir/00 ]; then 
c509dba
	     echo -n "init_cache_dir $adir... "
c509dba
	     $SQUID -f /etc/squid/squid-squidGuard.conf -z -F -D 2>/dev/null
c509dba
	fi
c509dba
    done
c509dba
    echo -n $"Starting $prog: "
c509dba
    $SQUID $SQUID_OPTS -f /etc/squid/squid-squidGuard.conf 2> /dev/null
c509dba
    RETVAL=$?
c509dba
    if [ $RETVAL -eq 0 ]; then 
c509dba
       timeout=0;
c509dba
       while : ; do
c509dba
          [ ! -f /var/run/squid.pid ] || break
c509dba
	  if [ $timeout -ge $SQUID_PIDFILE_TIMEOUT ]; then
c509dba
	     RETVAL=1
c509dba
	     break
c509dba
	  fi
c509dba
	  sleep 1 && echo -n "."
c509dba
	  timeout=$((timeout+1))
c509dba
       done
c509dba
    fi
c509dba
    [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$SQUID
c509dba
    [ $RETVAL -eq 0 ] && echo_success
c509dba
    [ $RETVAL -ne 0 ] && echo_failure
c509dba
    echo
c509dba
    return $RETVAL
c509dba
}
c509dba
c509dba
stop() {
c509dba
    echo -n  $"Stopping $prog: "
c509dba
    $SQUID -k check -f /etc/squid/squid-squidGuard.conf >/dev/null 2>&1
c509dba
    RETVAL=$?
c509dba
    if [ $RETVAL -eq 0 ] ; then
c509dba
        $SQUID -k shutdown -f /etc/squid/squid-squidGuard.conf &
c509dba
    	rm -f /var/lock/subsys/$SQUID
c509dba
	timeout=0
c509dba
 	while : ; do
c509dba
		[ -f /var/run/squid.pid ] || break
c509dba
		if [ $timeout -ge $SQUID_SHUTDOWN_TIMEOUT ]; then
c509dba
		    echo
c509dba
		    return 1
c509dba
		fi
c509dba
		sleep 2 && echo -n "." 
c509dba
		timeout=$((timeout+2))
c509dba
    	done
c509dba
	echo_success
c509dba
	echo 
c509dba
    else
c509dba
    	echo_failure
c509dba
	echo
c509dba
    fi
c509dba
    return $RETVAL
c509dba
}    
c509dba
c509dba
reload() {
c509dba
    $SQUID $SQUID_OPTS -k reconfigure -f /etc/squid/squid-squidGuard.conf
c509dba
}
c509dba
c509dba
restart() {
c509dba
    stop
c509dba
    start
c509dba
}    
c509dba
c509dba
condrestart() {
c509dba
    [ -e /var/lock/subsys/squid ] && restart || :
c509dba
}
c509dba
c509dba
rhstatus() { 
c509dba
    status $SQUID
c509dba
    $SQUID -k check -f /etc/squid/squid-squidGuard.conf
c509dba
}
c509dba
c509dba
probe() {
c509dba
    return 0
c509dba
}    
c509dba
c509dba
case "$1" in
c509dba
start)
c509dba
    start
c509dba
    ;;
c509dba
c509dba
stop)
c509dba
    stop
c509dba
    ;;
c509dba
c509dba
#reload)
c509dba
#    reload
c509dba
#    ;;
c509dba
#
c509dba
#restart)
c509dba
#    restart
c509dba
#    ;;
c509dba
#
c509dba
#condrestart)
c509dba
#    condrestart
c509dba
#    ;;
c509dba
#
c509dba
#status)
c509dba
#    rhstatus
c509dba
#    ;;
c509dba
#
c509dba
#probe)
c509dba
#    exit 0
c509dba
#    ;;
c509dba
c509dba
*)
c509dba
#    echo $"Usage: $0 {start|stop|status|reload|restart|condrestart}"
c509dba
    exit 1
c509dba
esac
c509dba
c509dba
exit $?