~ubuntu-branches/ubuntu/saucy/clamav/saucy-backports

« back to all changes in this revision

Viewing changes to debian/clamav-daemon.config.in

  • Committer: Package Import Robot
  • Author(s): Scott Kitterman
  • Date: 2014-07-15 01:08:10 UTC
  • mfrom: (0.35.47 sid)
  • Revision ID: package-import@ubuntu.com-20140715010810-ru66ek4fun2iseba
Tags: 0.98.4+dfsg-2~ubuntu13.10.1
No-change backport to saucy (LP: #1341962)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/bin/sh
 
2
 
 
3
set -e
 
4
 
 
5
# Source debconf library
 
6
. /usr/share/debconf/confmodule
 
7
 
 
8
# This conf script is capable of backing up
 
9
db_version 2.0
 
10
db_capb backup
 
11
 
 
12
#COMMON-FUNCTIONS#
 
13
 
 
14
CLAMAVCONF='/etc/clamav/clamd.conf'
 
15
 
 
16
# Read the configuration file
 
17
slurp_config "$CLAMAVCONF"
 
18
 
 
19
# Store conf file values as debconf answers - make sure user changes made 
 
20
# outside of debconf are preserved
 
21
 
 
22
# This hack is needed due to the switch from clamav-base.templates to clamav-daemon.templates,
 
23
# because the clamav-daemon/debconf value is not saved directly in the clamd.conf file.
 
24
if [ -e "$CLAMAVCONF" ]; then
 
25
        if dpkg --compare-versions "$2" lt 0.98.3; then
 
26
                # Test for '##' at the beginning of the configuration file.
 
27
                # These are present in the example configuration file presented for manual editing,
 
28
                # but not in the automatically created one, when using debconf to manage clamd.conf.
 
29
                if [ -z `cat /etc/clamav/clamd.conf | sed -n 1p | grep '##'` ]; then
 
30
                        db_set clamav-daemon/debconf true
 
31
                else
 
32
                        db_set clamav-daemon/debconf false
 
33
                fi
 
34
        fi
 
35
fi
 
36
 
 
37
# Store the settings loaded from the configuration file in debconf.
 
38
if [ -n "$TCPSocket" ]; then
 
39
  db_set clamav-daemon/TcpOrLocal TCP || true
 
40
elif [ -n "$LocalSocket" ]; then
 
41
  db_set clamav-daemon/TcpOrLocal UNIX || true
 
42
fi
 
43
set_debconf_value daemon LocalSocket
 
44
set_debconf_value daemon FixStaleSocket
 
45
set_debconf_value daemon LocalSocketGroup
 
46
set_debconf_value daemon LocalSocketMode
 
47
set_debconf_value daemon TCPSocket
 
48
set_debconf_value daemon TCPAddr
 
49
set_debconf_value daemon ScanMail
 
50
set_debconf_value daemon ScanArchive
 
51
if [ -n "$StreamMaxLength" ]; then
 
52
  StreamMaxLength="`echo $StreamMaxLength | sed -e s/M//`"
 
53
  if [ "$StreamMaxLength" = "0" ]; then
 
54
    StreamMaxLength="25"
 
55
  fi
 
56
  db_set clamav-daemon/StreamMaxLength "$StreamMaxLength" || true
 
57
fi
 
58
set_debconf_value daemon MaxDirectoryRecursion
 
59
set_debconf_value daemon FollowDirectorySymlinks
 
60
set_debconf_value daemon FollowFileSymlinks
 
61
if [ -n "$ReadTimeout" ] && [ -z "$ThreadTimeout" ]; then
 
62
  db_set clamav-daemon/ReadTimeout "$ReadTimeout" || true
 
63
elif [ -z "$ReadTimeout" ] && [ -n "$ThreadTimeout" ]; then
 
64
  ReadTimeout="$ThreadTimeout"
 
65
  db_set clamav-daemon/ReadTimeout "$ReadTimeout" || true
 
66
elif [ -n "$ReadTimeout" ]; then
 
67
  db_set clamav-daemon/ReadTimeout "$ReadTimeout" || true
 
68
fi
 
69
set_debconf_value daemon MaxThreads
 
70
set_debconf_value daemon MaxConnectionQueueLength
 
71
set_debconf_value daemon LogSyslog
 
72
set_debconf_value daemon LogFile
 
73
set_debconf_value daemon LogTime
 
74
set_debconf_value daemon LogRotate
 
75
set_debconf_value daemon ScanOnAccess
 
76
set_debconf_value daemon OnAccessMaxFileSize
 
77
set_debconf_value daemon AllowAllMatchScan
 
78
set_debconf_value daemon ForceToDisk
 
79
set_debconf_value daemon DisableCertCheck
 
80
set_debconf_value daemon ScanSWF
 
81
set_debconf_value daemon MaxEmbeddedPE
 
82
set_debconf_value daemon MaxHTMLNormalize
 
83
set_debconf_value daemon MaxHTMLNoTags
 
84
set_debconf_value daemon MaxScriptNormalize
 
85
set_debconf_value daemon MaxZipTypeRcg
 
86
set_debconf_value daemon SelfCheck
 
87
set_debconf_value daemon StatsEnabled
 
88
set_debconf_value daemon StatsPEDisabled
 
89
set_debconf_value daemon StatsHostID
 
90
set_debconf_value daemon StatsTimeout
 
91
if [ -n "$User" ]; then
 
92
  db_set clamav-daemon/User "$User" || true
 
93
  if ! [ "$User" = 'root' ]; then
 
94
    AddGroups=`groups "$User" | awk -F ':' '{print $2}' | sed -e s/"$User"//`
 
95
  fi
 
96
  if [ -n "$AddGroups" ]; then
 
97
    db_set clamav-daemon/AddGroups "$AddGroups" || true
 
98
  fi
 
99
fi
 
100
set_debconf_value daemon Bytecode
 
101
set_debconf_value daemon BytecodeSecurity
 
102
set_debconf_value daemon BytecodeTimeout
 
103
 
 
104
 
 
105
# States
 
106
 
 
107
StateDebconf()
 
108
{
 
109
  db_input medium clamav-daemon/debconf || true
 
110
  if ! db_go; then
 
111
    STATE="End"
 
112
  else
 
113
    db_get clamav-daemon/debconf || true
 
114
    if [ "$RET" = "false" ]; then
 
115
      STATE="End"
 
116
    else
 
117
      STATE="Socket"
 
118
    fi
 
119
  fi
 
120
}
 
121
 
 
122
StateSocket()
 
123
{
 
124
  db_input medium clamav-daemon/TcpOrLocal || true
 
125
  if ! db_go; then
 
126
    STATE="Init"
 
127
  else
 
128
    db_metaget clamav-daemon/TcpOrLocal value
 
129
    STATE=$RET
 
130
  fi
 
131
}
 
132
 
 
133
StateLocalSocketGroup()
 
134
{
 
135
  db_input low clamav-daemon/LocalSocketGroup || true
 
136
  if db_go; then
 
137
    db_metaget clamav-daemon/LocalSocketGroup value
 
138
    if [ "$RET" = "" ]; then
 
139
      db_set clamav-daemon/LocalSocketGroup "clamav" || true
 
140
    fi
 
141
    STATE="LocalSocketMode"
 
142
  else
 
143
    STATE="UNIX"
 
144
  fi
 
145
}
 
146
 
 
147
StateScanMail()
 
148
{
 
149
  db_input medium clamav-daemon/ScanMail || true
 
150
  if db_go; then
 
151
    STATE="ScanArchive"
 
152
  else
 
153
    db_metaget clamav-daemon/TcpOrLocal value
 
154
    if [ "$RET" = "TCP" ]; then
 
155
      STATE="TCPAddr"
 
156
    else
 
157
      STATE="FixStale"
 
158
    fi
 
159
  fi
 
160
}
 
161
 
 
162
StateScanArchive()
 
163
{
 
164
  db_input low clamav-daemon/ScanArchive || true
 
165
  if db_go; then
 
166
    db_metaget clamav-daemon/ScanArchive value
 
167
    if [ "$RET" = "true" ]; then
 
168
      STATE="StreamMaxLength"
 
169
    else
 
170
      STATE="MaxDirectoryRecursion"
 
171
    fi
 
172
  else
 
173
    STATE="ScanMail"
 
174
  fi
 
175
}
 
176
 
 
177
StateMaxDirectoryRecursion()
 
178
{
 
179
  if inputdigit low clamav-daemon/MaxDirectoryRecursion; then
 
180
    db_metaget clamav-daemon/MaxDirectoryRecursion value
 
181
    if [ "$RET" = "0" ]; then
 
182
      STATE="FollowDirectorySymlinks"
 
183
    else
 
184
      STATE="FollowFileSymlinks"
 
185
    fi
 
186
  else
 
187
      STATE="ScanArchive"
 
188
  fi
 
189
}
 
190
 
 
191
StateFollowFileSymlinks()
 
192
{
 
193
  db_input low clamav-daemon/FollowFileSymlinks || true
 
194
  if db_go; then
 
195
    STATE="ReadTimeout"
 
196
  else
 
197
    db_metaget clamav-daemon/MaxDirectoryRecursion value;
 
198
    if [ "$RET" = "0" ]; then
 
199
      STATE="FollowDirectorySymlinks"
 
200
    else
 
201
      STATE="MaxDirectoryRecursion"
 
202
    fi
 
203
  fi
 
204
}
 
205
 
 
206
StateLogFile()
 
207
{
 
208
  db_input low clamav-daemon/LogFile || true
 
209
  if db_go; then
 
210
    db_metaget clamav-daemon/LogFile value
 
211
    if [ "$RET" = "" ]; then
 
212
      db_set clamav-daemon/LogFile "/var/log/clamav/clamav.log" || true
 
213
      STATE="LogTime"
 
214
    elif [ "$RET" = 'none' ]; then
 
215
      db_set clamav-daemon/LogFile "" || true
 
216
      STATE="SelfCheck"
 
217
    else
 
218
      STATE="LogTime"
 
219
    fi
 
220
  else
 
221
    STATE="LogSyslog"
 
222
  fi
 
223
}
 
224
 
 
225
StateUser()
 
226
{
 
227
  db_input medium clamav-daemon/User || true
 
228
  if db_go; then
 
229
    db_metaget clamav-daemon/User value
 
230
    if [ "$RET" = "" ]; then
 
231
      db_set clamav-daemon/User "clamav" || true
 
232
    fi
 
233
    STATE="AddGroups"
 
234
  else
 
235
    STATE="SelfCheck"
 
236
  fi
 
237
}
 
238
 
 
239
StateBytecode()
 
240
{
 
241
  db_input low clamav-daemon/Bytecode || true
 
242
  if db_go; then
 
243
    db_metaget clamav-daemon/Bytecode value
 
244
    if [ "$RET" = "true" ]; then
 
245
      STATE="BytecodeSecurity"
 
246
    else
 
247
      STATE="End"
 
248
    fi
 
249
  else
 
250
    STATE="AddGroups"
 
251
  fi
 
252
}
 
253
 
 
254
# Too many options to configure at configure.
 
255
if [ "$1" = "reconfigure" ]; then
 
256
  STATE="Init"
 
257
elif [ -n "$2" ]; then
 
258
  # On fresh installation, ask for the User clamav should use.
 
259
  if [ -z "$User" ]; then
 
260
    STATE="User"
 
261
  fi
 
262
else
 
263
  STATE="End"
 
264
fi
 
265
 
 
266
[ -z "$STATE" ] && STATE='End'
 
267
 
 
268
# This is the statemachine that controls execution. All the 'real' work is 
 
269
# performed by subfunctions above. 
 
270
 
 
271
while [ "$STATE" != "End" ]; do
 
272
  case "$STATE" in
 
273
    "Init")
 
274
    StateDebconf
 
275
    ;;
 
276
    "Socket")
 
277
    StateSocket
 
278
    ;;
 
279
    "TCP")
 
280
    StateGenericDigit low clamav-daemon/TCPSocket TCPAddr Socket
 
281
    ;;
 
282
    "TCPAddr")
 
283
    StateGeneric low clamav-daemon/TCPAddr ScanMail TCP
 
284
    ;;
 
285
    "UNIX")
 
286
    StateGeneric low clamav-daemon/LocalSocket LocalSocketGroup Socket
 
287
    ;;
 
288
    "LocalSocketGroup")
 
289
    StateLocalSocketGroup
 
290
    ;;
 
291
    "LocalSocketMode")
 
292
    StateGenericDigit low clamav-daemon/LocalSocketMode FixStale LocalSocketGroup
 
293
    ;;
 
294
    "FixStale")
 
295
    StateGeneric low clamav-daemon/FixStaleSocket ScanMail LocalSocketMode
 
296
    ;;
 
297
    "ScanMail")
 
298
    StateScanMail
 
299
    ;;
 
300
    "ScanArchive")
 
301
    StateScanArchive
 
302
    ;;
 
303
    "StreamMaxLength")
 
304
    StateGenericDigit low clamav-daemon/StreamMaxLength MaxDirectoryRecursion ScanArchive
 
305
    ;;
 
306
    "MaxDirectoryRecursion")
 
307
    StateMaxDirectoryRecursion
 
308
    ;;
 
309
    "FollowDirectorySymlinks")
 
310
    StateGeneric low clamav-daemon/FollowDirectorySymlinks FollowFileSymlinks MaxDirectoryRecursion
 
311
    ;;
 
312
    "FollowFileSymlinks")
 
313
    StateFollowFileSymlinks
 
314
    ;;
 
315
    "ReadTimeout")
 
316
    StateGenericDigit low clamav-daemon/ReadTimeout MaxThreads FollowFileSymlinks
 
317
    ;;
 
318
    "MaxThreads")
 
319
    StateGenericDigit low clamav-daemon/MaxThreads MaxConnectionQueueLength ReadTimeout
 
320
    ;;
 
321
    "MaxConnectionQueueLength")
 
322
    StateGenericDigit low clamav-daemon/MaxConnectionQueueLength LogSyslog MaxThreads
 
323
    ;;
 
324
    "LogSyslog")
 
325
    StateGeneric medium clamav-daemon/LogSyslog LogFile MaxConnectionQueueLength
 
326
    ;;
 
327
    "LogFile")
 
328
    StateLogFile
 
329
    ;;
 
330
    "LogTime")
 
331
    StateGeneric low clamav-daemon/LogTime LogRotate LogFile
 
332
    ;;
 
333
    "LogRotate")
 
334
    StateGeneric low clamav-daemon/LogRotate ScanOnAccess LogFile
 
335
    ;;
 
336
    "ScanOnAccess")
 
337
    StateGeneric low clamav-daemon/ScanOnAccess OnAccessMaxFileSize LogFile
 
338
    ;;
 
339
    "OnAccessMaxFileSize")
 
340
    StateGeneric low clamav-daemon/OnAccessMaxFileSize AllowAllMatchScan ScanOnAccess
 
341
    ;;
 
342
    "AllowAllMatchScan")
 
343
    StateGeneric low clamav-daemon/AllowAllMatchScan ForceToDisk OnAccessMaxFileSize
 
344
    ;;
 
345
    "ForceToDisk")
 
346
    StateGeneric low clamav-daemon/ForceToDisk DisableCertCheck AllowAllMatchScan
 
347
    ;;
 
348
    "DisableCertCheck")
 
349
    StateGeneric low clamav-daemon/DisableCertCheck ScanSWF ForceToDisk
 
350
    ;;
 
351
    "ScanSWF")
 
352
    StateGeneric low clamav-daemon/ScanSWF MaxEmbeddedPE DisableCertCheck
 
353
    ;;
 
354
    "MaxEmbeddedPE")
 
355
    StateGeneric low clamav-daemon/MaxEmbeddedPE MaxHTMLNormalize ScanSWF
 
356
    ;;
 
357
    "MaxHTMLNormalize")
 
358
    StateGeneric low clamav-daemon/MaxHTMLNormalize MaxHTMLNoTags MaxEmbeddedPE
 
359
    ;;
 
360
    "MaxHTMLNoTags")
 
361
    StateGeneric low clamav-daemon/MaxHTMLNoTags MaxScriptNormalize MaxHTMLNormalize
 
362
    ;;
 
363
    "MaxScriptNormalize")
 
364
    StateGeneric low clamav-daemon/MaxScriptNormalize MaxZipTypeRcg MaxHTMLNoTags
 
365
    ;;
 
366
    "MaxZipTypeRcg")
 
367
    StateGeneric low clamav-daemon/MaxZipTypeRcg SelfCheck MaxScriptNormalize
 
368
    ;;
 
369
    "SelfCheck")
 
370
    StateGeneric low clamav-daemon/SelfCheck StatsEnabled MaxZipTypeRcg
 
371
    ;;
 
372
    "StatsEnabled")
 
373
    StateGeneric low clamav-daemon/StatsEnabled StatsPEDisabled SelfCheck
 
374
    ;;
 
375
    "StatsPEDisabled")
 
376
    StateGeneric low clamav-daemon/StatsPEDisabled StatsHostID StatsEnabled
 
377
    ;;
 
378
    "StatsHostID")
 
379
    StateGeneric low clamav-daemon/StatsHostID StatsTimeout StatsPEDisabled
 
380
    ;;
 
381
    "StatsTimeout")
 
382
    StateGenericDigit low clamav-daemon/StatsTimeout User StatsHostID
 
383
    ;;
 
384
    "User")
 
385
    StateUser
 
386
    ;;
 
387
    "AddGroups")
 
388
    StateGeneric medium clamav-daemon/AddGroups Bytecode User
 
389
    ;;
 
390
    "Bytecode")
 
391
    StateBytecode
 
392
    ;;
 
393
    "BytecodeSecurity")
 
394
    StateGeneric low clamav-daemon/BytecodeSecurity BytecodeTimeout Bytecode
 
395
    ;;
 
396
    "BytecodeTimeout")
 
397
    StateGenericDigit low clamav-daemon/BytecodeTimeout End BytecodeSecurity
 
398
    ;;
 
399
  esac
 
400
done
 
401
db_stop || true
 
402
exit 0