mirror of
https://git.proxmox.com/git/mirror_iproute2
synced 2025-10-09 19:25:37 +00:00
ip rule: Honor filter arguments on flush
'ip ru flush' currently removes all rules with priority > 0 regardless of any other command line arguments passed in. Update flush_rule to call filter_nlmsg to determine if the rule should be flushed or not. This enables rule flushing such as 'ip ru flush table 1001' and 'ip ru flush pref 99'. Signed-off-by: David Ahern <dsahern@gmail.com> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
This commit is contained in:
parent
508f3c231e
commit
b65b4c0870
@ -461,6 +461,7 @@ static int flush_rule(struct nlmsghdr *n, void *arg)
|
||||
struct fib_rule_hdr *frh = NLMSG_DATA(n);
|
||||
int len = n->nlmsg_len;
|
||||
struct rtattr *tb[FRA_MAX+1];
|
||||
int host_len = -1;
|
||||
|
||||
len -= NLMSG_LENGTH(sizeof(*frh));
|
||||
if (len < 0)
|
||||
@ -468,6 +469,10 @@ static int flush_rule(struct nlmsghdr *n, void *arg)
|
||||
|
||||
parse_rtattr(tb, FRA_MAX, RTM_RTA(frh), len);
|
||||
|
||||
host_len = af_bit_len(frh->family);
|
||||
if (!filter_nlmsg(n, tb, host_len))
|
||||
return 0;
|
||||
|
||||
if (tb[FRA_PROTOCOL]) {
|
||||
__u8 protocol = rta_getattr_u8(tb[FRA_PROTOCOL]);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user