]>
git.ipfire.org Git - people/pmueller/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}"
53 if [ -n "${pidlist}" ]; then
54 echo -e "Squid is already running with Process"\
55 "ID(s) ${pidlist}.${NORMAL}"
60 eval $
(/usr
/local
/bin
/readhash
/var
/ipfire
/proxy
/advanced
/settings
)
61 eval $
(/usr
/local
/bin
/readhash
/var
/ipfire
/ethernet
/settings
)
63 if [ -e /var
/ipfire
/proxy
/enable -o -e /var
/ipfire
/proxy
/enable_blue
]; then
64 # Add Address to errorpage stylesheet
65 sed "s|XXXhostXXX|$GREEN_ADDRESS|g" /var
/ipfire
/proxy
/errorpage-
$ERR_DESIGN.css
> \
66 /etc
/squid
/errorpage.css
68 boot_mesg
"Creating Squid swap directories..."
69 /usr
/sbin
/squid
-z >/dev
/null
2>&1
72 # Make sure, that the process above has finished.
74 while [ ${counter} -gt 0 ]; do
75 if pidofproc
-s /usr
/sbin
/squid
; then
82 boot_mesg
"Starting Squid Proxy Server..."
83 loadproc
/usr
/sbin
/squid
86 if [ -e /var
/ipfire
/proxy
/transparent
]; then
87 transparent
$GREEN_DEV
89 if [ -e /var
/ipfire
/proxy
/transparent_blue
]; then
95 iptables
-t nat
-F SQUID
97 if [ -e /var
/run
/squid.pid
]; then
98 boot_mesg
-n "Stopping Squid Proxy Server (this may take up to a few minutes)..."
99 squid
-k shutdown
>/dev
/null
2>&1
101 # If some squid processes are still running, wait up to 360 seconds
102 # before we go on to kill the remaining process(es) and delete damaged
103 # '/var/log/cache/swap.state'.
105 while squid
-k check
&>/dev
/null
&& [ $n -lt 360 ]; do
106 # Print a dot every 6 seconds
107 [ $
(( ${n} % 6 )) -eq 0 ] && boot_mesg
-n .
112 boot_mesg
"" # end line
114 # If (squid-1) is still running, kill all squid processes
115 if squid
-k check
&>/dev
/null || pgrep
-fl "(squid-1)" >/dev
/null
2>&1; then
116 killproc
/usr
/sbin
/squid
>/dev
/null
119 # Remove damaged journal of cache index
120 rm -f /var
/log
/cache
/swap.state
122 boot_mesg
-n "WARNING: squid could not be gracefully shut down." ${WARNING}
123 boot_mesg
-n " The cache index was damaged and has been removed."
124 boot_mesg
-n " The cache data has not been lost and the index will be"
125 boot_mesg
-n " recreated at the next start."
126 boot_mesg
"" ${NORMAL}
129 logger
-t squid
"squid shutdown time: ${n} seconds"
134 # Kill any redirector processes that might have been left running
135 killproc
/usr
/bin
/squidGuard
>/dev
/null
&
136 killproc
/usr
/sbin
/updxlrator
>/dev
/null
&
137 killproc
/usr
/bin
/squidclamav
>/dev
/null
&
138 killproc
/usr
/sbin
/redirect_wrapper
>/dev
/null
&
142 # Trash remain pid file from squid.
143 rm -f /var
/run
/squid.pid
153 /usr
/sbin
/squid
-k reconfigure
157 statusproc
/usr
/sbin
/squid
158 statusproc
/usr
/lib
/squid
/unlinkd
163 rm -rf /var
/log
/cache
/*
169 chown
-R nobody.squid
/var
/updatecache
/
173 echo "Usage: $0 {start|stop|restart|status|flush}"
178 # End $rc_base/init.d/squid