123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 |
- #!/bin/sh /etc/rc.common
- # Copyright (C) 2008-2017 OpenWrt.org
- START=99
- USE_PROCD=1
- CONFIGNAME="bandwidthd"
- CONFIGPHPNAME="bandwidthd-php"
- CONFIGFILE="/tmp/etc/bandwidthd.conf"
- CONFIGPHPFILE="/tmp/etc/bandwidthd-php.conf"
- 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
- }
- set_conf_file() {
- local subnet conffile="# auto-generated config file from /etc/config/${CONFIGNAME}\n"
- [ -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 $CONFIGFILE
- touch $CONFIGFILE
- [ -e /etc/bandwidthd.conf ] || ln -s $CONFIGFILE /etc/bandwidthd.conf
- config_load $CONFIGNAME
- 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
- export_string pgsql_connect_string $cfg
- export_string sqlite_filename $cfg
- export_string sensor_id $cfg
- [ -n "$conffile" ] && echo -e "$conffile" >>$CONFIGFILE
- unset conffile
- done
- cd /
- }
- set_php_conf_file() {
- local subnet conffile="<?php\n// auto-generated config file from /etc/config/${CONFIGPHPNAME}\n"
- rm -f $CONFIGPHPFILE
- touch $CONFIGPHPFILE
- config_load $CONFIGPHPNAME
- for cfg in $cfgs; do
- export_number dflt_width $cfg
- conffile="${conffile}define(\"DFLT_WIDTH\", ${paramstr:-"900"});\n"
- export_number dflt_height $cfg
- conffile="${conffile}define(\"DFLT_HEIGHT\", ${paramstr:-"256"});\n"
- export_string dflt_interval $cfg
- conffile="${conffile}define(\"DFLT_INTERVAL\", ${paramstr:-"INT_DAILY"});\n\n"'$db_connect_string = "sqlite:'
- export_string sqlite_dbname $cfg
- conffile="${conffile}${paramstr:-"/www/bandwidthd/stats.db"}"'"'"\n?>"
- [ -n "$conffile" ] && echo -e "$conffile" >>$CONFIGPHPFILE
- done
- cd /
- }
- service_triggers() {
- procd_add_reload_trigger $CONFIGNAME
- procd_add_reload_trigger $CONFIGPHPNAME
- }
- start_service() {
- set_conf_file
- set_php_conf_file
- procd_open_instance
- procd_set_param command /usr/sbin/bandwidthd
- procd_close_instance
- }
- stop_service() {
- service_stop /usr/sbin/bandwidthd
- }
|