lede-packages-rs

git clone git://archive.git.mtrnord.blog/MTRNord/lede-packages-rs.git
Log | Files | Refs | README | LICENSE

tinyproxy.init (3422B)


      1 #!/bin/sh /etc/rc.common
      2 # Copyright (C) 2008-2011 OpenWrt.org
      3 
      4 START=50
      5 
      6 CFGFILE=/var/etc/tinyproxy.conf
      7 
      8 section_enabled() {
      9 	config_get_bool enabled "$1" 'enabled' 0
     10 	[ $enabled -gt 0 ]
     11 }
     12 
     13 start() {
     14 	config_load 'tinyproxy'
     15 	config_foreach start_proxy 'tinyproxy'
     16 }
     17 
     18 stop() {
     19 	service_stop /usr/sbin/tinyproxy
     20 }
     21 
     22 start_proxy() {
     23 	section_enabled "$1" || return 1
     24 
     25 	mkdir -m0755 -p /var/etc
     26 	echo '### AUTOGENERATED CONFIGURATION' > $CFGFILE
     27 	echo '### DO NOT EDIT' >> $CFGFILE
     28 	echo '### SEE /etc/config/tinyproxy INSTEAD' >> $CFGFILE
     29 	echo '' >> $CFGFILE
     30 
     31 	proxy_atom "$1" User >> $CFGFILE
     32 	proxy_atom "$1" Group >> $CFGFILE
     33 	proxy_atom "$1" Port 8888 >> $CFGFILE
     34 	proxy_atom "$1" Listen >> $CFGFILE
     35 	proxy_atom "$1" Bind >> $CFGFILE
     36 	proxy_atom "$1" Timeout >> $CFGFILE
     37 
     38 	proxy_string "$1" ErrorFile_400 "ErrorFile 400" >> $CFGFILE
     39 	proxy_string "$1" ErrorFile_403 "ErrorFile 403" >> $CFGFILE
     40 	proxy_string "$1" ErrorFile_404 "ErrorFile 404" >> $CFGFILE
     41 	proxy_string "$1" ErrorFile_408 "ErrorFile 408" >> $CFGFILE
     42 	proxy_string "$1" ErrorFile_503 "ErrorFile 503" >> $CFGFILE
     43 
     44 	proxy_string "$1" DefaultErrorFile >> $CFGFILE
     45 	proxy_string "$1" StatHost StatHost 127.0.0.1 >> $CFGFILE
     46 	proxy_string "$1" StatFile >> $CFGFILE
     47 	proxy_string "$1" LogFile >> $CFGFILE
     48 
     49 	proxy_flag "$1" Syslog >> $CFGFILE
     50 
     51 	proxy_atom "$1" LogLevel >> $CFGFILE
     52 
     53 	proxy_list "$1" XTinyproxy >> $CFGFILE
     54 
     55 	proxy_atom "$1" MaxClients >> $CFGFILE
     56 	proxy_atom "$1" MinSpareServers >> $CFGFILE
     57 	proxy_atom "$1" MaxSpareServers >> $CFGFILE
     58 	proxy_atom "$1" StartServers >> $CFGFILE
     59 	proxy_atom "$1" MaxRequestsPerChild >> $CFGFILE
     60 	proxy_list "$1" Allow >> $CFGFILE
     61 
     62 	proxy_string "$1" ViaProxyName >> $CFGFILE
     63 	proxy_string "$1" Filter >> $CFGFILE
     64 
     65 	proxy_flag "$1" FilterURLs >> $CFGFILE
     66 	proxy_flag "$1" FilterExtended >> $CFGFILE
     67 	proxy_flag "$1" FilterCaseSensitive >> $CFGFILE
     68 	proxy_flag "$1" FilterDefaultDeny Yes No >> $CFGFILE
     69 
     70 	proxy_list "$1" Anonymous '"' >> $CFGFILE
     71 	proxy_list "$1" ConnectPort >> $CFGFILE
     72 
     73 	config_foreach write_upstream upstream
     74 
     75 	service_start /usr/sbin/tinyproxy -c "$CFGFILE"
     76 }
     77 
     78 write_upstream() {
     79 	local type
     80 	local via
     81 	local target
     82 
     83 	config_get "type" "$1" "type"
     84 	config_get via "$1" via
     85 	config_get target "$1" target
     86 	[ -n "$target" ] && target=' "'"$target"'"'
     87 
     88 	[ "$type" == "proxy" -a -n "$via" ] && \
     89 		echo "upstream $via$target" >> $CFGFILE
     90 
     91 	[ "$type" == "reject" -a -n "$target" ] && \
     92 		echo "no upstream$target" >> $CFGFILE
     93 }
     94 
     95 proxy_atom() {
     96 	local SECTION=$1
     97 	local OPTION=$2
     98 	local DEFAULT=$3
     99 
    100 	config_get _value "$SECTION" "$OPTION"
    101 	[ -z "$_value" ] && _value="$DEFAULT"
    102 	[ -n "$_value" ] && echo "$OPTION $_value"
    103 }
    104 
    105 proxy_string() {
    106 	local SECTION=$1
    107 	local OPTION=$2
    108 	local ALIAS=$3
    109 	local DEFAULT=$4
    110 
    111 	config_get _value "$SECTION" "$OPTION"
    112 	[ -z "$_value" ] && _value="$DEFAULT"
    113 	[ -n "$_value" ] && echo "${ALIAS:-${OPTION}} "'"'"$_value"'"'
    114 	[ -n "$_value" -a "$OPTION" = "LogFile" ] && {
    115 		touch $_value
    116 		chmod 666 $_value
    117 	}
    118 }
    119 
    120 proxy_flag() {
    121 	local SECTION=$1
    122 	local OPTION=$2
    123 	local TRUE="${3:-On}"
    124 	local FALSE="${4:-Off}"
    125 
    126 	config_get_bool _value "$SECTION" "$OPTION" 0
    127 	[ "$_value" -eq "1" ] && _value="$TRUE" || _value="$FALSE"
    128 	echo "$OPTION $_value"
    129 }
    130 
    131 proxy_list() {
    132 	local SECTION=$1
    133 	local OPTION=$2
    134 	local ENCLOSE=$3
    135 
    136 	config_get _value "$SECTION" "$OPTION"
    137 	[ -n "$_value" ] && {
    138 		for entry in $_value; do
    139 			echo "$OPTION ${ENCLOSE}${entry}${ENCLOSE}"
    140 		done
    141 	}
    142 }