|
|
- #!/bin/sh /etc/rc.common
- # Copyright (C) 2015 OpenWrt.org
-
- START=90
- STOP=10
-
- USE_PROCD=1
- PROG=/usr/sbin/clamd
- CLAMD_CONFIGFILE="/tmp/clamav/clamd.conf"
-
- validate_clamav_section() {
- uci_load_validate clamav clamav "$1" "$2" \
- 'clamd_config_file:string' \
- 'LogFile:string' \
- 'LogFileMaxSize:string' \
- 'LogVerbose:string' \
- 'ExtendedDetectionInfo:string' \
- 'LogTime:string' \
- 'OfficialDatabaseOnly:string' \
- 'StreamMinPort:uinteger' \
- 'StreamMaxPort:uinteger' \
- 'MaxThreads:uinteger' \
- 'ReadTimeout:uinteger' \
- 'CommandReadTimeout:uinteger' \
- 'MaxDirectoryRecursion:uinteger' \
- 'FollowDirectorySymlinks:string' \
- 'FollowFileSymlinks:string' \
- 'SelfCheck:uinteger' \
- 'DetectPUA:string' \
- 'ScanPE:string' \
- 'DisableCertCheck:string' \
- 'ScanELF:string' \
- 'AlertBrokenExecutables:string' \
- 'ScanOLE2:string' \
- 'ScanPDF:string' \
- 'ScanSWF:string' \
- 'ScanMail:string' \
- 'ScanPartialMessages:string' \
- 'ScanArchive:string' \
- 'TemporaryDirectory:string' \
- 'AlertEncrypted:string' \
- 'MaxFileSize:string' \
- 'LocalSocket:string' \
- 'User:string' \
- 'ExitOnOOM:string' \
- 'DatabaseDirectory:string'
- }
-
- start_clamav_instance() {
- [ "$2" = 0 ] || {
- echo "validation failed"
- return 1
- }
-
- mkdir -p "$DatabaseDirectory"
- mkdir -p /etc/clamav/
- mkdir -p /var/run/clamav/
- chmod a+rw /var/run/clamav
-
- mkdir -p "$(dirname $CLAMD_CONFIGFILE)"
- ln -sf "$clamd_config_file" "$CLAMD_CONFIGFILE"
-
- {
- echo "LogFile " "$LogFile"
- echo "LogFileMaxSize " "$LogFileMaxSize"
- echo "LogVerbose " "$LogVerbose"
- echo "ExtendedDetectionInfo " "$ExtendedDetectionInfo"
- echo "LogTime " "$LogTime"
- echo "OfficialDatabaseOnly " "$OfficialDatabaseOnly"
- echo "StreamMinPort " "$StreamMinPort"
- echo "StreamMaxPort " "$StreamMaxPort"
- echo "MaxThreads " "$MaxThreads"
- echo "ReadTimeout " "$ReadTimeout"
- echo "CommandReadTimeout " "$CommandReadTimeout"
- echo "MaxDirectoryRecursion " "$MaxDirectoryRecursion"
- echo "FollowDirectorySymlinks " "$FollowDirectorySymlinks"
- echo "FollowFileSymlinks " "$FollowFileSymlinks"
- echo "SelfCheck " "$SelfCheck"
- echo "DetectPUA " "$DetectPUA"
- echo "ScanPE " "$ScanPE"
- echo "DisableCertCheck " "$DisableCertCheck"
- echo "ScanELF " "$ScanELF"
- echo "AlertBrokenExecutables " "$AlertBrokenExecutables"
- echo "ScanOLE2 " "$ScanOLE2"
- echo "ScanPDF " "$ScanPDF"
- echo "ScanSWF " "$ScanSWF"
- echo "ScanMail " "$ScanMail"
- echo "ScanPartialMessages " "$ScanPartialMessages"
- echo "ScanArchive " "$ScanArchive"
- echo "TemporaryDirectory " "$TemporaryDirectory"
- echo "AlertEncrypted " "$AlertEncrypted"
- echo "MaxFileSize " "$MaxFileSize"
- echo "LocalSocket " "$LocalSocket"
- echo "User " "$User"
- echo "ExitOnOOM " "$ExitOnOOM"
- echo "DatabaseDirectory " "$DatabaseDirectory"
- } > "$CLAMD_CONFIGFILE"
-
- procd_open_instance
- procd_set_param command $PROG -c $CLAMD_CONFIGFILE
- procd_set_param file $CLAMD_CONFIGFILE
- procd_close_instance
- }
-
- start_service()
- {
- validate_clamav_section clamav start_clamav_instance
- }
-
- stop_service()
- {
- service_stop $PROG
- }
-
- service_triggers()
- {
- procd_add_reload_trigger "clamav"
- procd_add_validation validate_clamav_section
- }
|