diff options
Diffstat (limited to 'meta/recipes-core/busybox/busybox/0001-iproute-support-scope-.-Closes-8561.patch')
-rw-r--r-- | meta/recipes-core/busybox/busybox/0001-iproute-support-scope-.-Closes-8561.patch | 122 |
1 files changed, 0 insertions, 122 deletions
diff --git a/meta/recipes-core/busybox/busybox/0001-iproute-support-scope-.-Closes-8561.patch b/meta/recipes-core/busybox/busybox/0001-iproute-support-scope-.-Closes-8561.patch deleted file mode 100644 index 66bc76e65e..0000000000 --- a/meta/recipes-core/busybox/busybox/0001-iproute-support-scope-.-Closes-8561.patch +++ /dev/null | |||
@@ -1,122 +0,0 @@ | |||
1 | From ce4bc1ed048233e89ee4cb95830bf6f01d523d1e Mon Sep 17 00:00:00 2001 | ||
2 | From: Denys Vlasenko <vda.linux@googlemail.com> | ||
3 | Date: Wed, 30 Dec 2015 17:32:51 +0100 | ||
4 | Subject: [PATCH] iproute: support "scope". Closes 8561 | ||
5 | |||
6 | function old new delta | ||
7 | iproute_modify 1051 1120 +69 | ||
8 | |||
9 | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com> | ||
10 | |||
11 | Upstream-Status: Backport | ||
12 | Modified patch to build against busybox 1.24.1: | ||
13 | - s/invarg_1_to_2/invarg | ||
14 | Signed-off-by: André Draszik <adraszik@tycoint.com> | ||
15 | --- | ||
16 | networking/libiproute/iproute.c | 52 ++++++++++++++++++++++++++--------------- | ||
17 | 1 file changed, 33 insertions(+), 19 deletions(-) | ||
18 | |||
19 | diff --git a/networking/libiproute/iproute.c b/networking/libiproute/iproute.c | ||
20 | index d232ee6fd..82827488f 100644 | ||
21 | --- a/networking/libiproute/iproute.c | ||
22 | +++ b/networking/libiproute/iproute.c | ||
23 | @@ -313,12 +313,13 @@ static int FAST_FUNC print_route(const struct sockaddr_nl *who UNUSED_PARAM, | ||
24 | static int iproute_modify(int cmd, unsigned flags, char **argv) | ||
25 | { | ||
26 | static const char keywords[] ALIGN1 = | ||
27 | - "src\0""via\0""mtu\0""lock\0""protocol\0"IF_FEATURE_IP_RULE("table\0") | ||
28 | + "src\0""via\0""mtu\0""lock\0""scope\0""protocol\0"IF_FEATURE_IP_RULE("table\0") | ||
29 | "dev\0""oif\0""to\0""metric\0""onlink\0"; | ||
30 | enum { | ||
31 | ARG_src, | ||
32 | ARG_via, | ||
33 | ARG_mtu, PARM_lock, | ||
34 | + ARG_scope, | ||
35 | ARG_protocol, | ||
36 | IF_FEATURE_IP_RULE(ARG_table,) | ||
37 | ARG_dev, | ||
38 | @@ -344,6 +345,7 @@ IF_FEATURE_IP_RULE(ARG_table,) | ||
39 | unsigned mxlock = 0; | ||
40 | char *d = NULL; | ||
41 | smalluint ok = 0; | ||
42 | + smalluint scope_ok = 0; | ||
43 | int arg; | ||
44 | |||
45 | memset(&req, 0, sizeof(req)); | ||
46 | @@ -352,15 +354,18 @@ IF_FEATURE_IP_RULE(ARG_table,) | ||
47 | req.n.nlmsg_flags = NLM_F_REQUEST | flags; | ||
48 | req.n.nlmsg_type = cmd; | ||
49 | req.r.rtm_family = preferred_family; | ||
50 | - if (RT_TABLE_MAIN) /* if it is zero, memset already did it */ | ||
51 | + if (RT_TABLE_MAIN != 0) /* if it is zero, memset already did it */ | ||
52 | req.r.rtm_table = RT_TABLE_MAIN; | ||
53 | - if (RT_SCOPE_NOWHERE) | ||
54 | + if (RT_SCOPE_NOWHERE != 0) | ||
55 | req.r.rtm_scope = RT_SCOPE_NOWHERE; | ||
56 | |||
57 | if (cmd != RTM_DELROUTE) { | ||
58 | - req.r.rtm_protocol = RTPROT_BOOT; | ||
59 | - req.r.rtm_scope = RT_SCOPE_UNIVERSE; | ||
60 | - req.r.rtm_type = RTN_UNICAST; | ||
61 | + if (RTPROT_BOOT != 0) | ||
62 | + req.r.rtm_protocol = RTPROT_BOOT; | ||
63 | + if (RT_SCOPE_UNIVERSE != 0) | ||
64 | + req.r.rtm_scope = RT_SCOPE_UNIVERSE; | ||
65 | + if (RTN_UNICAST != 0) | ||
66 | + req.r.rtm_type = RTN_UNICAST; | ||
67 | } | ||
68 | |||
69 | mxrta->rta_type = RTA_METRICS; | ||
70 | @@ -393,6 +398,13 @@ IF_FEATURE_IP_RULE(ARG_table,) | ||
71 | } | ||
72 | mtu = get_unsigned(*argv, "mtu"); | ||
73 | rta_addattr32(mxrta, sizeof(mxbuf), RTAX_MTU, mtu); | ||
74 | + } else if (arg == ARG_scope) { | ||
75 | + uint32_t scope; | ||
76 | + NEXT_ARG(); | ||
77 | + if (rtnl_rtscope_a2n(&scope, *argv)) | ||
78 | + invarg(*argv, "scope"); | ||
79 | + req.r.rtm_scope = scope; | ||
80 | + scope_ok = 1; | ||
81 | } else if (arg == ARG_protocol) { | ||
82 | uint32_t prot; | ||
83 | NEXT_ARG(); | ||
84 | @@ -469,20 +481,22 @@ IF_FEATURE_IP_RULE(ARG_table,) | ||
85 | addattr_l(&req.n, sizeof(req), RTA_METRICS, RTA_DATA(mxrta), RTA_PAYLOAD(mxrta)); | ||
86 | } | ||
87 | |||
88 | - if (req.r.rtm_type == RTN_LOCAL || req.r.rtm_type == RTN_NAT) | ||
89 | - req.r.rtm_scope = RT_SCOPE_HOST; | ||
90 | - else | ||
91 | - if (req.r.rtm_type == RTN_BROADCAST | ||
92 | - || req.r.rtm_type == RTN_MULTICAST | ||
93 | - || req.r.rtm_type == RTN_ANYCAST | ||
94 | - ) { | ||
95 | - req.r.rtm_scope = RT_SCOPE_LINK; | ||
96 | - } | ||
97 | - else if (req.r.rtm_type == RTN_UNICAST || req.r.rtm_type == RTN_UNSPEC) { | ||
98 | - if (cmd == RTM_DELROUTE) | ||
99 | - req.r.rtm_scope = RT_SCOPE_NOWHERE; | ||
100 | - else if (!(ok & gw_ok)) | ||
101 | + if (!scope_ok) { | ||
102 | + if (req.r.rtm_type == RTN_LOCAL || req.r.rtm_type == RTN_NAT) | ||
103 | + req.r.rtm_scope = RT_SCOPE_HOST; | ||
104 | + else | ||
105 | + if (req.r.rtm_type == RTN_BROADCAST | ||
106 | + || req.r.rtm_type == RTN_MULTICAST | ||
107 | + || req.r.rtm_type == RTN_ANYCAST | ||
108 | + ) { | ||
109 | req.r.rtm_scope = RT_SCOPE_LINK; | ||
110 | + } | ||
111 | + else if (req.r.rtm_type == RTN_UNICAST || req.r.rtm_type == RTN_UNSPEC) { | ||
112 | + if (cmd == RTM_DELROUTE) | ||
113 | + req.r.rtm_scope = RT_SCOPE_NOWHERE; | ||
114 | + else if (!(ok & gw_ok)) | ||
115 | + req.r.rtm_scope = RT_SCOPE_LINK; | ||
116 | + } | ||
117 | } | ||
118 | |||
119 | if (req.r.rtm_family == AF_UNSPEC) { | ||
120 | -- | ||
121 | 2.11.0 | ||
122 | |||