lede-packages-rs

git clone git://archive.git.mtrnord.blog/MTRNord/lede-packages-rs.git
Log | Files | Refs | README | LICENSE

clamav.init (4105B)


      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_validate_section clamav clamav "${1}" \
     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 		'DetectBrokenExecutables:string' \
     34 		'ScanOLE2:string' \
     35 		'ScanPDF:string' \
     36 		'ScanSWF:string' \
     37 		'ScanMail:string' \
     38 		'ScanPartialMessages:string' \
     39 		'ScanArchive:string' \
     40 		'TemporaryDirectory:string' \
     41 		'ArchiveBlockEncrypted:string' \
     42 		'MaxFileSize:string' \
     43 		'LocalSocket:string' \
     44 		'User:string' \
     45 		'ExitOnOOM:string' \
     46 		'DatabaseDirectory:string'
     47 }
     48 
     49 start_service() {
     50 	local clamd_config_file LogFile LogTime StreamMinPort \
     51 		StreamMaxPort MaxThreads ReadTimeout CommandReadTimeout MaxDirectoryRecursion \
     52 		FollowFileSymlinks FollowDirectorySymlinks SelfCheck DetectPUA ScanPE DisableCertCheck \
     53 		ScanELF DetectBrokenExecutables ScanOLE2 ScanPDF ScanSWF ScanMail ScanPartialMessages \
     54 		ScanArchive TemporaryDirectory ArchiveBlockEncrypted MaxFileSize LocalSocket User \
     55 		DatabaseDirectory
     56 
     57 	validate_clamav_section clamav || {
     58 		echo "validation failed"
     59 		return 1
     60 	}
     61 
     62 	mkdir -p $DatabaseDirectory
     63 	mkdir -p /etc/clamav/
     64 	mkdir -p /var/run/clamav/
     65 	chmod a+rw /var/run/clamav
     66 
     67 	mkdir -p $(dirname $CLAMD_CONFIGFILE)
     68 	ln -sf $clamd_config_file $CLAMD_CONFIGFILE
     69 
     70 	echo "LogFile " $LogFile > $CLAMD_CONFIGFILE
     71 	echo "LogFileMaxSize " $LogFileMaxSize >> $CLAMD_CONFIGFILE
     72 	echo "LogVerbose " $LogVerbose >> $CLAMD_CONFIGFILE
     73 	echo "ExtendedDetectionInfo " $ExtendedDetectionInfo >> $CLAMD_CONFIGFILE
     74 	echo "LogTime " $LogTime >> $CLAMD_CONFIGFILE
     75 	echo "OfficialDatabaseOnly " $OfficialDatabaseOnly >> $CLAMD_CONFIGFILE
     76 	echo "StreamMinPort " $StreamMinPort >> $CLAMD_CONFIGFILE
     77 	echo "StreamMaxPort " $StreamMaxPort >> $CLAMD_CONFIGFILE
     78 	echo "MaxThreads " $MaxThreads >> $CLAMD_CONFIGFILE
     79 	echo "ReadTimeout " $ReadTimeout >> $CLAMD_CONFIGFILE
     80 	echo "CommandReadTimeout " $CommandReadTimeout >> $CLAMD_CONFIGFILE
     81 	echo "MaxDirectoryRecursion " $MaxDirectoryRecursion >> $CLAMD_CONFIGFILE
     82 	echo "FollowDirectorySymlinks " $FollowDirectorySymlinks >> $CLAMD_CONFIGFILE
     83 	echo "FollowFileSymlinks " $FollowFileSymlinks >> $CLAMD_CONFIGFILE
     84 	echo "SelfCheck " $SelfCheck >> $CLAMD_CONFIGFILE
     85 	echo "DetectPUA " $DetectPUA >> $CLAMD_CONFIGFILE
     86 	echo "ScanPE " $ScanPE >> $CLAMD_CONFIGFILE
     87 	echo "DisableCertCheck " $DisableCertCheck >> $CLAMD_CONFIGFILE
     88 	echo "ScanELF " $ScanELF >> $CLAMD_CONFIGFILE
     89 	echo "DetectBrokenExecutables " $DetectBrokenExecutables >> $CLAMD_CONFIGFILE
     90 	echo "ScanOLE2 " $ScanOLE2 >> $CLAMD_CONFIGFILE
     91 	echo "ScanPDF " $ScanPDF >> $CLAMD_CONFIGFILE
     92 	echo "ScanSWF " $ScanSWF >> $CLAMD_CONFIGFILE
     93 	echo "ScanMail " $ScanMail >> $CLAMD_CONFIGFILE
     94 	echo "ScanPartialMessages " $ScanPartialMessages >> $CLAMD_CONFIGFILE
     95 	echo "ScanArchive " $ScanArchive >> $CLAMD_CONFIGFILE
     96 	echo "TemporaryDirectory " $TemporaryDirectory >> $CLAMD_CONFIGFILE
     97 	echo "ArchiveBlockEncrypted " $ArchiveBlockEncrypted >> $CLAMD_CONFIGFILE
     98 	echo "MaxFileSize " $MaxFileSize >> $CLAMD_CONFIGFILE
     99 	echo "LocalSocket " $LocalSocket >> $CLAMD_CONFIGFILE
    100 	echo "User " $User >> $CLAMD_CONFIGFILE
    101 	echo "ExitOnOOM " $ExitOnOOM >> $CLAMD_CONFIGFILE
    102 	echo "DatabaseDirectory " $DatabaseDirectory >> $CLAMD_CONFIGFILE
    103 
    104 	procd_open_instance
    105 	procd_set_param command $PROG -c $CLAMD_CONFIGFILE
    106 	procd_set_param file $CLAMD_CONFIGFILE
    107 	procd_close_instance
    108 }
    109 
    110 stop_service()
    111 {
    112 	service_stop ${PROG}
    113 }
    114 
    115 service_triggers()
    116 {
    117 	procd_add_reload_trigger "clamav"
    118 	procd_add_validation validate_clamav_section
    119 }