]>
git.ipfire.org Git - people/mfischer/ipfire-2.x.git/blob - src/initscripts/system/squid
2 # Begin $rc_base/init.d/squid
7 chown
-R squid
:squid
/var
/log
/squid
8 chown
-R squid
:squid
/var
/log
/squidGuard
14 eval $
(/usr
/local
/bin
/readhash
/var
/ipfire
/ethernet
/settings
)
15 eval $
(/usr
/local
/bin
/readhash
/var
/ipfire
/proxy
/settings
)
17 # If the proxy port is not set we set the default to 800.
18 if [ -z "${TRANSPARENT_PORT}" ]; then
22 LOCALIP
=`cat /var/ipfire/red/local-ipaddress | tr -d \n`
23 if [ -z $LOCALIP ]; then
24 boot_mesg
"Couldn't read local-ipaddress" ${FAILURE}
29 FILE
=/var
/ipfire
/vpn
/config
33 CONN_TYPE
=`echo "$LINE" | awk -F, '{ print $5 }'`
34 if [ "$CONN_TYPE" != "net" ]; then
37 iptables
-t nat
-A SQUID
-i $1 -p tcp
-d `echo "$LINE" | awk -F, '{ print $13 }'` --dport 80 -j RETURN
40 if [ "$RED_TYPE" == "STATIC" ]; then
41 iptables
-t nat
-A SQUID
-i $1 -p tcp
-d $RED_NETADDRESS/$RED_NETMASK --dport 80 -j RETURN
44 iptables
-t nat
-A SQUID
-i $1 -p tcp
-d $LOCALIP --dport 80 -j RETURN
46 iptables
-t nat
-A SQUID
-i $1 -p tcp
--dport 80 -j REDIRECT
--to-port "${TRANSPARENT_PORT}"
54 if [ -n "${pidlist}" ]; then
55 echo -e "Squid is already running with Process"\
56 "ID(s) ${pidlist}.${NORMAL}"
61 eval $
(/usr
/local
/bin
/readhash
/var
/ipfire
/proxy
/advanced
/settings
)
62 eval $
(/usr
/local
/bin
/readhash
/var
/ipfire
/ethernet
/settings
)
64 if [ -e /var
/ipfire
/proxy
/enable -o -e /var
/ipfire
/proxy
/enable_blue
]; then
65 # Add Address to errorpage stylesheet
66 sed "s|XXXhostXXX|$GREEN_ADDRESS|g" /var
/ipfire
/proxy
/errorpage-
$ERR_DESIGN.css
> \
67 /etc
/squid
/errorpage.css
69 boot_mesg
"Creating Squid swap directories..."
70 /usr
/sbin
/squid
-z >/dev
/null
2>&1
73 # Make sure, that the process above has finished.
75 while [ ${counter} -gt 0 ]; do
76 if pidofproc
-s /usr
/sbin
/squid
; then
83 boot_mesg
"Starting Squid Proxy Server..."
84 loadproc
/usr
/sbin
/squid
87 if [ -e /var
/ipfire
/proxy
/transparent
]; then
88 transparent
$GREEN_DEV
90 if [ -e /var
/ipfire
/proxy
/transparent_blue
]; then
96 iptables
-t nat
-F SQUID
98 if [ -e /var
/run
/squid.pid
]; then
99 boot_mesg
-n "Stopping Squid Proxy Server (this may take up to a few minutes)..."
100 squid
-k shutdown
>/dev
/null
2>&1
102 # If some squid processes are still running, wait up to 360 seconds
103 # before we go on to kill the remaining process(es) and delete damaged
104 # '/var/log/cache/swap.state'.
106 while squid
-k check
&>/dev
/null
&& [ $n -lt 360 ]; do
107 # Print a dot every 6 seconds
108 [ $
(( ${n} % 6 )) -eq 0 ] && boot_mesg
-n .
113 boot_mesg
"" # end line
115 # If (squid-1) is still running, kill all squid processes
116 if squid
-k check
&>/dev
/null || pgrep
-fl "(squid-1)" >/dev
/null
2>&1; then
117 killproc
/usr
/sbin
/squid
>/dev
/null
120 # Remove damaged journal of cache index
121 rm -f /var
/log
/cache
/swap.state
123 boot_mesg
-n "WARNING: squid could not be gracefully shut down." ${WARNING}
124 boot_mesg
-n " The cache index was damaged and has been removed."
125 boot_mesg
-n " The cache data has not been lost and the index will be"
126 boot_mesg
-n " recreated at the next start."
127 boot_mesg
"" ${NORMAL}
130 logger
-t squid
"squid shutdown time: ${n} seconds"
135 # Kill any redirector processes that might have been left running
136 killproc
/usr
/bin
/squidGuard
>/dev
/null
&
137 killproc
/usr
/sbin
/updxlrator
>/dev
/null
&
138 killproc
/usr
/bin
/squidclamav
>/dev
/null
&
139 killproc
/usr
/sbin
/redirect_wrapper
>/dev
/null
&
143 # Trash remain pid file from squid.
144 rm -f /var
/run
/squid.pid
154 /usr
/sbin
/squid
-k reconfigure
158 statusproc
/usr
/sbin
/squid
159 statusproc
/usr
/lib
/squid
/unlinkd
164 rm -rf /var
/log
/cache
/*
170 chown
-R nobody.squid
/var
/updatecache
/
174 echo "Usage: $0 {start|stop|restart|status|flush}"
179 # End $rc_base/init.d/squid