← Commit list

fbf0b8af4

Glenn L McGrath
Glenn L McGrath
2003-04-26
FAILED Duration: 71s

Subject

iPatch from waldi, fixes usage of ip route flush (from)? (match|exact)

Binary

No binary (build failed)

Architecture & Compiler Flags

Architecture: x86_64-linux-gnu Compiler: gcc (Ubuntu 11.4.0-1ubuntu1~22.04.3) 11.4.0

—

Build Log

(log yok)

Commit Diff GitHub →

networking/libiproute/iproute.c+14 -0
@@ -72,6 +72,8 @@ static int print_route(struct sockaddr_nl *who, struct nlmsghdr *n, void *arg)
int len = n->nlmsg_len;
struct rtattr * tb[RTA_MAX+1];
char abuf[256];
+ inet_prefix dst;
+ inet_prefix src;
int host_len = -1;
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));
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 &&
r->rtm_family == AF_INET6 &&
r->rtm_dst_len == 0 &&