]> git.proxmox.com Git - iproute2.git/blob - debian/patches/0005-revert-flush-default.patch
Update to 4.15, fix /bin/ss with no header flag
[iproute2.git] / debian / patches / 0005-revert-flush-default.patch
1 Description: Revert "iproute: "list/flush/save default" selected all of the routes"
2 # ip route flush all
3 No longer worked as expected which breaks user scripts and
4 expectations. It no longer flushed all IPv4 routes.
5 Bug: https://bugs.debian.og/891511
6 Forwarded: not-needed
7 Origin: upstream
8 Applied-Upstream: https://patchwork.ozlabs.org/patch/884882/
9 Author: Stephen Hemminger <stephen@networkplumber.org>
10 Last-Update: 2018-03-12
11 --- a/ip/iproute.c
12 +++ b/ip/iproute.c
13 @@ -191,42 +191,20 @@
14 return 0;
15 if ((filter.tos^r->rtm_tos)&filter.tosmask)
16 return 0;
17 - if (filter.rdst.family) {
18 - if (r->rtm_family != filter.rdst.family ||
19 - filter.rdst.bitlen > r->rtm_dst_len)
20 - return 0;
21 - } else if (filter.rdst.flags & PREFIXLEN_SPECIFIED) {
22 - if (filter.rdst.bitlen > r->rtm_dst_len)
23 - return 0;
24 - }
25 - if (filter.mdst.family) {
26 - if (r->rtm_family != filter.mdst.family ||
27 - (filter.mdst.bitlen >= 0 &&
28 - filter.mdst.bitlen < r->rtm_dst_len))
29 - return 0;
30 - } else if (filter.mdst.flags & PREFIXLEN_SPECIFIED) {
31 - if (filter.mdst.bitlen >= 0 &&
32 - filter.mdst.bitlen < r->rtm_dst_len)
33 - return 0;
34 - }
35 - if (filter.rsrc.family) {
36 - if (r->rtm_family != filter.rsrc.family ||
37 - filter.rsrc.bitlen > r->rtm_src_len)
38 - return 0;
39 - } else if (filter.rsrc.flags & PREFIXLEN_SPECIFIED) {
40 - if (filter.rsrc.bitlen > r->rtm_src_len)
41 - return 0;
42 - }
43 - if (filter.msrc.family) {
44 - if (r->rtm_family != filter.msrc.family ||
45 - (filter.msrc.bitlen >= 0 &&
46 - filter.msrc.bitlen < r->rtm_src_len))
47 - return 0;
48 - } else if (filter.msrc.flags & PREFIXLEN_SPECIFIED) {
49 - if (filter.msrc.bitlen >= 0 &&
50 - filter.msrc.bitlen < r->rtm_src_len)
51 - return 0;
52 - }
53 + if (filter.rdst.family &&
54 + (r->rtm_family != filter.rdst.family || filter.rdst.bitlen > r->rtm_dst_len))
55 + return 0;
56 + if (filter.mdst.family &&
57 + (r->rtm_family != filter.mdst.family ||
58 + (filter.mdst.bitlen >= 0 && filter.mdst.bitlen < r->rtm_dst_len)))
59 + return 0;
60 + if (filter.rsrc.family &&
61 + (r->rtm_family != filter.rsrc.family || filter.rsrc.bitlen > r->rtm_src_len))
62 + return 0;
63 + if (filter.msrc.family &&
64 + (r->rtm_family != filter.msrc.family ||
65 + (filter.msrc.bitlen >= 0 && filter.msrc.bitlen < r->rtm_src_len)))
66 + return 0;
67 if (filter.rvia.family) {
68 int family = r->rtm_family;
69
70 @@ -243,9 +221,7 @@
71
72 if (tb[RTA_DST])
73 memcpy(&dst.data, RTA_DATA(tb[RTA_DST]), (r->rtm_dst_len+7)/8);
74 - if (filter.rsrc.family || filter.msrc.family ||
75 - filter.rsrc.flags & PREFIXLEN_SPECIFIED ||
76 - filter.msrc.flags & PREFIXLEN_SPECIFIED) {
77 + if (filter.rsrc.family || filter.msrc.family) {
78 if (tb[RTA_SRC])
79 memcpy(&src.data, RTA_DATA(tb[RTA_SRC]), (r->rtm_src_len+7)/8);
80 }
81 @@ -265,18 +241,15 @@
82 memcpy(&prefsrc.data, RTA_DATA(tb[RTA_PREFSRC]), host_len/8);
83 }
84
85 - if ((filter.rdst.family || filter.rdst.flags & PREFIXLEN_SPECIFIED) &&
86 - inet_addr_match(&dst, &filter.rdst, filter.rdst.bitlen))
87 + if (filter.rdst.family && inet_addr_match(&dst, &filter.rdst, filter.rdst.bitlen))
88 return 0;
89 - if ((filter.mdst.family || filter.mdst.flags & PREFIXLEN_SPECIFIED) &&
90 + if (filter.mdst.family && filter.mdst.bitlen >= 0 &&
91 inet_addr_match(&dst, &filter.mdst, r->rtm_dst_len))
92 return 0;
93
94 - if ((filter.rsrc.family || filter.rsrc.flags & PREFIXLEN_SPECIFIED) &&
95 - inet_addr_match(&src, &filter.rsrc, filter.rsrc.bitlen))
96 + if (filter.rsrc.family && inet_addr_match(&src, &filter.rsrc, filter.rsrc.bitlen))
97 return 0;
98 - if ((filter.msrc.family || filter.msrc.flags & PREFIXLEN_SPECIFIED) &&
99 - filter.msrc.bitlen >= 0 &&
100 + if (filter.msrc.family && filter.msrc.bitlen >= 0 &&
101 inet_addr_match(&src, &filter.msrc, r->rtm_src_len))
102 return 0;
103
104 --- a/lib/utils.c
105 +++ b/lib/utils.c
106 @@ -658,7 +658,6 @@
107 dst->family = family;
108 dst->bytelen = 0;
109 dst->bitlen = 0;
110 - dst->flags |= PREFIXLEN_SPECIFIED;
111 return 0;
112 }
113