diff --git a/utils/bandwidthd/Makefile b/utils/bandwidthd/Makefile index 6ef14e52b..6cbace921 100644 --- a/utils/bandwidthd/Makefile +++ b/utils/bandwidthd/Makefile @@ -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 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 index 000000000..0f8768792 --- /dev/null +++ b/utils/bandwidthd/files/bandwidthd-pgsql.config @@ -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 index 000000000..232fa0cb8 --- /dev/null +++ b/utils/bandwidthd/files/bandwidthd-pgsql.init @@ -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 +} diff --git a/utils/bandwidthd/files/bandwidthd.config b/utils/bandwidthd/files/bandwidthd.config index 4bb18cf92..0769b1c8e 100644 --- a/utils/bandwidthd/files/bandwidthd.config +++ b/utils/bandwidthd/files/bandwidthd.config @@ -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 diff --git a/utils/bandwidthd/files/logo.gif b/utils/bandwidthd/files/logo.gif index 7b17cc6cb..2ffec5605 100644 Binary files a/utils/bandwidthd/files/logo.gif and b/utils/bandwidthd/files/logo.gif differ