#!/bin/sh /etc/rc.common # Copyright (C) 2015 OpenWrt.org START=90 STOP=10 USE_PROCD=1 PROG=/usr/sbin/squid CONFIGFILE="/tmp/squid/squid.conf" validate_squid_section() { uci_validate_section squid squid "${1}" \ 'config_file:string' \ 'http_port:port:3128' \ 'coredump_dir:string' \ 'visible_hostname:string:OpenWrt' \ 'pinger_enable:string:off' } start_service() { local config_file http_port coredump_dir visible_hostname pinger_enable validate_squid_section squid || { echo "validation failed" return 1 } mkdir -p $(dirname $CONFIGFILE) cat $config_file > $CONFIGFILE echo http_port $http_port >> $CONFIGFILE echo coredump_dir $coredump_dir >> $CONFIGFILE echo visible_hostname $visible_hostname >> $CONFIGFILE echo pinger_enable $pinger_enable >> $CONFIGFILE procd_open_instance procd_set_param command $PROG -s -f $CONFIGFILE -N procd_set_param file $CONFIGFILE procd_set_param respawn procd_close_instance } stop_service() { ${PROG} -f $CONFIGFILE -N -k shutdown 2>/dev/null } service_triggers() { procd_add_reload_trigger "squid" procd_add_validation validate_squid_section }