1 #!/bin/sh /etc/rc.common
2 # Copyright (C) 2015 OpenWrt.org
9 CONFIGFILE="/tmp/squid/squid.conf"
11 validate_squid_section() {
12 uci_validate_section squid squid "${1}" \
13 'config_file:string' \
14 'http_port:port:3128' \
15 'http_port_options:string' \
17 'ssldb_options:string' \
18 'coredump_dir:string' \
19 'visible_hostname:string:OpenWrt' \
20 'pinger_enable:string:off'
24 local config_file http_port http_port_options ssldb ssldb_options coredump_dir visible_hostname pinger_enable
26 validate_squid_section squid || {
27 echo "validation failed"
31 config_dir=$(dirname $CONFIGFILE)
32 [ -d $config_dir ] || mkdir -p $config_dir && chown nobody:nogroup $config_dir
33 [ -d $coredump_dir ] || mkdir -p $coredump_dir && chown nobody:nogroup $coredump_dir
34 [ "$ssldb" ] && ( [ -f "$ssldb"/size ] || /usr/lib/squid/ssl_crtd -c -s $ssldb && chown -R nobody:nogroup $ssldb )
36 cat $config_file > $CONFIGFILE
37 echo http_port $http_port $http_port_options >> $CONFIGFILE
38 echo coredump_dir $coredump_dir >> $CONFIGFILE
39 echo visible_hostname $visible_hostname >> $CONFIGFILE
40 echo pinger_enable $pinger_enable >> $CONFIGFILE
41 [ "$ssldb" ] && echo sslcrtd_program /usr/lib/squid/ssl_crtd -s $ssldb $ssldb_options >> $CONFIGFILE
42 $PROG -s -f $CONFIGFILE -N -z 2>/dev/null
45 procd_set_param command $PROG -s -f $CONFIGFILE -N
46 procd_set_param file $CONFIGFILE
47 procd_set_param respawn
53 ${PROG} -f $CONFIGFILE -N -k shutdown 2>/dev/null
58 procd_add_reload_trigger "squid"
59 procd_add_validation validate_squid_section