lede-packages-rs

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

polipo.init (4085B)


      1 #!/bin/sh /etc/rc.common
      2 # Copyright (C) 2008-2011 OpenWrt.org
      3 
      4 START=99
      5 
      6 CFGFILE=/var/etc/polipo.conf
      7 
      8 start() {
      9 	config_load 'polipo'
     10 
     11 	config_get_bool enabled "general" 'enabled' '0'
     12 	[ $enabled -gt 0 ] || return 1
     13 
     14 	mkdir -m 0755 -p /var/etc/
     15 	echo '### AUTOGENERATED CONFIGURATION' > $CFGFILE
     16 	echo '### DO NOT EDIT' >> $CFGFILE
     17 	echo '### SEE /etc/config/polipo INSTEAD' >> $CFGFILE
     18 	echo '' >> $CFGFILE
     19 
     20 	config_foreach polipo_config 'polipo'
     21 
     22 	# handle values that are disabled when not defined or empty
     23 	echo "### VALUES THAT ARE DISABLED WHEN EMPTY" >> $CFGFILE
     24 	polipo_atom "cache" "diskCacheRoot" '"' "1" >> $CFGFILE
     25 	polipo_atom "general" "logFile" '"' "1" >> $CFGFILE
     26 	polipo_atom "general" "localDocumentRoot" '"' "1" >> $CFGFILE
     27 
     28 	service_start /usr/sbin/polipo -c "$CFGFILE"
     29 }
     30 
     31 stop() {
     32 	service_stop /usr/sbin/polipo -c "$CFGFILE"
     33 }
     34 
     35 polipo_config() {
     36 	echo "### SECTION $1" >> $CFGFILE
     37 
     38 	string_options='authCredentials authRealm dnsNameServer forbiddenFile
     39 		forbiddenUrl logFacility pidFile parentAuthCredentials parentProxy
     40 		proxyAddress proxyName redirector socksParentProxy socksProxyType
     41 		socksUserName uncachableFile'
     42 
     43 	number_options='bigBufferSize chunkCriticalMark chunkHighMark chunkLowMark
     44 		diskCacheDirectoryPermissions diskCacheFilePermissions
     45 		diskCacheTruncateSize diskCacheWriteoutOnClose forbiddenRedirectCode
     46 		logFilePermissions logLevel maxDiskCacheEntrySize maxDiskEntries
     47 		maxObjectsWhenIdle maxPipelineTrain maxSideBuffering maxWriteoutWhenIdle
     48 		objectHashTableSize objectHighMark pmmFirstSize pmmSize proxyPort
     49 		publicObjectLowMark redirectorRedirectCode replyUnpipelineSize
     50 		serverMaxSlots serverSlots serverSlots1 maxAgeFraction'
     51 
     52 	time_options='clientTimeout diskCacheTruncateTime diskCacheUnlinkTime
     53 		dnsGethostbynameTtl dnsMaxTimeout dnsNegativeTtl idleTime maxAge
     54 		maxConnectionAge maxConnectionRequests maxExpiresAge maxNoModifiedAge
     55 		replyUnpipelineTime serverExpireTime serverIdleTimeout serverTimeout
     56 		smallRequestTime'
     57 
     58 	multistate_options='censorReferer dnsQueryIPv6 dnsUseGethostbyname
     59 		dontTrustVaryETag expectContinue pipelineAdditionalRequests
     60 		useTemporarySourceAddress relaxTransparency'
     61 
     62 	boolean_options='cacheIsShared daemonise disableConfiguration disableIndexing
     63 		disableLocalInterface disableProxy disableServersList disableVia
     64 		dontCacheCookies dontCacheRedirects logSyslog mindlesslyCacheVary
     65 		preciseExpiry proxyOffline scrubLogs laxHttpParser'
     66 
     67 	string_list_options='allowedClients censoredHeaders'
     68 
     69 	number_list_options='allowedPorts tunnelAllowedPorts'
     70 
     71 	for option in $string_options; do
     72 		polipo_atom "$1" "$option" '"' >> $CFGFILE
     73 	done
     74 
     75 	for option in $number_options; do
     76 		polipo_atom "$1" "$option" >> $CFGFILE
     77 	done
     78 
     79 	for option in $time_options; do
     80 		polipo_atom "$1" "$option" >> $CFGFILE
     81 	done
     82 	
     83 	for option in $multistate_options; do
     84 		polipo_atom "$1" "$option" >> $CFGFILE
     85 	done
     86 
     87 	for option in $boolean_options; do
     88 		polipo_boolean "$1" "$option" >> $CFGFILE
     89 	done
     90 
     91 	for option in $string_list_options; do
     92 		polipo_list "$1" "$option" '"' >> $CFGFILE
     93 	done
     94 	
     95 	for option in $number_list_options; do
     96 		polipo_list "$1" "$option" >> $CFGFILE
     97 	done
     98 }
     99 
    100 polipo_atom() {
    101 	local SECTION=$1
    102 	local OPTION=$2
    103 	local QUOTE=$3
    104 	local EMPTY_DISABLED=${4:-0}
    105 
    106 	config_get _value "$SECTION" "$OPTION"
    107 	[ -n "$_value" -o "$EMPTY_DISABLED" -eq "1" ] && {
    108 		echo "$OPTION = ${QUOTE}${_value}${QUOTE}"
    109 	}
    110 }
    111 
    112 polipo_boolean() {
    113 	local SECTION=$1
    114 	local OPTION=$2
    115 
    116 	config_get_bool _value "$SECTION" "$OPTION"
    117 	[ -n "$_value" ] && {
    118 		[ "$_value" -eq "1" ] && _value="true" || _value="false"
    119 		echo "$OPTION = $_value"
    120 	}
    121 }
    122 
    123 polipo_list() {
    124 	local SECTION=$1
    125 	local OPTION=$2
    126 	local QUOTE=$3
    127 
    128 	config_get _value "$SECTION" "$OPTION"
    129 	
    130 	[ "$SECTION" = general ] && [ "$OPTION" = allowedClients ] && {
    131 		case "$_value" in
    132 			*127.0.0.1*) : ;;
    133 			*) _value="127.0.0.1 $_value" ;;
    134 		esac
    135 	}
    136 	
    137 	[ -n "$_value" ] && {
    138 		echo -n "$OPTION = "
    139 		
    140 		local FIRST=1
    141 		for entry in $_value; do
    142 			[ "$FIRST" -ne "1" ] && echo -n ", " || FIRST=0
    143 			
    144 			echo -n "${QUOTE}${entry}${QUOTE}"
    145 		done
    146 		
    147 		echo ''
    148 	}
    149 }
    150