From patchwork Tue Aug 22 10:44:07 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [v8] simple-tc: Fix simple-tc not being active if set From: Adrian Schmutzler X-Patchwork-Id: 447 Message-Id: <1503398647-1723-1-git-send-email-freifunk@adrianschmutzler.de> To: franken-dev@freifunk.net Date: Tue, 22 Aug 2017 12:44:07 +0200 Fixes: #55 This reintroduces the broken simple-tc. Changes in v8: - Updated dependencies - Removed network restart from settings.html (Takes very long on some devices) Signed-off-by: Adrian Schmutzler --- src/packages/fff/fff-network/Makefile | 4 ++-- .../files/etc/hotplug.d/iface/50-fff-simple-tc | 25 ++++++++++++++++++++++ src/packages/fff/fff-web/Makefile | 2 +- .../fff-web/files/www/ssl/cgi-bin/settings.html | 3 ++- 4 files changed, 30 insertions(+), 4 deletions(-) create mode 100644 src/packages/fff/fff-network/files/etc/hotplug.d/iface/50-fff-simple-tc diff --git a/src/packages/fff/fff-network/Makefile b/src/packages/fff/fff-network/Makefile index d34016c..e19c4f1 100644 --- a/src/packages/fff/fff-network/Makefile +++ b/src/packages/fff/fff-network/Makefile @@ -1,7 +1,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=fff-network -PKG_VERSION:=0.0.7 +PKG_VERSION:=0.0.8 PKG_RELEASE:=1 PKG_BUILD_DIR:=$(BUILD_DIR)/fff-network @@ -13,7 +13,7 @@ define Package/fff-network CATEGORY:=Freifunk TITLE:= Freifunk-Franken network configuration URL:=http://www.freifunk-franken.de - DEPENDS:=+fff-uradvd +fff-boardname + DEPENDS:=+fff-uradvd +fff-boardname +simple-tc endef define Package/fff-network/description diff --git a/src/packages/fff/fff-network/files/etc/hotplug.d/iface/50-fff-simple-tc b/src/packages/fff/fff-network/files/etc/hotplug.d/iface/50-fff-simple-tc new file mode 100644 index 0000000..ef8bd17 --- /dev/null +++ b/src/packages/fff/fff-network/files/etc/hotplug.d/iface/50-fff-simple-tc @@ -0,0 +1,25 @@ +[ "$ACTION" = 'ifup' ] || exit 0 + +config_load simple-tc + +tc_interface() { + local iface="$1" + + config_get ifname "$iface" ifname + + [ "$INTERFACE" = "$ifname" ] || return + + config_get_bool enabled "$iface" enabled 0 + + [ "$enabled" -eq 1 ] || return + + config_get limit_ingress "$iface" limit_ingress + config_get limit_egress "$iface" limit_egress + + [ "$limit_ingress" ] || limit_ingress=- + [ "$limit_egress" ] || limit_egress=- + + simple-tc "$DEVICE" "$limit_ingress" "$limit_egress" +} + +config_foreach tc_interface 'interface' diff --git a/src/packages/fff/fff-web/Makefile b/src/packages/fff/fff-web/Makefile index 723d9a9..bd5dd70 100644 --- a/src/packages/fff/fff-web/Makefile +++ b/src/packages/fff/fff-web/Makefile @@ -13,7 +13,7 @@ define Package/fff-web CATEGORY:=Freifunk TITLE:= Freifunk-Franken Webinterface URL:=http://www.freifunk-franken.de - DEPENDS:=+uhttpd +libustream-mbedtls +haserl +px5g +simple-tc +fff-boardname + DEPENDS:=+uhttpd +libustream-mbedtls +haserl +px5g +fff-boardname +fff-network endef define Package/fff-web/description diff --git a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/settings.html b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/settings.html index abfbf52..44fe3f4 100755 --- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/settings.html +++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/settings.html @@ -23,7 +23,7 @@ if [ "$REQUEST_METHOD" == "POST" ] ; then # Bitratenbegrenzung if [ "$POST_traffic_limit" == "on" ] ; then - uci -q set "simple-tc.example.ifname=$(uci -q get network.wan.ifname)" + uci -q set "simple-tc.example.ifname=wan" uci -q set "simple-tc.example.enabled=1" else uci -q set "simple-tc.example.enabled=0" @@ -32,6 +32,7 @@ if [ "$REQUEST_METHOD" == "POST" ] ; then uci -q set "simple-tc.example.limit_egress=${POST_limit_egress}" uci commit + MSG='Daten gespeichert! - Bitte Router neustarten.' fi fi