define Package/bandwidthd/install
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/bandwidthd $(1)/usr/sbin/
- $(INSTALL_DIR) $(1)/etc
- $(INSTALL_DATA) $(PKG_BUILD_DIR)/etc/bandwidthd.conf $(1)/etc/
+ $(INSTALL_DIR) $(1)/etc/config
+ $(INSTALL_DATA) ./files/bandwidthd.config $(1)/etc/config/bandwidthd
+ $(INSTALL_DIR) $(1)/etc/init.d
+ $(INSTALL_BIN) ./files/bandwidthd.init $(1)/etc/init.d/bandwidthd
+ $(INSTALL_DIR) $(1)/www
+ $(INSTALL_DATA) $(PKG_BUILD_DIR)/htdocs/legend.gif $(1)/www/
endef
$(eval $(call BuildPackage,bandwidthd))
--- /dev/null
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2008 OpenWrt.org
+START=99
+
+config_cb() {
+ local cfg_type="$1"
+ local cfg_name="$2"
+
+ case "$cfg_type" in
+ bandwidthd)
+ append cfgs "$cfg_name"
+ ;;
+ esac
+}
+
+start() {
+ [ -d /tmp/bandwidthd ] || mkdir -p /tmp/bandwidthd && cp /www/ledgend.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 interface $cfg interface
+ config_get subnets $cfg interface
+ config_get skip_intervals $cfg skip_intervals
+ config_get graph_cutoff $cfg graph_cutoff
+ config_get promiscuous $cfg promiscuous
+ config_get output_cdf $cfg output_cdf
+ config_get recover_cdf $cfg recover_cdf
+ config_get filter $cfg filter
+ config_get graph $cfg graph
+ config_get meta_refresh $cfg meta_refresh
+ for subnet in $subnets
+ echo "subnet $subnet">> /tmp/bandwidthd.conf
+ done
+ cat >> /tmp/bandwidthd.conf <<EOF
+${interface:+ dev "$interface"}
+${skip_intervals:+ skip_intervals $skip_intervals}
+${graph_cutoff:+ graph_cutoff $graph_cutoff}
+${promiscuous:+ promiscuous $promiscuous}
+${output_cdf:+ output_cdf $output_cdf}
+${recover_cdf:+ recover_cdf $recover_cdf}
+${filter:+ filter $filter}
+${graph:+ graph $graph}
+${meta_refresh:+ meta_refresh $meta_refresh}
+EOF
+ done
+ bandwidthd
+}
+
+stop() {
+ killall bandwidthd
+}
+++ /dev/null
---- bandwidthd-2.0.1/graph.c.orig 2008-05-09 10:37:51.000000000 -0500
-+++ bandwidthd-2.0.1/graph.c 2008-05-09 10:37:55.000000000 -0500
-@@ -199,7 +199,7 @@
- int SubnetCounter;
- int Counter, tCounter;
- time_t WriteTime;
-- char filename[] = "./htdocs/index2.html";
-+ char filename[] = "/tmp/bandwidthd/index2.html";
- char *PeriodDesc;
-
- FILE *file;
-@@ -217,9 +217,9 @@
-
- if (config.tag == '1')
- {
-- if ((file = fopen("./htdocs/index.html", "wt")) == NULL)
-+ if ((file = fopen("/tmp/bandwidthd/index.html", "wt")) == NULL)
- {
-- syslog(LOG_ERR, "Failed to open ./htdocs/index.html");
-+ syslog(LOG_ERR, "Failed to open /tmp/bandwidthd/index.html");
- exit(1);
- }
- }
-@@ -307,7 +307,7 @@
- for (SubnetCounter = 0; SubnetCounter < SubnetCount; SubnetCounter++)
- {
- HostIp2CharIp(SubnetTable[SubnetCounter].ip, Buffer1);
-- sprintf(Buffer2, "./htdocs/Subnet-%c-%s.html", config.tag, Buffer1);
-+ sprintf(Buffer2, "/tmp/bandwidthd/Subnet-%c-%s.html", config.tag, Buffer1);
- file = fopen(Buffer2, "wt");
- fprintf(file, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\n");
- fprintf(file, "<HTML>\n<HEAD><TITLE>Bandwidthd - Subnet %s</TITLE>\n", Buffer1);
-@@ -411,12 +411,12 @@
- PrepareXAxis(im2, timestamp);
- PrepareYAxis(im2, YMax);
-
-- sprintf(outputfilename, "./htdocs/%s-%c-S.png", CharIp, config.tag);
-+ sprintf(outputfilename, "/tmp/bandwidthd/%s-%c-S.png", CharIp, config.tag);
- OutputFile = fopen(outputfilename, "wb");
- gdImagePng(im, OutputFile);
- fclose(OutputFile);
-
-- sprintf(outputfilename, "./htdocs/%s-%c-R.png", CharIp, config.tag);
-+ sprintf(outputfilename, "/tmp/bandwidthd/%s-%c-R.png", CharIp, config.tag);
- OutputFile = fopen(outputfilename, "wb");
- gdImagePng(im2, OutputFile);
- fclose(OutputFile);
-@@ -424,9 +424,9 @@
- else
- {
- // The graph isn't worth clutering up the web pages with
-- sprintf(outputfilename, "./htdocs/%s-%c-R.png", CharIp, config.tag);
-+ sprintf(outputfilename, "/tmp/bandwidthd/%s-%c-R.png", CharIp, config.tag);
- unlink(outputfilename);
-- sprintf(outputfilename, "./htdocs/%s-%c-S.png", CharIp, config.tag);
-+ sprintf(outputfilename, "/tmp/bandwidthd/%s-%c-S.png", CharIp, config.tag);
- unlink(outputfilename);
- }
-
---- bandwidthd-2.0.1/bandwidthd.c.orig 2008-05-09 10:06:37.000000000 -0500
-+++ bandwidthd-2.0.1/bandwidthd.c 2008-05-09 10:38:55.000000000 -0500
-@@ -333,10 +333,10 @@
-
- if (config.graph)
- {
-- bd_CollectingData("htdocs/index.html");
-- bd_CollectingData("htdocs/index2.html");
-- bd_CollectingData("htdocs/index3.html");
-- bd_CollectingData("htdocs/index4.html");
-+ bd_CollectingData("/tmp/bandwidthd/index.html");
-+ bd_CollectingData("/tmp/bandwidthd/index2.html");
-+ bd_CollectingData("/tmp/bandwidthd/index3.html");
-+ bd_CollectingData("/tmp/bandwidthd/index4.html");
- }
-
- /* detach from console. */