#!/bin/sh /etc/rc.common
|
|
# Copyright (C) 2008-2011 OpenWrt.org
|
|
|
|
START=99
|
|
|
|
config_cb() {
|
|
local cfg_type="$1"
|
|
local cfg_name="$2"
|
|
|
|
case "$cfg_type" in
|
|
bandwidthd)
|
|
append cfgs "$cfg_name"
|
|
;;
|
|
esac
|
|
}
|
|
|
|
export_bool() {
|
|
local option="$1"
|
|
local section="$2"
|
|
local _loctmp
|
|
config_get_bool _loctmp "$section" "$option"
|
|
if [ -n "$_loctmp" ]; then
|
|
conffile="${conffile}$option "
|
|
if [ 1 -eq "$_loctmp" ]; then
|
|
conffile="${conffile}true"
|
|
else
|
|
conffile="${conffile}false"
|
|
fi
|
|
conffile="${conffile}\n"
|
|
fi
|
|
}
|
|
|
|
export_number() {
|
|
local option="$1"
|
|
local section="$2"
|
|
local _loctmp
|
|
config_get _loctmp "$section" "$option"
|
|
if [ -n "$_loctmp" ]; then
|
|
conffile="${conffile}$option ${_loctmp}\n"
|
|
fi
|
|
}
|
|
|
|
export_string() {
|
|
local option="$1"
|
|
local section="$2"
|
|
local _loctmp
|
|
config_get _loctmp "$section" "$option"
|
|
if [ -n "$_loctmp" ]; then
|
|
conffile="${conffile}$option \"${_loctmp}\"\n"
|
|
fi
|
|
}
|
|
|
|
start() {
|
|
local subnet conffile
|
|
|
|
[ -d /tmp/bandwidthd ] || mkdir -p /tmp/bandwidthd && cp /www/legend.gif /www/logo.gif /tmp/bandwidthd/
|
|
[ -e /htdocs ] || ln -s /tmp/bandwidthd /htdocs
|
|
[ -e /www/bandwidthd ] || ln -s /tmp/bandwidthd /www/bandwidthd
|
|
rm -f /tmp/bandwidthd.conf
|
|
touch /tmp/bandwidthd.conf
|
|
[ -e /etc/bandwidthd.conf ] || ln -s /tmp/bandwidthd.conf /etc/bandwidthd.conf
|
|
|
|
|
|
config_load bandwidthd
|
|
for cfg in $cfgs; do
|
|
config_get subnets $cfg subnets
|
|
for subnet in $subnets; do
|
|
conffile="${conffile}subnet ${subnet}\n"
|
|
done
|
|
export_string dev $cfg
|
|
export_number skip_intervals $cfg
|
|
export_number graph_cutoff $cfg
|
|
export_bool promiscuous $cfg
|
|
export_bool output_cdf $cfg
|
|
export_bool recover_cdf $cfg
|
|
export_string filter $cfg
|
|
export_bool graph $cfg
|
|
export_number meta_refresh $cfg
|
|
[ -n "$conffile" ] && echo -e "$conffile" >>/tmp/bandwidthd.conf
|
|
unset conffile
|
|
done
|
|
cd /
|
|
service_start /usr/sbin/bandwidthd
|
|
}
|
|
|
|
stop() {
|
|
service_stop /usr/sbin/bandwidthd
|
|
}
|