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