Thu, 04 Oct 2012 20:30:05 +0200
Correct out of date build configuration, porting to Solaris 11 network
link infrastructure and new libpcap logic. This additionally allows for
device drivers in subdirectories of /dev. Correct packaged nmap
personalities and signatures to work out of the box. Finally, hack
arpd logic to properly close sockets and quit on TERM by repeating
signaling in the run command script. Sadly, all this fails to correct
the run time behaviour of honeyd which fails to bind to the IP layer.
michael@227 | 1 | #!@l_prefix@/bin/openpkg rc |
michael@227 | 2 | ## |
michael@227 | 3 | ## rc.clamav -- Run-Commands |
michael@227 | 4 | ## |
michael@227 | 5 | |
michael@227 | 6 | %config |
michael@227 | 7 | clamav_enable="$openpkg_rc_def" |
michael@227 | 8 | clamav_daemons="clamd clamav-milter" |
michael@227 | 9 | clamav_clamd_flags="" |
michael@227 | 10 | clamav_clamav_milter_flags="" |
michael@227 | 11 | clamav_update="daily" |
michael@227 | 12 | clamav_log_prolog="true" |
michael@227 | 13 | clamav_log_epilog="true" |
michael@227 | 14 | clamav_log_numfiles="10" |
michael@227 | 15 | clamav_log_minsize="1M" |
michael@227 | 16 | clamav_log_complevel="9" |
michael@227 | 17 | |
michael@227 | 18 | %common |
michael@227 | 19 | clamav_cfgfile="@l_prefix@/etc/clamav/clamd.conf" |
michael@234 | 20 | clamav_milter_cfgfile="@l_prefix@/etc/clamav/clamav-milter.conf" |
michael@227 | 21 | clamav_pidfile_clamd="@l_prefix@/var/clamav/clamd.pid" |
michael@227 | 22 | clamav_pidfile_clamav_milter="@l_prefix@/var/clamav/clamav-milter.pid" |
michael@227 | 23 | clamav_signal () { |
michael@227 | 24 | [ -f $clamav_pidfile_clamd ] \ |
michael@227 | 25 | && kill -$1 `cat $clamav_pidfile_clamd` |
michael@227 | 26 | local rc_clamav_clamd=$? |
michael@227 | 27 | [ -f $clamav_pidfile_clamav_milter ] \ |
michael@227 | 28 | && kill -$1 `cat $clamav_pidfile_clamav_milter` |
michael@227 | 29 | local rc_clamav_clamav_milter=$? |
michael@227 | 30 | [ $rc_clamav_clamd -eq 0 \ |
michael@227 | 31 | -o $rc_clamav_clamav_milter -eq 0 ] |
michael@227 | 32 | } |
michael@227 | 33 | |
michael@227 | 34 | %status -u @l_rusr@ -o |
michael@227 | 35 | clamav_usable="unknown" |
michael@227 | 36 | clamav_active="no" |
michael@227 | 37 | rcService clamav enable yes && \ |
michael@227 | 38 | clamav_signal 0 && clamav_active="yes" |
michael@227 | 39 | echo "clamav_enable=\"$clamav_enable\"" |
michael@227 | 40 | echo "clamav_usable=\"$clamav_usable\"" |
michael@227 | 41 | echo "clamav_active=\"$clamav_active\"" |
michael@227 | 42 | |
michael@227 | 43 | %start -u @l_rusr@ |
michael@227 | 44 | rcService clamav enable yes || exit 0 |
michael@227 | 45 | rcService clamav active yes && exit 0 |
michael@227 | 46 | for daemon in $clamav_daemons; do |
michael@227 | 47 | if [ ".$daemon" = ".clamd" ]; then |
michael@227 | 48 | @l_prefix@/sbin/clamd \ |
michael@227 | 49 | --config-file=$clamav_cfgfile \ |
michael@227 | 50 | $clamav_clamd_flags |
michael@227 | 51 | elif [ ".$daemon" = ".clamav-milter" -a -x @l_prefix@/sbin/clamav-milter ]; then |
michael@227 | 52 | ( umask 002 |
michael@227 | 53 | @l_prefix@/sbin/clamav-milter \ |
michael@234 | 54 | --config-file=$clamav_milter_cfgfile \ |
michael@234 | 55 | $clamav_clamav_milter_flags |
michael@227 | 56 | ) || exit $? |
michael@227 | 57 | fi |
michael@227 | 58 | done |
michael@227 | 59 | |
michael@227 | 60 | %stop -u @l_rusr@ |
michael@227 | 61 | rcService clamav enable yes || exit 0 |
michael@227 | 62 | rcService clamav active no && exit 0 |
michael@227 | 63 | clamav_signal TERM |
michael@227 | 64 | rm -f $clamav_pidfile_clamd 2>/dev/null || true |
michael@227 | 65 | rm -f $clamav_pidfile_clamav_milter 2>/dev/null || true |
michael@227 | 66 | |
michael@227 | 67 | %restart -u @l_rusr@ |
michael@227 | 68 | rcService clamav enable yes || exit 0 |
michael@227 | 69 | rcService clamav active no && exit 0 |
michael@227 | 70 | rc clamav stop |
michael@227 | 71 | sleep 2 |
michael@227 | 72 | rc clamav start |
michael@227 | 73 | |
michael@227 | 74 | %quarterly -u @l_rusr@ |
michael@227 | 75 | rcService clamav enable yes || exit 0 |
michael@227 | 76 | if [ ".$clamav_update" = .quarterly ]; then |
michael@227 | 77 | @l_prefix@/bin/freshclam |
michael@227 | 78 | if [ $? -ge 10 ]; then exit $?; fi |
michael@227 | 79 | fi |
michael@227 | 80 | |
michael@227 | 81 | %hourly -u @l_rusr@ |
michael@227 | 82 | rcService clamav enable yes || exit 0 |
michael@227 | 83 | if [ ".$clamav_update" = .hourly ]; then |
michael@227 | 84 | @l_prefix@/bin/freshclam |
michael@227 | 85 | if [ $? -ge 10 ]; then exit $?; fi |
michael@227 | 86 | fi |
michael@227 | 87 | |
michael@227 | 88 | %daily -u @l_rusr@ |
michael@227 | 89 | rcService clamav enable yes || exit 0 |
michael@227 | 90 | if [ ".$clamav_update" = .daily ]; then |
michael@227 | 91 | @l_prefix@/bin/freshclam |
michael@227 | 92 | if [ $? -ge 10 ]; then exit $?; fi |
michael@227 | 93 | fi |
michael@227 | 94 | logfiles="" |
michael@227 | 95 | for daemon in freshclam $clamav_daemons; do |
michael@227 | 96 | logfiles="$logfiles @l_prefix@/var/clamav/$daemon.log" |
michael@227 | 97 | done |
michael@227 | 98 | shtool rotate -f \ |
michael@227 | 99 | -n $clamav_log_numfiles -s $clamav_log_minsize -d \ |
michael@227 | 100 | -z $clamav_log_complevel -o @l_rusr@ -g @l_rgrp@ -m 644 \ |
michael@227 | 101 | -P "$clamav_log_prolog" \ |
michael@227 | 102 | -E "$clamav_log_epilog; rc clamav restart" \ |
michael@227 | 103 | $logfiles |
michael@227 | 104 | |
michael@227 | 105 | %weekly -u @l_rusr@ |
michael@227 | 106 | rcService clamav enable yes || exit 0 |
michael@227 | 107 | if [ ".$clamav_update" = .weekly ]; then |
michael@227 | 108 | @l_prefix@/bin/freshclam |
michael@227 | 109 | if [ $? -ge 10 ]; then exit $?; fi |
michael@227 | 110 | fi |
michael@227 | 111 |