#!/bin/sh /etc/rc.common # Copyright (C) 2007-2016 OpenWrt.org START=60 APP=darkstat RUN_D=/var/empty PID_F=$RUN_D/darkstat.pid SYSLOG="" VERBOSE="" NODAEMON="" NOPROMISC="" NODNS="" NOMACS="" NOLASTSEEN="" LOCAL="" paramstr="" export_bool () { local option="$1" local section="$2" local _keystr="$3" local _loctmp paramstr="" config_get_bool _loctmp "$section" "$option" if [ -n "$_loctmp" ]; then if [ 1 -eq "$_loctmp" ]; then paramstr="${_keystr} " fi fi } start() { mkdir -p $RUN_D . /lib/functions/network.sh config_load darkstat config_foreach start_darkstat darkstat } start_darkstat() { local cfg="$1" config_get interface $cfg interface export_bool syslog $cfg "--syslog" SYSLOG=$paramstr export_bool verbose $cfg "--verbose" VERBOSE=$paramstr export_bool no_daemon $cfg "--no-daemon" NODAEMON=$paramstr export_bool no_promisc $cfg "--no-promisc" NOPROMISC=$paramstr export_bool no_dns $cfg "--no-dns" NODNS=$paramstr export_bool no_macs $cfg "--no-macs" NOMACS=$paramstr export_bool no_lastseen $cfg "--no-lastseen" NOLASTSEEN=$paramstr config_get httpaddr $cfg httpaddr config_get httpport $cfg httpport config_get network_filter $cfg network_filter config_get network_netmask $cfg network_netmask export_bool local_only $cfg "--local-only" LOCAL=$paramstr config_get hosts_max $cfg hosts_max config_get hosts_keep $cfg hosts_keep config_get ports_max $cfg ports_max config_get ports_keep $cfg ports_keep config_get highest_port $cfg highest_port network_get_device ifname "$interface" && { /usr/sbin/$APP -i "$ifname" \ ${SYSLOG} \ ${VERBOSE} \ ${NODAEMON} \ ${NOPROMISC} \ ${NODNS} \ ${NOMACS} \ ${NOLASTSEEN} \ ${httpaddr:+-b "$httpaddr"} \ ${httpport:+-p "$httpport"} \ ${network_filter:+-f "$network_filter"} \ ${network_netmask:+-l "$network_netmask"} \ ${LOCAL} \ ${hosts_max:+--hosts-max "$hosts_max"} \ ${hosts_keep:+--hosts-keep "$hosts_keep"} \ ${ports_max:+--ports-max "$ports_max"} \ ${ports_keep:+--ports-keep "$ports_keep"} \ ${highest_port:+--highest-port "$highest_port"} \ --chroot $RUN_D \ --pidfile $PID_F } } stop() { start-stop-daemon -K -n $APP -p $PID_F -s TERM rm -f $PID_F }