aboutsummaryrefslogtreecommitdiffstats
path: root/package/network/config/qos-scripts/files
diff options
context:
space:
mode:
authorJo-Philipp Wich <jo@mein.io>2020-05-29 10:34:58 +0200
committerJo-Philipp Wich <jo@mein.io>2020-05-29 10:37:13 +0200
commitc963e4267b916fa3b074b5ae1f5b5d2b9fc0af68 (patch)
treed8deb19a196211a34bbd85dd87c7c852ce58c5f9 /package/network/config/qos-scripts/files
parent31de4a40e758f384e89b592806a64130833cac35 (diff)
downloadupstream-c963e4267b916fa3b074b5ae1f5b5d2b9fc0af68.tar.gz
upstream-c963e4267b916fa3b074b5ae1f5b5d2b9fc0af68.tar.bz2
upstream-c963e4267b916fa3b074b5ae1f5b5d2b9fc0af68.zip
qos-scripts: fix interface resolving
Also ensure that the error message is actually printed to stderr and that the rule generation is aborted if an interface cannot be resolved. Ref: https://github.com/openwrt/luci/issues/3975 Signed-off-by: Jo-Philipp Wich <jo@mein.io> (cherry picked from commit 559b3384666bbc6e4e9e6d86cf54bd88d30b341f)
Diffstat (limited to 'package/network/config/qos-scripts/files')
-rwxr-xr-xpackage/network/config/qos-scripts/files/usr/lib/qos/generate.sh20
1 files changed, 13 insertions, 7 deletions
diff --git a/package/network/config/qos-scripts/files/usr/lib/qos/generate.sh b/package/network/config/qos-scripts/files/usr/lib/qos/generate.sh
index 3ec7f80e53..024be0c170 100755
--- a/package/network/config/qos-scripts/files/usr/lib/qos/generate.sh
+++ b/package/network/config/qos-scripts/files/usr/lib/qos/generate.sh
@@ -22,15 +22,20 @@ add_insmod() {
[ -e /etc/config/network ] && {
# only try to parse network config on openwrt
- find_ifname() {(
- reset_cb
- include /lib/network
- scan_interfaces
- config_get "$1" ifname
- )}
+ . /lib/functions/network.sh
+
+ find_ifname() {
+ local ifname
+ if network_get_device ifname "$1"; then
+ echo "$ifname"
+ else
+ echo "Device for interface $1 not found." >&2
+ exit 1
+ fi
+ }
} || {
find_ifname() {
- echo "Interface not found."
+ echo "Interface not found." >&2
exit 1
}
}
@@ -218,6 +223,7 @@ qos_parse_config() {
config_get device "$1" device
[ -z "$device" ] && {
device="$(find_ifname $1)"
+ [ -z "$device" ] && exit 1
config_set "$1" device "$device"
}
}