123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- #!/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_validate_section clamav clamav "${1}" \
- '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' \
- 'DetectBrokenExecutables:string' \
- 'ScanOLE2:string' \
- 'ScanPDF:string' \
- 'ScanSWF:string' \
- 'ScanMail:string' \
- 'ScanPartialMessages:string' \
- 'ScanArchive:string' \
- 'TemporaryDirectory:string' \
- 'ArchiveBlockEncrypted:string' \
- 'MaxFileSize:string' \
- 'LocalSocket:string' \
- 'User:string' \
- 'ExitOnOOM:string'
- }
- start_service() {
- local clamd_config_file LogFile LogTime StreamMinPort \
- StreamMaxPort MaxThreads ReadTimeout CommandReadTimeout MaxDirectoryRecursion \
- FollowFileSymlinks FollowDirectorySymlinks SelfCheck DetectPUA ScanPE DisableCertCheck \
- ScanELF DetectBrokenExecutables ScanOLE2 ScanPDF ScanSWF ScanMail ScanPartialMessages \
- ScanArchive TemporaryDirectory ArchiveBlockEncrypted MaxFileSize LocalSocket User
- validate_clamav_section clamav || {
- echo "validation failed"
- return 1
- }
- mkdir -p /usr/share/clamav
- 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 > $CLAMD_CONFIGFILE
- echo "LogFileMaxSize " $LogFileMaxSize >> $CLAMD_CONFIGFILE
- echo "LogVerbose " $LogVerbose >> $CLAMD_CONFIGFILE
- echo "ExtendedDetectionInfo " $ExtendedDetectionInfo >> $CLAMD_CONFIGFILE
- echo "LogTime " $LogTime >> $CLAMD_CONFIGFILE
- echo "OfficialDatabaseOnly " $OfficialDatabaseOnly >> $CLAMD_CONFIGFILE
- echo "StreamMinPort " $StreamMinPort >> $CLAMD_CONFIGFILE
- echo "StreamMaxPort " $StreamMaxPort >> $CLAMD_CONFIGFILE
- echo "MaxThreads " $MaxThreads >> $CLAMD_CONFIGFILE
- echo "ReadTimeout " $ReadTimeout >> $CLAMD_CONFIGFILE
- echo "CommandReadTimeout " $CommandReadTimeout >> $CLAMD_CONFIGFILE
- echo "MaxDirectoryRecursion " $MaxDirectoryRecursion >> $CLAMD_CONFIGFILE
- echo "FollowDirectorySymlinks " $FollowDirectorySymlinks >> $CLAMD_CONFIGFILE
- echo "FollowFileSymlinks " $FollowFileSymlinks >> $CLAMD_CONFIGFILE
- echo "SelfCheck " $SelfCheck >> $CLAMD_CONFIGFILE
- echo "DetectPUA " $DetectPUA >> $CLAMD_CONFIGFILE
- echo "ScanPE " $ScanPE >> $CLAMD_CONFIGFILE
- echo "DisableCertCheck " $DisableCertCheck >> $CLAMD_CONFIGFILE
- echo "ScanELF " $ScanELF >> $CLAMD_CONFIGFILE
- echo "DetectBrokenExecutables " $DetectBrokenExecutables >> $CLAMD_CONFIGFILE
- echo "ScanOLE2 " $ScanOLE2 >> $CLAMD_CONFIGFILE
- echo "ScanPDF " $ScanPDF >> $CLAMD_CONFIGFILE
- echo "ScanSWF " $ScanSWF >> $CLAMD_CONFIGFILE
- echo "ScanMail " $ScanMail >> $CLAMD_CONFIGFILE
- echo "ScanPartialMessages " $ScanPartialMessages >> $CLAMD_CONFIGFILE
- echo "ScanArchive " $ScanArchive >> $CLAMD_CONFIGFILE
- echo "TemporaryDirectory " $TemporaryDirectory >> $CLAMD_CONFIGFILE
- echo "ArchiveBlockEncrypted " $ArchiveBlockEncrypted >> $CLAMD_CONFIGFILE
- echo "MaxFileSize " $MaxFileSize >> $CLAMD_CONFIGFILE
- echo "LocalSocket " $LocalSocket >> $CLAMD_CONFIGFILE
- echo "User " $User >> $CLAMD_CONFIGFILE
- echo "ExitOnOOM " $ExitOnOOM >> $CLAMD_CONFIGFILE
- procd_open_instance
- procd_set_param command $PROG -c $CLAMD_CONFIGFILE
- procd_set_param file $CLAMD_CONFIGFILE
- procd_close_instance
- }
- stop_service()
- {
- service_stop ${PROG}
- }
- service_triggers()
- {
- procd_add_reload_trigger "clamav"
- procd_add_validation validate_clamav_section
- }
|