bandwidthd: Addition of a variant of the bandwidthd package. 1942/head
authorJean-Michel Lacroix <lacroix@lepine-lacroix.info>
Tue, 10 Nov 2015 20:13:52 +0000 (15:13 -0500)
committerJean-Michel Lacroix <lacroix@lepine-lacroix.info>
Tue, 10 Nov 2015 20:13:52 +0000 (15:13 -0500)
Addition of the bandwidthd-pgsql package variant that can save also
in a postgres database.

Modification of bandwidthd.config to have the default IP address
of an OpenWrt router (192.168.1.1)

Addition of a small OpenWrt logo in the logo.gif

Compile tested on CC and trunk (ar71xx and mvebu in both cases)
run tested on CC (ar71xx) and trunk (r47397 on mvebu)

Signed-off-by: Jean-Michel Lacroix <lacroix@lepine-lacroix.info>
utils/bandwidthd/Makefile
utils/bandwidthd/files/bandwidthd-pgsql.config [new file with mode: 0644]
utils/bandwidthd/files/bandwidthd-pgsql.init [new file with mode: 0644]
utils/bandwidthd/files/bandwidthd.config
utils/bandwidthd/files/logo.gif

index 6ef14e52b11b7900fda1485ddb1c5dc07d7f398b..6cbace921c468520d7035bf86a05c510852a1ecf 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=bandwidthd
 PKG_VERSION:=2.0.1
-PKG_RELEASE:=4
+PKG_RELEASE:=5
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tgz
 PKG_SOURCE_URL:=@SF/bandwidthd
@@ -18,22 +18,50 @@ PKG_MD5SUM:=aa79aad7bd489fd2cae1f7dc086ca8b6
 PKG_MAINTAINER:=Jean-Michel Lacroix <lacroix@lepine-lacroix.info>
 
 PKG_LICENSE:=GPL-2.0
-PKG_LICENSE_FILES:=
+
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
 
 include $(INCLUDE_DIR)/package.mk
 
-define Package/bandwidthd
+define Package/bandwidthd/Default
   SECTION:=utils
   CATEGORY:=Utilities
   TITLE:=Bandwidthd
   URL:=http://bandwidthd.sourceforge.net/
+endef
+
+define Package/bandwidthd
+$(call Package/bandwidthd/Default)
+  TITLE += (without postgresql)
+  VARIANT:=no-pgsql
   DEPENDS:=+libgd +libpcap
 endef
 
+define Package/bandwidthd-pgsql
+$(call Package/bandwidthd/Default)
+  TITLE += (with postgresql enabled)
+  VARIANT:=pgsql
+  DEPENDS:=+libgd +libpcap +libpq
+endef
+
+define Package/bandwidthd/description
+  A bandwidthd tracking utility.
+endef
+
+define Package/bandwidthd-pgsql/description
+$(call Package/bandwidthd/description)
+With the ability to store in a postgresql database.
+endef
+
 define Package/bandwidthd/daemon
  This package contains bandwidthd a bandwith tracking utility.
 endef
 
+define Package/bandwidthd-pgsql/daemon
+ This package contains bandwidthd a bandwith tracking utility.
+endef
+
+ifeq ($(BUILD_VARIANT),no-pgsql)
 CONFIGURE_ARGS += \
        ac_cv_file__sw_lib=no \
        ac_cv_file__sw_include=no \
@@ -41,7 +69,18 @@ CONFIGURE_ARGS += \
        ac_cv_file__usr_pkg_include=no \
        ac_cv_file__usr_local_pgsql_lib=no \
        ac_cv_file__usr_local_pgsql_include=no \
-       ac_cv_lib_pq_PQconnectdb=no \
+       ac_cv_lib_pq_PQconnectdb=no 
+endif
+
+ifeq ($(BUILD_VARIANT),pgsql)
+CONFIGURE_ARGS += \
+        ac_cv_file__sw_lib=no \
+        ac_cv_file__sw_include=no \
+        ac_cv_file__usr_pkg_lib=no \
+        ac_cv_file__usr_pkg_include=no \
+        ac_cv_file__usr_local_pgsql_lib=no \
+        ac_cv_file__usr_local_pgsql_include=no
+endif
 
 EXTRA_CFLAGS+= $(TARGET_CPPFLAGS)
 EXTRA_LDFLAGS+= $(TARGET_LDFLAGS) -Wl,-rpath-link,$(STAGING_DIR)/usr/lib
@@ -58,8 +97,28 @@ define Package/bandwidthd/install
        $(INSTALL_DATA) $(PKG_BUILD_DIR)/htdocs/logo.gif $(1)/www/
 endef
 
+define Package/bandwidthd-pgsql/install
+       $(INSTALL_DIR) $(1)/usr/sbin
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/bandwidthd $(1)/usr/sbin/
+       $(INSTALL_DIR) $(1)/etc/config
+       $(INSTALL_DATA) ./files/bandwidthd-pgsql.config $(1)/etc/config/bandwidthd
+       $(INSTALL_DIR) $(1)/etc/init.d
+       $(INSTALL_BIN) ./files/bandwidthd-pgsql.init $(1)/etc/init.d/bandwidthd
+       $(INSTALL_DIR) $(1)/www/phphtdocs
+       $(INSTALL_DATA) $(PKG_BUILD_DIR)/htdocs/legend.gif $(1)/www/
+       $(INSTALL_DATA) ./files/logo.gif $(1)/www/
+       $(INSTALL_DIR) $(1)/usr/share/postgresql
+       $(INSTALL_DATA) $(PKG_BUILD_DIR)/schema.postgresql $(1)/usr/share/postgresql
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/phphtdocs/bd_pgsql_purge.sh $(1)/usr/share/postgresql
+endef
+
 define Package/bandwidthd/conffiles
 /etc/config/bandwidthd
 endef
 
+define Package/bandwidthd-pgsql/conffiles
+/etc/config/bandwidthd
+endef
+
 $(eval $(call BuildPackage,bandwidthd))
+$(eval $(call BuildPackage,bandwidthd-pgsql))
diff --git a/utils/bandwidthd/files/bandwidthd-pgsql.config b/utils/bandwidthd/files/bandwidthd-pgsql.config
new file mode 100644 (file)
index 0000000..0f87687
--- /dev/null
@@ -0,0 +1,13 @@
+config bandwidthd
+       option dev      br-lan
+       option subnets          "192.168.1.0/24"
+       option skip_intervals   0
+       option graph_cutoff     1024
+       option promiscuous      true
+       option output_cdf       false
+       option recover_cdf      false
+       option filter           ip
+       option graph            true
+       option meta_refresh     150
+       option disabled_pgsql_connect_string    "user = postgres dbname = bandwidthd host = 192.168.1.1"
+       option disabled_sensor_id       "openwrt.mydomain.domain"
diff --git a/utils/bandwidthd/files/bandwidthd-pgsql.init b/utils/bandwidthd/files/bandwidthd-pgsql.init
new file mode 100644 (file)
index 0000000..232fa0c
--- /dev/null
@@ -0,0 +1,90 @@
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2008-2015 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
+               export_string pgsql_connect_string $cfg
+               export_string sensor_id $cfg
+               [ -n "$conffile" ] && echo -e "$conffile" >>/tmp/bandwidthd.conf
+               unset conffile
+       done
+       cd /
+       service_start /usr/sbin/bandwidthd
+}
+
+stop() {
+       service_stop /usr/sbin/bandwidthd
+}
index 4bb18cf92d23ab6bb7612cfcf768bf65c3fdc6cf..0769b1c8eaded84bfb10f17a5f8776c74398689b 100644 (file)
@@ -1,6 +1,6 @@
 config bandwidthd
        option dev      br-lan
-       option subnets          "192.168.0.0/16 10.0.0.0/8 172.16.0.0/12"
+       option subnets          "192.168.1.0/24"
        option skip_intervals   0
        option graph_cutoff     1024
        option promiscuous      true
index 7b17cc6cbc70b45aa4b21bcf6bb3f6d6462760e7..2ffec5605b72c48f49d8ee3dc069e80baccd6aa7 100644 (file)
Binary files a/utils/bandwidthd/files/logo.gif and b/utils/bandwidthd/files/logo.gif differ