#!/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
|
|
}
|