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.'
17 echo '### AUTOGENERATED CONFIGURATION' > $CFGFILE
18 echo '### DO NOT EDIT' >> $CFGFILE
19 echo '### SEE /etc/config/polipo INSTEAD' >> $CFGFILE
22 config_foreach polipo_config polipo
24 # handle values that are disabled when not defiend or empty
25 echo "### VALUES THAT ARE DISABLED WHEN EMPTY" >> $CFGFILE
26 polipo_atom
"cache" "diskCacheRoot" '"' "1" >> $CFGFILE
27 polipo_atom
"general" "logFile" '"' "1" >> $CFGFILE
28 polipo_atom
"general" "localDocumentRoot" '"' "1" >> $CFGFILE
30 echo 'Polipo is starting...'
31 start-stop-daemon
-S -q -x "$DAEMON" -- -c "$CFGFILE"
35 echo 'Polipo is stopping...'
36 start-stop-daemon
-K -q -x "$DAEMON"
47 echo "### SECTION $1" >> $CFGFILE
49 string_options
='authCredentials authRealm dnsNameServer forbiddenFile
50 forbiddenUrl logFacility pidFile parentAuthCredentials parentProxy
51 proxyAddress proxyName redirector socksParentProxy socksProxyType
52 socksUserName uncachableFile'
54 number_options
='bigBufferSize chunkCriticalMark chunkHighMark chunkLowMark
55 diskCacheDirectoryPermissions diskCacheFilePermissions
56 diskCacheTruncateSize diskCacheWriteoutOnClose forbiddenRedirectCode
57 logFilePermissions logLevel maxDiskCacheEntrySize maxDiskEntries
58 maxObjectsWhenIdle maxPipelineTrain maxSideBuffering maxWriteoutWhenIdle
59 objectHashTableSize objectHighMark pmmFirstSize pmmSize proxyPort
60 publicObjectLowMark redirectorRedirectCode replyUnpipelineSize
61 serverMaxSlots serverSlots serverSlots1 maxAgeFraction'
63 time_options
='clientTimeout diskCacheTruncateTime diskCacheUnlinkTime
64 dnsGethostbynameTtl dnsMaxTimeout dnsNegativeTtl idleTime maxAge
65 maxConnectionAge maxConnectionRequests maxExpiresAge maxNoModifiedAge
66 replyUnpipelineTime serverExpireTime serverIdleTimeout serverTimeout
69 multistate_options
='censorReferer dnsQueryIPv6 dnsUseGethostbyname
70 dontTrustVaryETag expectContinue pipelineAdditionalRequests
71 useTemporarySourceAddress'
73 boolean_options
='cacheIsShared daemonise disableConfiguration disableIndexing
74 disableLocalInterface disableProxy disableServersList disableVia
75 dontCacheCookies dontCacheRedirects logSyslog mindlesslyCacheVary
76 preciseExpiry proxyOffline scrubLogs laxHttpParser'
78 string_list_options
='allowedClients censoredHeaders'
80 number_list_options
='allowedPorts tunnelAllowedPorts'
82 for option
in $string_options; do
83 polipo_atom
"$1" "$option" '"' >> $CFGFILE
86 for option
in $number_options; do
87 polipo_atom
"$1" "$option" >> $CFGFILE
90 for option
in $time_options; do
91 polipo_atom
"$1" "$option" >> $CFGFILE
94 for option
in $multistate_options; do
95 polipo_atom
"$1" "$option" >> $CFGFILE
98 for option
in $boolean_options; do
99 polipo_boolean
"$1" "$option" >> $CFGFILE
102 for option
in $string_list_options; do
103 polipo_list
"$1" "$option" '"' >> $CFGFILE
106 for option
in $number_list_options; do
107 polipo_list
"$1" "$option" >> $CFGFILE
115 local EMPTY_DISABLED
=$4
117 config_get _value
"$SECTION" "$OPTION"
118 [ -n "$_value" -o "$EMPTY_DISABLED" -eq "1" ] && {
119 echo "$OPTION = ${QUOTE}${_value}${QUOTE}"
127 config_get_bool _value
"$SECTION" "$OPTION"
128 [ -n "$_value" ] && {
129 [ "$_value" -eq "1" ] && _value
="true" || _value
="false"
130 echo "$OPTION = $_value"
139 config_get _value
"$SECTION" "$OPTION"
140 [ -n "$_value" ] && {
144 for entry
in $_value; do
145 [ "$FIRST" -ne "1" ] && echo -n ", " || FIRST
=0
147 echo -n "${QUOTE}${entry}${QUOTE}"