Use run_command instead of system

and explicitly note that those calls are allowed to fail and
are wrapped in eval {} on purpose.
This commit is contained in:
Fabian Grünbichler 2016-05-02 15:03:03 +02:00 committed by Dietmar Maurer
parent a7f30ebf27
commit 2d6b3a90db

View File

@ -76,10 +76,11 @@ our $ipv4_mask_hash_localnet = {
sub setup_tc_rate_limit {
my ($iface, $rate, $burst, $debug) = @_;
system("/sbin/tc class del dev $iface parent 1: classid 1:1 >/dev/null 2>&1");
system("/sbin/tc filter del dev $iface parent ffff: protocol all pref 50 u32 >/dev/null 2>&1");
system("/sbin/tc qdisc del dev $iface ingress >/dev/null 2>&1");
system("/sbin/tc qdisc del dev $iface root >/dev/null 2>&1");
# these are allowed / expected to fail, e.g. when there is no previous rate limit to remove
eval { run_command("/sbin/tc class del dev $iface parent 1: classid 1:1 >/dev/null 2>&1"); };
eval { run_command("/sbin/tc filter del dev $iface parent ffff: protocol all pref 50 u32 >/dev/null 2>&1"); };
eval { run_command("/sbin/tc qdisc del dev $iface ingress >/dev/null 2>&1"); };
eval { run_command("/sbin/tc qdisc del dev $iface root >/dev/null 2>&1"); };
return if !$rate;