]> git.ipfire.org Git - people/teissler/ipfire-2.x.git/blobdiff - src/initscripts/init.d/squid
Merge branch 'iptables-upnpfw' into core67-merge
[people/teissler/ipfire-2.x.git] / src / initscripts / init.d / squid
index 2d3be648084f253b90f6e5ca912bb89d1b7722bd..1a1425d0c695f1b2a4628b1100006f9b5d708826 100644 (file)
@@ -7,12 +7,13 @@
 chown -R squid:squid /var/log/squid
 chown -R squid:squid /var/log/squidGuard
 
+
 transparent() {
                DEVICE=$1
-               
+
                eval $(/usr/local/bin/readhash /var/ipfire/ethernet/settings)
                eval $(/usr/local/bin/readhash /var/ipfire/proxy/settings)
-               
+
                # If the proxy port is not set we set the default to 800.
                if [ -z $PROXY_PORT ]; then
                        PROXY_PORT=800
@@ -47,15 +48,30 @@ transparent() {
 
 case "$1" in
        start)
-               boot_mesg "Starting Squid Proxy Server..."
-               
-               if [ -e /var/ipfire/proxy/enable -o -e /var/ipfire/proxy/enable_blue ]; then
-                       loadproc /usr/sbin/squid -D -z >/dev/null 2>&1
-                       loadproc /usr/sbin/squid -D
+               getpids "squid"
+
+               if [ -n "${pidlist}" ]; then
+                       echo -e "Squid is already running with Process"\
+                               "ID(s) ${pidlist}.${NORMAL}"
+               evaluate_retval
+               exit
                fi
 
+
+               eval $(/usr/local/bin/readhash /var/ipfire/proxy/advanced/settings)
                eval $(/usr/local/bin/readhash /var/ipfire/ethernet/settings)
 
+               if [ -e /var/ipfire/proxy/enable -o -e /var/ipfire/proxy/enable_blue ]; then
+
+                       # Add Address to errorpage stylesheet
+                       sed "s|XXXhostXXX|$GREEN_ADDRESS|g" /var/ipfire/proxy/errorpage-$ERR_DESIGN.css > \
+                               /etc/squid/errorpage.css
+
+                       boot_mesg "Starting Squid Proxy Server..."
+                       loadproc /usr/sbin/squid -z >/dev/null 2>&1
+                       loadproc /usr/sbin/squid
+               fi
+
                if [ -e /var/ipfire/proxy/transparent ]; then
                        transparent $GREEN_DEV
                fi
@@ -65,13 +81,17 @@ case "$1" in
                ;;
 
        stop)
-               boot_mesg "Stopping Squid Proxy Server..."
-               iptables -t nat -F SQUID
-               squid -k shutdown >/dev/null 2>&1
-               evaluate_retval
-               killproc /usr/bin/squidGuard >/dev/null
-               killproc /usr/sbin/updxlrator >/dev/null
-               killproc /usr/sbin/squid >/dev/null
+                       iptables -t nat -F SQUID
+               if [ -e /var/run/squid.pid ]; then
+                       boot_mesg "Stopping Squid Proxy Server..."
+                       squid -k shutdown >/dev/null 2>&1
+                       evaluate_retval
+                       killproc /usr/bin/squidGuard >/dev/null
+                       killproc /usr/sbin/updxlrator >/dev/null
+                       killproc /usr/bin/squidclamav >/dev/null
+                       killproc /usr/sbin/squid >/dev/null
+                       rm -rf /var/run/squid.pid       
+               fi
                ;;
 
        restart)
@@ -80,6 +100,10 @@ case "$1" in
                $0 start
                ;;
 
+       reconfigure)
+       /usr/sbin/squid -k reconfigure
+               ;;
+
        status)
                statusproc /usr/sbin/squid
                statusproc /usr/lib/squid/unlinkd
@@ -92,6 +116,9 @@ case "$1" in
                sleep 1
                $0 start
                ;;
+       setperms)
+               chown -R nobody.squid /var/updatecache/
+               ;;
 
        *)
                echo "Usage: $0 {start|stop|restart|status|flush}"