JFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr#!/bin/sh # 2004-01-25, Thomas Lamy # From Magnus Ekdahl's clamav-freshclam-handledaemon(8) # Adjust to be networkd-dispatcher compatible by # Sergio Durigan Junior set -e [ -f /var/lib/clamav/interface ] || exit 0 if [ -d /run/systemd/system ]; then INIT='systemctl' INIT_SUFFIX='clamav-freshclam' else INIT='invoke-rc.d clamav-freshclam' INIT_SUFFIX='' fi CLAMAV_CONF_FILE=/etc/clamav/clamd.conf FRESHCLAM_CONF_FILE=/etc/clamav/freshclam.conf INTERNETIFACE=$(cat /var/lib/clamav/interface) if grep -q freshclam /proc/*/stat 2>/dev/null; then IS_RUNNING=true else IS_RUNNING=false fi handle_ifupdown () { # $IFACE is set by ifup/down, $PPP_IFACE by pppd [ -n "$PPP_IFACE" ] && IFACE=$PPP_IFACE # This is sloppy - woody's pppd exports variables, while sid's passes them as # arguments and exports them. if [ "$1" = "$IFACE" ]; then # We're called by sid's pppd shift 6 # and we already know the interface fi # Dump the arguments passed. if [ -z "$1" ]; then case $(dirname "$0") in */if-up.d|*/ip-up.d) # Short circuit and exit early if freshclam is already running [ "$IS_RUNNING" = 'true' ] && exit 0 for interface in $INTERNETIFACE; do if [ "$interface" = "$IFACE" ]; then FMODE=start break else FMODE=skip fi done ;; */if-down.d|*/ip-down.d) # Short circuit and exit early if freshclam is not already running [ "$IS_RUNNING" = 'false' ] && exit 0 for interface in $INTERNETIFACE; do if [ "$interface" = "$IFACE" ]; then FMODE=stop break else FMODE=skip fi done ;; *) FMODE=skip ;; esac else FMODE="$1" fi case "$FMODE" in start|stop) IFACE="$IFACE" $INIT $FMODE $INIT_SUFFIX ;; skip) ;; *) echo "Usage: $0 {start|stop|skip}" >&2 exit 1 ;; esac } handle_networkd_dispatcher () { FOUND_IFACE=false for interface in $INTERNETIFACE; do if [ "$interface" = "$IFACE" ]; then FOUND_IFACE=true break fi done [ "$FOUND_IFACE" = 'false' ] && return FMODE="" case "$STATE" in "off") if [ "$IS_RUNNING" = 'true' ]; then FMODE="stop" fi ;; "routable") if [ "$IS_RUNNING" = 'false' ]; then FMODE="start" fi ;; *) return esac if [ -n "$FMODE" ]; then IFACE="$IFACE" $INIT $FMODE $INIT_SUFFIX fi } if [ -n "$STATE" ]; then handle_networkd_dispatcher "$@" else handle_ifupdown "$@" fi exit 0