1 #!/bin/sh /etc/rc.common
2 # Copyright (C) 2008 OpenWrt.org
5 DAEMON
=/usr
/sbin
/polipo
6 CFGFILE
=/var
/etc
/polipo.conf
11 config_get_bool enabled
"general" enabled
12 [ "$enabled" -ne "1" ] && {
13 echo 'Polipo is disabled.'
18 echo '### AUTOGENERATED CONFIGURATION' > $CFGFILE
19 echo '### DO NOT EDIT' >> $CFGFILE
20 echo '### SEE /etc/config/polipo INSTEAD' >> $CFGFILE
23 config_foreach polipo_config polipo
25 # handle values that are disabled when not defiend or empty
26 echo "### VALUES THAT ARE DISABLED WHEN EMPTY" >> $CFGFILE
27 polipo_atom
"cache" "diskCacheRoot" '"' "1" >> $CFGFILE
28 polipo_atom
"general" "logFile" '"' "1" >> $CFGFILE
29 polipo_atom
"general" "localDocumentRoot" '"' "1" >> $CFGFILE
31 echo 'Polipo is starting...'
32 start-stop-daemon
-S -q -x "$DAEMON" -- -c "$CFGFILE"
36 echo 'Polipo is stopping...'
37 start-stop-daemon
-K -q -x "$DAEMON"
48 echo "### SECTION $1" >> $CFGFILE
50 string_options
='authCredentials authRealm dnsNameServer forbiddenFile
51 forbiddenUrl logFacility pidFile parentAuthCredentials parentProxy
52 proxyAddress proxyName redirector socksParentProxy socksProxyType
53 socksUserName uncachableFile'
55 number_options
='bigBufferSize chunkCriticalMark chunkHighMark chunkLowMark
56 diskCacheDirectoryPermissions diskCacheFilePermissions
57 diskCacheTruncateSize diskCacheWriteoutOnClose forbiddenRedirectCode
58 logFilePermissions logLevel maxDiskCacheEntrySize maxDiskEntries
59 maxObjectsWhenIdle maxPipelineTrain maxSideBuffering maxWriteoutWhenIdle
60 objectHashTableSize objectHighMark pmmFirstSize pmmSize proxyPort
61 publicObjectLowMark redirectorRedirectCode replyUnpipelineSize
62 serverMaxSlots serverSlots serverSlots1 maxAgeFraction'
64 time_options
='clientTimeout diskCacheTruncateTime diskCacheUnlinkTime
65 dnsGethostbynameTtl dnsMaxTimeout dnsNegativeTtl idleTime maxAge
66 maxConnectionAge maxConnectionRequests maxExpiresAge maxNoModifiedAge
67 replyUnpipelineTime serverExpireTime serverIdleTimeout serverTimeout
70 multistate_options
='censorReferer dnsQueryIPv6 dnsUseGethostbyname
71 dontTrustVaryETag expectContinue pipelineAdditionalRequests
72 useTemporarySourceAddress'
74 boolean_options
='cacheIsShared daemonise disableConfiguration disableIndexing
75 disableLocalInterface disableProxy disableServersList disableVia
76 dontCacheCookies dontCacheRedirects logSyslog mindlesslyCacheVary
77 preciseExpiry proxyOffline scrubLogs laxHttpParser'
79 string_list_options
='allowedClients censoredHeaders'
81 number_list_options
='allowedPorts tunnelAllowedPorts'
83 for option
in $string_options; do
84 polipo_atom
"$1" "$option" '"' >> $CFGFILE
87 for option
in $number_options; do
88 polipo_atom
"$1" "$option" >> $CFGFILE
91 for option
in $time_options; do
92 polipo_atom
"$1" "$option" >> $CFGFILE
95 for option
in $multistate_options; do
96 polipo_atom
"$1" "$option" >> $CFGFILE
99 for option
in $boolean_options; do
100 polipo_boolean
"$1" "$option" >> $CFGFILE
103 for option
in $string_list_options; do
104 polipo_list
"$1" "$option" '"' >> $CFGFILE
107 for option
in $number_list_options; do
108 polipo_list
"$1" "$option" >> $CFGFILE
116 local EMPTY_DISABLED
=${4:-0}
118 config_get _value
"$SECTION" "$OPTION"
119 [ -n "$_value" -o "$EMPTY_DISABLED" -eq "1" ] && {
120 echo "$OPTION = ${QUOTE}${_value}${QUOTE}"
128 config_get_bool _value
"$SECTION" "$OPTION"
129 [ -n "$_value" ] && {
130 [ "$_value" -eq "1" ] && _value
="true" || _value
="false"
131 echo "$OPTION = $_value"
140 config_get _value
"$SECTION" "$OPTION"
142 [ "$SECTION" = general
] && [ "$OPTION" = allowedClients
] && {
145 *) _value
="127.0.0.1 $_value" ;;
149 [ -n "$_value" ] && {
153 for entry
in $_value; do
154 [ "$FIRST" -ne "1" ] && echo -n ", " || FIRST
=0
156 echo -n "${QUOTE}${entry}${QUOTE}"