You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

97 lines
2.2 KiB

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