iPatch from waldi, fixes usage of ip route flush (from)? (match|exact)
This commit is contained in:
parent
86f2cce6bf
commit
fbf0b8af41
@ -72,6 +72,8 @@ static int print_route(struct sockaddr_nl *who, struct nlmsghdr *n, void *arg)
|
|||||||
int len = n->nlmsg_len;
|
int len = n->nlmsg_len;
|
||||||
struct rtattr * tb[RTA_MAX+1];
|
struct rtattr * tb[RTA_MAX+1];
|
||||||
char abuf[256];
|
char abuf[256];
|
||||||
|
inet_prefix dst;
|
||||||
|
inet_prefix src;
|
||||||
int host_len = -1;
|
int host_len = -1;
|
||||||
SPRINT_BUF(b1);
|
SPRINT_BUF(b1);
|
||||||
|
|
||||||
@ -144,6 +146,18 @@ static int print_route(struct sockaddr_nl *who, struct nlmsghdr *n, void *arg)
|
|||||||
memset(tb, 0, sizeof(tb));
|
memset(tb, 0, sizeof(tb));
|
||||||
parse_rtattr(tb, RTA_MAX, RTM_RTA(r), len);
|
parse_rtattr(tb, RTA_MAX, RTM_RTA(r), len);
|
||||||
|
|
||||||
|
if (filter.rdst.family && inet_addr_match(&dst, &filter.rdst, filter.rdst.bitlen))
|
||||||
|
return 0;
|
||||||
|
if (filter.mdst.family && filter.mdst.bitlen >= 0 &&
|
||||||
|
inet_addr_match(&dst, &filter.mdst, r->rtm_dst_len))
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
if (filter.rsrc.family && inet_addr_match(&src, &filter.rsrc, filter.rsrc.bitlen))
|
||||||
|
return 0;
|
||||||
|
if (filter.msrc.family && filter.msrc.bitlen >= 0 &&
|
||||||
|
inet_addr_match(&src, &filter.msrc, r->rtm_src_len))
|
||||||
|
return 0;
|
||||||
|
|
||||||
if (filter.flushb &&
|
if (filter.flushb &&
|
||||||
r->rtm_family == AF_INET6 &&
|
r->rtm_family == AF_INET6 &&
|
||||||
r->rtm_dst_len == 0 &&
|
r->rtm_dst_len == 0 &&
|
||||||
|
Loading…
x
Reference in New Issue
Block a user