libcbor: fix license info in Makefile
[feed/packages.git] / net / clamav / files / clamav.init
1 #!/bin/sh /etc/rc.common
2 # Copyright (C) 2015 OpenWrt.org
3
4 START=90
5 STOP=10
6
7 USE_PROCD=1
8 PROG=/usr/sbin/clamd
9 CLAMD_CONFIGFILE="/tmp/clamav/clamd.conf"
10
11 validate_clamav_section() {
12 uci_load_validate clamav clamav "$1" "$2" \
13 'clamd_config_file:string' \
14 'LogFile:string' \
15 'LogFileMaxSize:string' \
16 'LogVerbose:string' \
17 'ExtendedDetectionInfo:string' \
18 'LogTime:string' \
19 'OfficialDatabaseOnly:string' \
20 'StreamMinPort:uinteger' \
21 'StreamMaxPort:uinteger' \
22 'MaxThreads:uinteger' \
23 'ReadTimeout:uinteger' \
24 'CommandReadTimeout:uinteger' \
25 'MaxDirectoryRecursion:uinteger' \
26 'FollowDirectorySymlinks:string' \
27 'FollowFileSymlinks:string' \
28 'SelfCheck:uinteger' \
29 'DetectPUA:string' \
30 'ScanPE:string' \
31 'DisableCertCheck:string' \
32 'ScanELF:string' \
33 'AlertBrokenExecutables:string' \
34 'ScanOLE2:string' \
35 'ScanPDF:string' \
36 'ScanSWF:string' \
37 'ScanMail:string' \
38 'ScanPartialMessages:string' \
39 'ScanArchive:string' \
40 'TemporaryDirectory:string' \
41 'AlertEncrypted:string' \
42 'MaxFileSize:string' \
43 'LocalSocket:string' \
44 'TCPSocket:port' \
45 'TCPAddr:ipaddr' \
46 'User:string' \
47 'ExitOnOOM:string' \
48 'DatabaseDirectory:string'
49 }
50
51 start_clamav_instance() {
52 [ "$2" = 0 ] || {
53 echo "validation failed"
54 return 1
55 }
56
57 mkdir -p "$DatabaseDirectory"
58 mkdir -p /etc/clamav/
59 mkdir -p /var/run/clamav/
60 chmod a+rw /var/run/clamav
61
62 mkdir -p "$(dirname $CLAMD_CONFIGFILE)"
63 ln -sf "$clamd_config_file" "$CLAMD_CONFIGFILE"
64
65 {
66 echo "LogFile " "$LogFile"
67 echo "LogFileMaxSize " "$LogFileMaxSize"
68 echo "LogVerbose " "$LogVerbose"
69 echo "ExtendedDetectionInfo " "$ExtendedDetectionInfo"
70 echo "LogTime " "$LogTime"
71 echo "OfficialDatabaseOnly " "$OfficialDatabaseOnly"
72 echo "StreamMinPort " "$StreamMinPort"
73 echo "StreamMaxPort " "$StreamMaxPort"
74 echo "MaxThreads " "$MaxThreads"
75 echo "ReadTimeout " "$ReadTimeout"
76 echo "CommandReadTimeout " "$CommandReadTimeout"
77 echo "MaxDirectoryRecursion " "$MaxDirectoryRecursion"
78 echo "FollowDirectorySymlinks " "$FollowDirectorySymlinks"
79 echo "FollowFileSymlinks " "$FollowFileSymlinks"
80 echo "SelfCheck " "$SelfCheck"
81 echo "DetectPUA " "$DetectPUA"
82 echo "ScanPE " "$ScanPE"
83 echo "DisableCertCheck " "$DisableCertCheck"
84 echo "ScanELF " "$ScanELF"
85 echo "AlertBrokenExecutables " "$AlertBrokenExecutables"
86 echo "ScanOLE2 " "$ScanOLE2"
87 echo "ScanPDF " "$ScanPDF"
88 echo "ScanSWF " "$ScanSWF"
89 echo "ScanMail " "$ScanMail"
90 echo "ScanPartialMessages " "$ScanPartialMessages"
91 echo "ScanArchive " "$ScanArchive"
92 echo "TemporaryDirectory " "$TemporaryDirectory"
93 echo "AlertEncrypted " "$AlertEncrypted"
94 echo "MaxFileSize " "$MaxFileSize"
95 echo "User " "$User"
96 echo "ExitOnOOM " "$ExitOnOOM"
97 echo "DatabaseDirectory " "$DatabaseDirectory"
98 } > "$CLAMD_CONFIGFILE"
99
100 if [ -n "$LocalSocket" ]; then
101 echo "LocalSocket " "$LocalSocket" >>"$CLAMD_CONFIGFILE"
102 fi
103
104 if [ -n "$TCPSocket" ]; then
105 echo "TCPAddr" "$TCPAddr" >>"$CLAMD_CONFIGFILE"
106 echo "TCPSocket " "$TCPSocket" >>"$CLAMD_CONFIGFILE"
107 fi
108
109 procd_open_instance
110 procd_set_param command $PROG -c $CLAMD_CONFIGFILE
111 procd_set_param file $CLAMD_CONFIGFILE
112 procd_close_instance
113 }
114
115 start_service()
116 {
117 validate_clamav_section clamav start_clamav_instance
118 }
119
120 stop_service()
121 {
122 service_stop $PROG
123 }
124
125 service_triggers()
126 {
127 procd_add_reload_trigger "clamav"
128 procd_add_validation validate_clamav_section
129 }