diff options
-rw-r--r-- | meta/recipes-connectivity/connman/connman.inc | 2 | ||||
-rw-r--r-- | meta/recipes-connectivity/connman/connman/0001-Fix-various-issues-which-cause-problems-under-musl.patch (renamed from meta/recipes-connectivity/connman/connman/includes.patch) | 437 | ||||
-rw-r--r-- | meta/recipes-connectivity/connman/connman/0001-giognutls-Fix-a-crash-using-wispr-over-TLS.patch | 41 | ||||
-rw-r--r-- | meta/recipes-connectivity/connman/connman/0001-session-Keep-track-of-addr-in-fw_snat-session.patch | 112 | ||||
-rw-r--r-- | meta/recipes-connectivity/connman/connman/0002-inet-Implement-subnet-route-creation-deletion-in-ipr.patch | 69 | ||||
-rw-r--r-- | meta/recipes-connectivity/connman/connman/0003-inet-Implement-APIs-for-creating-and-deleting-subnet.patch | 68 | ||||
-rw-r--r-- | meta/recipes-connectivity/connman/connman/0004-session-Use-subnet-route-creation-and-deletion-APIs.patch | 77 | ||||
-rw-r--r-- | meta/recipes-connectivity/connman/connman_1.35.bb | 22 | ||||
-rw-r--r-- | meta/recipes-connectivity/connman/connman_1.36.bb | 16 |
9 files changed, 208 insertions, 636 deletions
diff --git a/meta/recipes-connectivity/connman/connman.inc b/meta/recipes-connectivity/connman/connman.inc index 2b03f9cb06..0ba375137d 100644 --- a/meta/recipes-connectivity/connman/connman.inc +++ b/meta/recipes-connectivity/connman/connman.inc | |||
@@ -156,7 +156,7 @@ RDEPENDS_${PN}-client ="${PN}" | |||
156 | 156 | ||
157 | FILES_${PN} = "${bindir}/* ${sbindir}/* ${libexecdir}/* ${libdir}/lib*.so.* \ | 157 | FILES_${PN} = "${bindir}/* ${sbindir}/* ${libexecdir}/* ${libdir}/lib*.so.* \ |
158 | ${libdir}/connman/plugins \ | 158 | ${libdir}/connman/plugins \ |
159 | ${sysconfdir} ${sharedstatedir} ${localstatedir} \ | 159 | ${sysconfdir} ${sharedstatedir} ${localstatedir} ${datadir} \ |
160 | ${base_bindir}/* ${base_sbindir}/* ${base_libdir}/*.so* ${datadir}/${PN} \ | 160 | ${base_bindir}/* ${base_sbindir}/* ${base_libdir}/*.so* ${datadir}/${PN} \ |
161 | ${datadir}/dbus-1/system-services/* \ | 161 | ${datadir}/dbus-1/system-services/* \ |
162 | ${sysconfdir}/tmpfiles.d/connman_resolvconf.conf" | 162 | ${sysconfdir}/tmpfiles.d/connman_resolvconf.conf" |
diff --git a/meta/recipes-connectivity/connman/connman/includes.patch b/meta/recipes-connectivity/connman/connman/0001-Fix-various-issues-which-cause-problems-under-musl.patch index 9f7395cbbb..f344fea109 100644 --- a/meta/recipes-connectivity/connman/connman/includes.patch +++ b/meta/recipes-connectivity/connman/connman/0001-Fix-various-issues-which-cause-problems-under-musl.patch | |||
@@ -1,36 +1,43 @@ | |||
1 | Fix various issues which cause problems under musl. | 1 | From 181ff3439783c6920f5211730672685a210c318f Mon Sep 17 00:00:00 2001 |
2 | |||
3 | Upstream-Status: Backport [bd1326ba7d68df38c5ccaafd2403a5fb30bd452b] | ||
4 | Signed-off-by: Ross Burton <ross.burton@intel.com> | ||
5 | |||
6 | From 630516bcc0233b047f65665c003201ba6e77453d Mon Sep 17 00:00:00 2001 | ||
7 | From: Ross Burton <ross.burton@intel.com> | 2 | From: Ross Burton <ross.burton@intel.com> |
8 | Date: Tue, 9 Aug 2016 16:22:36 +0100 | 3 | Date: Mon, 8 Oct 2018 22:12:56 +0200 |
9 | Subject: [PATCH 1/3] Use AC_USE_SYSTEM_EXTENSIONS | 4 | Subject: [PATCH] Fix various issues which cause problems under musl |
5 | |||
6 | Instead of using #define _GNU_SOURCE in some source files which causes | ||
7 | problems when building with musl as more files need the define, simply | ||
8 | use AC_USE_SYSTEM_EXTENSIONS in configure.ac to get it defined globally. | ||
10 | 9 | ||
11 | Instead of using #define _GNU_SOURCE in some source files which causes problems | 10 | Signed-off-by: Ross Burton <ross.burton@intel.com> |
12 | when building with musl as more files need the define, simply use | 11 | Upstream-Status: Backport [bd1326ba7d68df38c5ccaafd2403a5fb30bd452b] |
13 | AC_USE_SYSTEM_EXTENSIONS in configure.ac to get it defined globally. | ||
14 | --- | 12 | --- |
15 | configure.ac | 1 + | 13 | configure.ac | 3 +++ |
16 | gdhcp/client.c | 1 - | 14 | gdhcp/client.c | 1 - |
17 | plugins/tist.c | 1 - | 15 | gdhcp/common.h | 5 +++-- |
18 | src/backtrace.c | 1 - | 16 | gweb/gresolv.c | 1 + |
19 | src/inet.c | 1 - | 17 | plugins/tist.c | 1 - |
20 | src/log.c | 1 - | 18 | plugins/wifi.c | 3 +-- |
21 | src/ntp.c | 1 - | 19 | src/backtrace.c | 1 - |
22 | src/resolver.c | 1 - | 20 | src/inet.c | 1 - |
23 | src/rfkill.c | 1 - | 21 | src/ippool.c | 1 - |
24 | src/stats.c | 1 - | 22 | src/iptables.c | 2 +- |
25 | src/timezone.c | 1 - | 23 | src/log.c | 1 - |
26 | tools/stats-tool.c | 1 - | 24 | src/ntp.c | 1 - |
27 | tools/tap-test.c | 1 - | 25 | src/resolver.c | 1 - |
28 | tools/wispr.c | 1 - | 26 | src/rfkill.c | 1 - |
29 | vpn/plugins/vpn.c | 1 - | 27 | src/stats.c | 1 - |
30 | 15 files changed, 1 insertion(+), 14 deletions(-) | 28 | src/tethering.c | 2 -- |
29 | src/timezone.c | 1 - | ||
30 | tools/dhcp-test.c | 1 - | ||
31 | tools/dnsproxy-test.c | 1 + | ||
32 | tools/private-network-test.c | 2 +- | ||
33 | tools/stats-tool.c | 1 - | ||
34 | tools/tap-test.c | 3 +-- | ||
35 | tools/wispr.c | 1 - | ||
36 | vpn/plugins/vpn.c | 1 - | ||
37 | 24 files changed, 12 insertions(+), 25 deletions(-) | ||
31 | 38 | ||
32 | diff --git a/configure.ac b/configure.ac | 39 | diff --git a/configure.ac b/configure.ac |
33 | index 6e66ab3..bacf5ec 100644 | 40 | index 39745f76..984126c2 100644 |
34 | --- a/configure.ac | 41 | --- a/configure.ac |
35 | +++ b/configure.ac | 42 | +++ b/configure.ac |
36 | @@ -20,6 +20,7 @@ AC_SUBST(abs_top_srcdir) | 43 | @@ -20,6 +20,7 @@ AC_SUBST(abs_top_srcdir) |
@@ -41,8 +48,17 @@ index 6e66ab3..bacf5ec 100644 | |||
41 | 48 | ||
42 | AC_PROG_CC | 49 | AC_PROG_CC |
43 | AM_PROG_CC_C_O | 50 | AM_PROG_CC_C_O |
51 | @@ -185,6 +186,8 @@ AC_CHECK_LIB(resolv, ns_initparse, dummy=yes, [ | ||
52 | AC_CHECK_HEADERS([execinfo.h]) | ||
53 | AM_CONDITIONAL([BACKTRACE], [test "${ac_cv_header_execinfo_h}" = "yes"]) | ||
54 | |||
55 | +AC_CHECK_MEMBERS([struct in6_pktinfo.ipi6_addr], [], [], [[#include <netinet/in.h>]]) | ||
56 | + | ||
57 | AC_CHECK_FUNC(signalfd, dummy=yes, | ||
58 | AC_MSG_ERROR(signalfd support is required)) | ||
59 | |||
44 | diff --git a/gdhcp/client.c b/gdhcp/client.c | 60 | diff --git a/gdhcp/client.c b/gdhcp/client.c |
45 | index fbb40ab..3aeb089 100644 | 61 | index 67357782..c7db76f0 100644 |
46 | --- a/gdhcp/client.c | 62 | --- a/gdhcp/client.c |
47 | +++ b/gdhcp/client.c | 63 | +++ b/gdhcp/client.c |
48 | @@ -23,7 +23,6 @@ | 64 | @@ -23,7 +23,6 @@ |
@@ -53,8 +69,43 @@ index fbb40ab..3aeb089 100644 | |||
53 | #include <stdio.h> | 69 | #include <stdio.h> |
54 | #include <errno.h> | 70 | #include <errno.h> |
55 | #include <unistd.h> | 71 | #include <unistd.h> |
72 | diff --git a/gdhcp/common.h b/gdhcp/common.h | ||
73 | index 75abc183..6899499e 100644 | ||
74 | --- a/gdhcp/common.h | ||
75 | +++ b/gdhcp/common.h | ||
76 | @@ -19,6 +19,7 @@ | ||
77 | * | ||
78 | */ | ||
79 | |||
80 | +#include <config.h> | ||
81 | #include <netinet/udp.h> | ||
82 | #include <netinet/ip.h> | ||
83 | |||
84 | @@ -170,8 +171,8 @@ static const uint8_t dhcp_option_lengths[] = { | ||
85 | [OPTION_U32] = 4, | ||
86 | }; | ||
87 | |||
88 | -/* already defined within netinet/in.h if using GNU compiler */ | ||
89 | -#ifndef __USE_GNU | ||
90 | +/* already defined within netinet/in.h if using glibc or musl */ | ||
91 | +#ifndef HAVE_STRUCT_IN6_PKTINFO_IPI6_ADDR | ||
92 | struct in6_pktinfo { | ||
93 | struct in6_addr ipi6_addr; /* src/dst IPv6 address */ | ||
94 | unsigned int ipi6_ifindex; /* send/recv interface index */ | ||
95 | diff --git a/gweb/gresolv.c b/gweb/gresolv.c | ||
96 | index 81c79b6c..b06f8932 100644 | ||
97 | --- a/gweb/gresolv.c | ||
98 | +++ b/gweb/gresolv.c | ||
99 | @@ -29,6 +29,7 @@ | ||
100 | #include <string.h> | ||
101 | #include <stdlib.h> | ||
102 | #include <resolv.h> | ||
103 | +#include <stdio.h> | ||
104 | #include <sys/types.h> | ||
105 | #include <sys/socket.h> | ||
106 | #include <netdb.h> | ||
56 | diff --git a/plugins/tist.c b/plugins/tist.c | 107 | diff --git a/plugins/tist.c b/plugins/tist.c |
57 | index ad5ef79..cc2800a 100644 | 108 | index ad5ef79e..cc2800a1 100644 |
58 | --- a/plugins/tist.c | 109 | --- a/plugins/tist.c |
59 | +++ b/plugins/tist.c | 110 | +++ b/plugins/tist.c |
60 | @@ -23,7 +23,6 @@ | 111 | @@ -23,7 +23,6 @@ |
@@ -65,8 +116,23 @@ index ad5ef79..cc2800a 100644 | |||
65 | #include <stdio.h> | 116 | #include <stdio.h> |
66 | #include <stdbool.h> | 117 | #include <stdbool.h> |
67 | #include <stdlib.h> | 118 | #include <stdlib.h> |
119 | diff --git a/plugins/wifi.c b/plugins/wifi.c | ||
120 | index dc08c6af..46e4cca4 100644 | ||
121 | --- a/plugins/wifi.c | ||
122 | +++ b/plugins/wifi.c | ||
123 | @@ -30,9 +30,8 @@ | ||
124 | #include <string.h> | ||
125 | #include <sys/ioctl.h> | ||
126 | #include <sys/socket.h> | ||
127 | -#include <linux/if_arp.h> | ||
128 | -#include <linux/wireless.h> | ||
129 | #include <net/ethernet.h> | ||
130 | +#include <linux/wireless.h> | ||
131 | |||
132 | #ifndef IFF_LOWER_UP | ||
133 | #define IFF_LOWER_UP 0x10000 | ||
68 | diff --git a/src/backtrace.c b/src/backtrace.c | 134 | diff --git a/src/backtrace.c b/src/backtrace.c |
69 | index 6a66c0a..4dbdda8 100644 | 135 | index e8d7f432..bede6698 100644 |
70 | --- a/src/backtrace.c | 136 | --- a/src/backtrace.c |
71 | +++ b/src/backtrace.c | 137 | +++ b/src/backtrace.c |
72 | @@ -24,7 +24,6 @@ | 138 | @@ -24,7 +24,6 @@ |
@@ -78,7 +144,7 @@ index 6a66c0a..4dbdda8 100644 | |||
78 | #include <unistd.h> | 144 | #include <unistd.h> |
79 | #include <stdlib.h> | 145 | #include <stdlib.h> |
80 | diff --git a/src/inet.c b/src/inet.c | 146 | diff --git a/src/inet.c b/src/inet.c |
81 | index 69ded19..81d92c2 100644 | 147 | index a31372b5..a58ce7c1 100644 |
82 | --- a/src/inet.c | 148 | --- a/src/inet.c |
83 | +++ b/src/inet.c | 149 | +++ b/src/inet.c |
84 | @@ -25,7 +25,6 @@ | 150 | @@ -25,7 +25,6 @@ |
@@ -89,8 +155,33 @@ index 69ded19..81d92c2 100644 | |||
89 | #include <stdio.h> | 155 | #include <stdio.h> |
90 | #include <errno.h> | 156 | #include <errno.h> |
91 | #include <unistd.h> | 157 | #include <unistd.h> |
158 | diff --git a/src/ippool.c b/src/ippool.c | ||
159 | index cea1dccd..8a645da2 100644 | ||
160 | --- a/src/ippool.c | ||
161 | +++ b/src/ippool.c | ||
162 | @@ -28,7 +28,6 @@ | ||
163 | #include <stdio.h> | ||
164 | #include <string.h> | ||
165 | #include <unistd.h> | ||
166 | -#include <sys/errno.h> | ||
167 | #include <sys/socket.h> | ||
168 | |||
169 | #include "connman.h" | ||
170 | diff --git a/src/iptables.c b/src/iptables.c | ||
171 | index f3670e77..469effed 100644 | ||
172 | --- a/src/iptables.c | ||
173 | +++ b/src/iptables.c | ||
174 | @@ -28,7 +28,7 @@ | ||
175 | #include <stdio.h> | ||
176 | #include <string.h> | ||
177 | #include <unistd.h> | ||
178 | -#include <sys/errno.h> | ||
179 | +#include <errno.h> | ||
180 | #include <sys/socket.h> | ||
181 | #include <xtables.h> | ||
182 | #include <inttypes.h> | ||
92 | diff --git a/src/log.c b/src/log.c | 183 | diff --git a/src/log.c b/src/log.c |
93 | index 9bae4a3..f7e82e5 100644 | 184 | index 9bae4a3d..f7e82e5d 100644 |
94 | --- a/src/log.c | 185 | --- a/src/log.c |
95 | +++ b/src/log.c | 186 | +++ b/src/log.c |
96 | @@ -23,7 +23,6 @@ | 187 | @@ -23,7 +23,6 @@ |
@@ -102,7 +193,7 @@ index 9bae4a3..f7e82e5 100644 | |||
102 | #include <unistd.h> | 193 | #include <unistd.h> |
103 | #include <stdarg.h> | 194 | #include <stdarg.h> |
104 | diff --git a/src/ntp.c b/src/ntp.c | 195 | diff --git a/src/ntp.c b/src/ntp.c |
105 | index dd246eb..db8ae96 100644 | 196 | index 51ba9aac..724ca188 100644 |
106 | --- a/src/ntp.c | 197 | --- a/src/ntp.c |
107 | +++ b/src/ntp.c | 198 | +++ b/src/ntp.c |
108 | @@ -23,7 +23,6 @@ | 199 | @@ -23,7 +23,6 @@ |
@@ -114,7 +205,7 @@ index dd246eb..db8ae96 100644 | |||
114 | #include <fcntl.h> | 205 | #include <fcntl.h> |
115 | #include <unistd.h> | 206 | #include <unistd.h> |
116 | diff --git a/src/resolver.c b/src/resolver.c | 207 | diff --git a/src/resolver.c b/src/resolver.c |
117 | index fbe4be7..ef61f92 100644 | 208 | index 76f0a8e1..10121aa5 100644 |
118 | --- a/src/resolver.c | 209 | --- a/src/resolver.c |
119 | +++ b/src/resolver.c | 210 | +++ b/src/resolver.c |
120 | @@ -23,7 +23,6 @@ | 211 | @@ -23,7 +23,6 @@ |
@@ -126,7 +217,7 @@ index fbe4be7..ef61f92 100644 | |||
126 | #include <errno.h> | 217 | #include <errno.h> |
127 | #include <fcntl.h> | 218 | #include <fcntl.h> |
128 | diff --git a/src/rfkill.c b/src/rfkill.c | 219 | diff --git a/src/rfkill.c b/src/rfkill.c |
129 | index 2bfb092..af49d12 100644 | 220 | index d9bed4d2..b2514c41 100644 |
130 | --- a/src/rfkill.c | 221 | --- a/src/rfkill.c |
131 | +++ b/src/rfkill.c | 222 | +++ b/src/rfkill.c |
132 | @@ -23,7 +23,6 @@ | 223 | @@ -23,7 +23,6 @@ |
@@ -138,7 +229,7 @@ index 2bfb092..af49d12 100644 | |||
138 | #include <errno.h> | 229 | #include <errno.h> |
139 | #include <fcntl.h> | 230 | #include <fcntl.h> |
140 | diff --git a/src/stats.c b/src/stats.c | 231 | diff --git a/src/stats.c b/src/stats.c |
141 | index 26343b1..cfcdc94 100644 | 232 | index 663bc382..c9ddc2e8 100644 |
142 | --- a/src/stats.c | 233 | --- a/src/stats.c |
143 | +++ b/src/stats.c | 234 | +++ b/src/stats.c |
144 | @@ -23,7 +23,6 @@ | 235 | @@ -23,7 +23,6 @@ |
@@ -149,8 +240,21 @@ index 26343b1..cfcdc94 100644 | |||
149 | #include <errno.h> | 240 | #include <errno.h> |
150 | #include <sys/mman.h> | 241 | #include <sys/mman.h> |
151 | #include <sys/types.h> | 242 | #include <sys/types.h> |
243 | diff --git a/src/tethering.c b/src/tethering.c | ||
244 | index 4b202369..f3cb36f4 100644 | ||
245 | --- a/src/tethering.c | ||
246 | +++ b/src/tethering.c | ||
247 | @@ -34,8 +34,6 @@ | ||
248 | #include <string.h> | ||
249 | #include <fcntl.h> | ||
250 | #include <netinet/in.h> | ||
251 | -#include <linux/sockios.h> | ||
252 | -#include <linux/if_tun.h> | ||
253 | #include <linux/if_bridge.h> | ||
254 | |||
255 | #include "connman.h" | ||
152 | diff --git a/src/timezone.c b/src/timezone.c | 256 | diff --git a/src/timezone.c b/src/timezone.c |
153 | index e346b11..8e91267 100644 | 257 | index e346b11a..8e912670 100644 |
154 | --- a/src/timezone.c | 258 | --- a/src/timezone.c |
155 | +++ b/src/timezone.c | 259 | +++ b/src/timezone.c |
156 | @@ -23,7 +23,6 @@ | 260 | @@ -23,7 +23,6 @@ |
@@ -161,210 +265,8 @@ index e346b11..8e91267 100644 | |||
161 | #include <errno.h> | 265 | #include <errno.h> |
162 | #include <stdio.h> | 266 | #include <stdio.h> |
163 | #include <fcntl.h> | 267 | #include <fcntl.h> |
164 | diff --git a/tools/stats-tool.c b/tools/stats-tool.c | ||
165 | index b076478..428d94b 100644 | ||
166 | --- a/tools/stats-tool.c | ||
167 | +++ b/tools/stats-tool.c | ||
168 | @@ -22,7 +22,6 @@ | ||
169 | #include <config.h> | ||
170 | #endif | ||
171 | |||
172 | -#define _GNU_SOURCE | ||
173 | #include <sys/mman.h> | ||
174 | #include <sys/types.h> | ||
175 | #include <sys/stat.h> | ||
176 | diff --git a/tools/tap-test.c b/tools/tap-test.c | ||
177 | index fdc098a..57917f5 100644 | ||
178 | --- a/tools/tap-test.c | ||
179 | +++ b/tools/tap-test.c | ||
180 | @@ -23,7 +23,6 @@ | ||
181 | #include <config.h> | ||
182 | #endif | ||
183 | |||
184 | -#define _GNU_SOURCE | ||
185 | #include <stdio.h> | ||
186 | #include <errno.h> | ||
187 | #include <fcntl.h> | ||
188 | diff --git a/tools/wispr.c b/tools/wispr.c | ||
189 | index d5f9341..e56dfc1 100644 | ||
190 | --- a/tools/wispr.c | ||
191 | +++ b/tools/wispr.c | ||
192 | @@ -23,7 +23,6 @@ | ||
193 | #include <config.h> | ||
194 | #endif | ||
195 | |||
196 | -#define _GNU_SOURCE | ||
197 | #include <stdio.h> | ||
198 | #include <fcntl.h> | ||
199 | #include <unistd.h> | ||
200 | diff --git a/vpn/plugins/vpn.c b/vpn/plugins/vpn.c | ||
201 | index 9a42385..479c3a7 100644 | ||
202 | --- a/vpn/plugins/vpn.c | ||
203 | +++ b/vpn/plugins/vpn.c | ||
204 | @@ -23,7 +23,6 @@ | ||
205 | #include <config.h> | ||
206 | #endif | ||
207 | |||
208 | -#define _GNU_SOURCE | ||
209 | #include <string.h> | ||
210 | #include <fcntl.h> | ||
211 | #include <unistd.h> | ||
212 | -- | ||
213 | 2.8.1 | ||
214 | |||
215 | |||
216 | From b8b7878e6cb2a1ed4fcfa256f7e232511a40e3d9 Mon Sep 17 00:00:00 2001 | ||
217 | From: Ross Burton <ross.burton@intel.com> | ||
218 | Date: Tue, 9 Aug 2016 15:37:50 +0100 | ||
219 | Subject: [PATCH 2/3] Check for in6_pktinfo.ipi6_addr explicitly | ||
220 | |||
221 | Instead of assuming that just glibc has this structure, check for it at | ||
222 | configure as musl also has it. | ||
223 | |||
224 | Based on work by Khem Raj <raj.khem@gmail.com>. | ||
225 | --- | ||
226 | configure.ac | 2 ++ | ||
227 | gdhcp/common.h | 5 +++-- | ||
228 | 2 files changed, 5 insertions(+), 2 deletions(-) | ||
229 | |||
230 | diff --git a/configure.ac b/configure.ac | ||
231 | index bacf5ec..ad00456 100644 | ||
232 | --- a/configure.ac | ||
233 | +++ b/configure.ac | ||
234 | @@ -186,6 +186,8 @@ AC_CHECK_LIB(resolv, ns_initparse, dummy=yes, [ | ||
235 | AC_CHECK_HEADERS([execinfo.h]) | ||
236 | AM_CONDITIONAL([BACKTRACE], [test "${ac_cv_header_execinfo_h}" = "yes"]) | ||
237 | |||
238 | +AC_CHECK_MEMBERS([struct in6_pktinfo.ipi6_addr], [], [], [[#include <netinet/in.h>]]) | ||
239 | + | ||
240 | AC_CHECK_FUNC(signalfd, dummy=yes, | ||
241 | AC_MSG_ERROR(signalfd support is required)) | ||
242 | |||
243 | diff --git a/gdhcp/common.h b/gdhcp/common.h | ||
244 | index 75abc18..6899499 100644 | ||
245 | --- a/gdhcp/common.h | ||
246 | +++ b/gdhcp/common.h | ||
247 | @@ -19,6 +19,7 @@ | ||
248 | * | ||
249 | */ | ||
250 | |||
251 | +#include <config.h> | ||
252 | #include <netinet/udp.h> | ||
253 | #include <netinet/ip.h> | ||
254 | |||
255 | @@ -170,8 +171,8 @@ static const uint8_t dhcp_option_lengths[] = { | ||
256 | [OPTION_U32] = 4, | ||
257 | }; | ||
258 | |||
259 | -/* already defined within netinet/in.h if using GNU compiler */ | ||
260 | -#ifndef __USE_GNU | ||
261 | +/* already defined within netinet/in.h if using glibc or musl */ | ||
262 | +#ifndef HAVE_STRUCT_IN6_PKTINFO_IPI6_ADDR | ||
263 | struct in6_pktinfo { | ||
264 | struct in6_addr ipi6_addr; /* src/dst IPv6 address */ | ||
265 | unsigned int ipi6_ifindex; /* send/recv interface index */ | ||
266 | -- | ||
267 | 2.8.1 | ||
268 | |||
269 | |||
270 | From c0726e432fa0274a2b9c70179b03df6720972816 Mon Sep 17 00:00:00 2001 | ||
271 | From: Ross Burton <ross.burton@intel.com> | ||
272 | Date: Tue, 9 Aug 2016 15:19:23 +0100 | ||
273 | Subject: [PATCH 3/3] Rationalise includes | ||
274 | |||
275 | gweb/gresolv.c uses snprintf() and isspace() so it should include stdio.h and | ||
276 | ctype.h. | ||
277 | |||
278 | tools/dnsproxy-test uses functions from stdio.h. | ||
279 | |||
280 | musl warns when sys/ headers are included when the non-sys form should be used, | ||
281 | so switch sys/errno.h and so on to errno.h. | ||
282 | |||
283 | musl also causes redefinition errors when pieces of the networking headers are | ||
284 | included, so remove the redundant includes. | ||
285 | |||
286 | Based on work by Khem Raj <raj.khem@gmail.com>. | ||
287 | --- | ||
288 | gweb/gresolv.c | 2 ++ | ||
289 | plugins/wifi.c | 3 +-- | ||
290 | src/ippool.c | 1 - | ||
291 | src/iptables.c | 2 +- | ||
292 | src/tethering.c | 2 -- | ||
293 | tools/dhcp-test.c | 1 - | ||
294 | tools/dnsproxy-test.c | 1 + | ||
295 | tools/private-network-test.c | 2 +- | ||
296 | tools/tap-test.c | 2 +- | ||
297 | 9 files changed, 7 insertions(+), 9 deletions(-) | ||
298 | |||
299 | diff --git a/gweb/gresolv.c b/gweb/gresolv.c | ||
300 | index 8a51a9f..d55027c 100644 | ||
301 | --- a/gweb/gresolv.c | ||
302 | +++ b/gweb/gresolv.c | ||
303 | @@ -29,6 +29,7 @@ | ||
304 | #include <string.h> | ||
305 | #include <stdlib.h> | ||
306 | #include <resolv.h> | ||
307 | +#include <stdio.h> | ||
308 | #include <sys/types.h> | ||
309 | #include <sys/socket.h> | ||
310 | #include <netdb.h> | ||
311 | diff --git a/plugins/wifi.c b/plugins/wifi.c | ||
312 | index 9d56671..148131d 100644 | ||
313 | --- a/plugins/wifi.c | ||
314 | +++ b/plugins/wifi.c | ||
315 | @@ -30,9 +30,8 @@ | ||
316 | #include <string.h> | ||
317 | #include <sys/ioctl.h> | ||
318 | #include <sys/socket.h> | ||
319 | -#include <linux/if_arp.h> | ||
320 | -#include <linux/wireless.h> | ||
321 | #include <net/ethernet.h> | ||
322 | +#include <linux/wireless.h> | ||
323 | |||
324 | #ifndef IFF_LOWER_UP | ||
325 | #define IFF_LOWER_UP 0x10000 | ||
326 | diff --git a/src/ippool.c b/src/ippool.c | ||
327 | index cea1dcc..8a645da 100644 | ||
328 | --- a/src/ippool.c | ||
329 | +++ b/src/ippool.c | ||
330 | @@ -28,7 +28,6 @@ | ||
331 | #include <stdio.h> | ||
332 | #include <string.h> | ||
333 | #include <unistd.h> | ||
334 | -#include <sys/errno.h> | ||
335 | #include <sys/socket.h> | ||
336 | |||
337 | #include "connman.h" | ||
338 | diff --git a/src/iptables.c b/src/iptables.c | ||
339 | index 5ef757a..82e3ac4 100644 | ||
340 | --- a/src/iptables.c | ||
341 | +++ b/src/iptables.c | ||
342 | @@ -28,7 +28,7 @@ | ||
343 | #include <stdio.h> | ||
344 | #include <string.h> | ||
345 | #include <unistd.h> | ||
346 | -#include <sys/errno.h> | ||
347 | +#include <errno.h> | ||
348 | #include <sys/socket.h> | ||
349 | #include <xtables.h> | ||
350 | #include <inttypes.h> | ||
351 | diff --git a/src/tethering.c b/src/tethering.c | ||
352 | index 3153349..ad062d5 100644 | ||
353 | --- a/src/tethering.c | ||
354 | +++ b/src/tethering.c | ||
355 | @@ -31,10 +31,8 @@ | ||
356 | #include <stdio.h> | ||
357 | #include <sys/ioctl.h> | ||
358 | #include <net/if.h> | ||
359 | -#include <linux/sockios.h> | ||
360 | #include <string.h> | ||
361 | #include <fcntl.h> | ||
362 | -#include <linux/if_tun.h> | ||
363 | #include <netinet/in.h> | ||
364 | #include <linux/if_bridge.h> | ||
365 | |||
366 | diff --git a/tools/dhcp-test.c b/tools/dhcp-test.c | 268 | diff --git a/tools/dhcp-test.c b/tools/dhcp-test.c |
367 | index c34e10a..eae66fc 100644 | 269 | index c34e10a8..eae66fc2 100644 |
368 | --- a/tools/dhcp-test.c | 270 | --- a/tools/dhcp-test.c |
369 | +++ b/tools/dhcp-test.c | 271 | +++ b/tools/dhcp-test.c |
370 | @@ -33,7 +33,6 @@ | 272 | @@ -33,7 +33,6 @@ |
@@ -376,7 +278,7 @@ index c34e10a..eae66fc 100644 | |||
376 | #include <gdhcp/gdhcp.h> | 278 | #include <gdhcp/gdhcp.h> |
377 | 279 | ||
378 | diff --git a/tools/dnsproxy-test.c b/tools/dnsproxy-test.c | 280 | diff --git a/tools/dnsproxy-test.c b/tools/dnsproxy-test.c |
379 | index 551cae9..371e2e2 100644 | 281 | index 551cae91..371e2e23 100644 |
380 | --- a/tools/dnsproxy-test.c | 282 | --- a/tools/dnsproxy-test.c |
381 | +++ b/tools/dnsproxy-test.c | 283 | +++ b/tools/dnsproxy-test.c |
382 | @@ -24,6 +24,7 @@ | 284 | @@ -24,6 +24,7 @@ |
@@ -388,7 +290,7 @@ index 551cae9..371e2e2 100644 | |||
388 | #include <string.h> | 290 | #include <string.h> |
389 | #include <unistd.h> | 291 | #include <unistd.h> |
390 | diff --git a/tools/private-network-test.c b/tools/private-network-test.c | 292 | diff --git a/tools/private-network-test.c b/tools/private-network-test.c |
391 | index 3dd115b..2828bb3 100644 | 293 | index 3dd115ba..2828bb30 100644 |
392 | --- a/tools/private-network-test.c | 294 | --- a/tools/private-network-test.c |
393 | +++ b/tools/private-network-test.c | 295 | +++ b/tools/private-network-test.c |
394 | @@ -32,7 +32,7 @@ | 296 | @@ -32,7 +32,7 @@ |
@@ -400,11 +302,29 @@ index 3dd115b..2828bb3 100644 | |||
400 | #include <sys/signalfd.h> | 302 | #include <sys/signalfd.h> |
401 | #include <unistd.h> | 303 | #include <unistd.h> |
402 | 304 | ||
305 | diff --git a/tools/stats-tool.c b/tools/stats-tool.c | ||
306 | index efa39de2..5695048f 100644 | ||
307 | --- a/tools/stats-tool.c | ||
308 | +++ b/tools/stats-tool.c | ||
309 | @@ -22,7 +22,6 @@ | ||
310 | #include <config.h> | ||
311 | #endif | ||
312 | |||
313 | -#define _GNU_SOURCE | ||
314 | #include <sys/mman.h> | ||
315 | #include <sys/types.h> | ||
316 | #include <sys/stat.h> | ||
403 | diff --git a/tools/tap-test.c b/tools/tap-test.c | 317 | diff --git a/tools/tap-test.c b/tools/tap-test.c |
404 | index 57917f5..cb3ee62 100644 | 318 | index fdc098aa..cb3ee622 100644 |
405 | --- a/tools/tap-test.c | 319 | --- a/tools/tap-test.c |
406 | +++ b/tools/tap-test.c | 320 | +++ b/tools/tap-test.c |
407 | @@ -28,7 +28,7 @@ | 321 | @@ -23,13 +23,12 @@ |
322 | #include <config.h> | ||
323 | #endif | ||
324 | |||
325 | -#define _GNU_SOURCE | ||
326 | #include <stdio.h> | ||
327 | #include <errno.h> | ||
408 | #include <fcntl.h> | 328 | #include <fcntl.h> |
409 | #include <unistd.h> | 329 | #include <unistd.h> |
410 | #include <string.h> | 330 | #include <string.h> |
@@ -413,5 +333,30 @@ index 57917f5..cb3ee62 100644 | |||
413 | #include <sys/ioctl.h> | 333 | #include <sys/ioctl.h> |
414 | 334 | ||
415 | #include <netinet/in.h> | 335 | #include <netinet/in.h> |
336 | diff --git a/tools/wispr.c b/tools/wispr.c | ||
337 | index d5f9341f..e56dfc16 100644 | ||
338 | --- a/tools/wispr.c | ||
339 | +++ b/tools/wispr.c | ||
340 | @@ -23,7 +23,6 @@ | ||
341 | #include <config.h> | ||
342 | #endif | ||
343 | |||
344 | -#define _GNU_SOURCE | ||
345 | #include <stdio.h> | ||
346 | #include <fcntl.h> | ||
347 | #include <unistd.h> | ||
348 | diff --git a/vpn/plugins/vpn.c b/vpn/plugins/vpn.c | ||
349 | index 10548aaf..6e3f640c 100644 | ||
350 | --- a/vpn/plugins/vpn.c | ||
351 | +++ b/vpn/plugins/vpn.c | ||
352 | @@ -23,7 +23,6 @@ | ||
353 | #include <config.h> | ||
354 | #endif | ||
355 | |||
356 | -#define _GNU_SOURCE | ||
357 | #include <string.h> | ||
358 | #include <fcntl.h> | ||
359 | #include <unistd.h> | ||
416 | -- | 360 | -- |
417 | 2.8.1 | 361 | 2.17.1 |
362 | |||
diff --git a/meta/recipes-connectivity/connman/connman/0001-giognutls-Fix-a-crash-using-wispr-over-TLS.patch b/meta/recipes-connectivity/connman/connman/0001-giognutls-Fix-a-crash-using-wispr-over-TLS.patch deleted file mode 100644 index f9080d4ba9..0000000000 --- a/meta/recipes-connectivity/connman/connman/0001-giognutls-Fix-a-crash-using-wispr-over-TLS.patch +++ /dev/null | |||
@@ -1,41 +0,0 @@ | |||
1 | From 929fc9b7068100444e0ffcccd25841f78791e619 Mon Sep 17 00:00:00 2001 | ||
2 | From: Jian Liang <jianliang@tycoint.com> | ||
3 | Date: Fri, 15 Sep 2017 06:40:08 -0400 | ||
4 | Subject: [PATCH] gweb: Fix a crash using wispr over TLS | ||
5 | To: connman@lists.01.org | ||
6 | Cc: wagi@monom.org | ||
7 | |||
8 | When gnutls_channel is instantiated, the gnutls_channel->established | ||
9 | has to be initiated as FALSE. Otherwise, check_handshake function | ||
10 | won't work. A random initial value 1 of gnutls_channel->established | ||
11 | will make check_handshake return G_IO_STATUS_NORMAL, when the channel | ||
12 | is actually not ready to be used. The observed behaviours are, | ||
13 | |||
14 | - wispr is getting random errors in wispr_portal_web_result | ||
15 | - ConnMan crashes on exit after those random errors | ||
16 | - when wispr is luckly working, ConnMan doesn't crash on exit | ||
17 | |||
18 | Signed-off-by: Jian Liang <jianliang@tycoint.com> | ||
19 | |||
20 | --- | ||
21 | Upstream-Status: Backport [https://git.kernel.org/pub/scm/network/connman/connman.git/commit/?id=73e53f3bd9e7debae86341f1eee7b97862a56a5e] | ||
22 | Signed-off-by: André Draszik <andre.draszik@jci.com> | ||
23 | gweb/giognutls.c | 2 +- | ||
24 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
25 | |||
26 | diff --git a/gweb/giognutls.c b/gweb/giognutls.c | ||
27 | index 09dc9e7..c029a8b 100644 | ||
28 | --- a/gweb/giognutls.c | ||
29 | +++ b/gweb/giognutls.c | ||
30 | @@ -421,7 +421,7 @@ GIOChannel *g_io_channel_gnutls_new(int fd) | ||
31 | |||
32 | DBG(""); | ||
33 | |||
34 | - gnutls_channel = g_new(GIOGnuTLSChannel, 1); | ||
35 | + gnutls_channel = g_new0(GIOGnuTLSChannel, 1); | ||
36 | |||
37 | channel = (GIOChannel *) gnutls_channel; | ||
38 | |||
39 | -- | ||
40 | 2.7.4 | ||
41 | |||
diff --git a/meta/recipes-connectivity/connman/connman/0001-session-Keep-track-of-addr-in-fw_snat-session.patch b/meta/recipes-connectivity/connman/connman/0001-session-Keep-track-of-addr-in-fw_snat-session.patch deleted file mode 100644 index f1b4d0aaa7..0000000000 --- a/meta/recipes-connectivity/connman/connman/0001-session-Keep-track-of-addr-in-fw_snat-session.patch +++ /dev/null | |||
@@ -1,112 +0,0 @@ | |||
1 | From b5fd5945886fa1845db5c969424b63d894fe0376 Mon Sep 17 00:00:00 2001 | ||
2 | From: Jian Liang <jianliang@tycoint.com> | ||
3 | Date: Fri, 25 Aug 2017 10:02:16 -0400 | ||
4 | Subject: [PATCH 1/2] session: Keep track of addr in fw_snat & session | ||
5 | To: connman@lists.01.org | ||
6 | Cc: wagi@monom.org | ||
7 | |||
8 | When there is more than one session in fw_snat's list of sessions, | ||
9 | fw_snat failed to be re-created when update-session-state is triggered | ||
10 | with new IP address. This is because index alone is not sufficient to | ||
11 | decide if fw_snat needs to be re-created. The solution here is to keep | ||
12 | a track of IP addr and use it to avoid false lookup of fw_snat. | ||
13 | |||
14 | Signed-off-by: Jian Liang <jianliang@tycoint.com> | ||
15 | |||
16 | --- | ||
17 | Upstream-Status: Backport [https://git.kernel.org/pub/scm/network/connman/connman.git/commit/?id=f9e27d4abfcab5c80a38e0850b5ddb26277f97c1] | ||
18 | Signed-off-by: André Draszik <andre.draszik@jci.com> | ||
19 | src/session.c | 19 +++++++++++++++---- | ||
20 | 1 file changed, 15 insertions(+), 4 deletions(-) | ||
21 | |||
22 | diff --git a/src/session.c b/src/session.c | ||
23 | index 9e3c559..965ac06 100644 | ||
24 | --- a/src/session.c | ||
25 | +++ b/src/session.c | ||
26 | @@ -65,6 +65,7 @@ struct connman_session { | ||
27 | struct firewall_context *fw; | ||
28 | uint32_t mark; | ||
29 | int index; | ||
30 | + char *addr; | ||
31 | char *gateway; | ||
32 | bool policy_routing; | ||
33 | bool snat_enabled; | ||
34 | @@ -79,6 +80,7 @@ struct fw_snat { | ||
35 | GSList *sessions; | ||
36 | int id; | ||
37 | int index; | ||
38 | + char *addr; | ||
39 | struct firewall_context *fw; | ||
40 | }; | ||
41 | |||
42 | @@ -200,7 +202,7 @@ static char *service2bearer(enum connman_service_type type) | ||
43 | return ""; | ||
44 | } | ||
45 | |||
46 | -static struct fw_snat *fw_snat_lookup(int index) | ||
47 | +static struct fw_snat *fw_snat_lookup(int index, const char *addr) | ||
48 | { | ||
49 | struct fw_snat *fw_snat; | ||
50 | GSList *list; | ||
51 | @@ -208,8 +210,11 @@ static struct fw_snat *fw_snat_lookup(int index) | ||
52 | for (list = fw_snat_list; list; list = list->next) { | ||
53 | fw_snat = list->data; | ||
54 | |||
55 | - if (fw_snat->index == index) | ||
56 | + if (fw_snat->index == index) { | ||
57 | + if (g_strcmp0(addr, fw_snat->addr) != 0) | ||
58 | + continue; | ||
59 | return fw_snat; | ||
60 | + } | ||
61 | } | ||
62 | return NULL; | ||
63 | } | ||
64 | @@ -224,6 +229,7 @@ static int fw_snat_create(struct connman_session *session, | ||
65 | |||
66 | fw_snat->fw = __connman_firewall_create(); | ||
67 | fw_snat->index = index; | ||
68 | + fw_snat->addr = g_strdup(addr); | ||
69 | |||
70 | fw_snat->id = __connman_firewall_enable_snat(fw_snat->fw, | ||
71 | index, ifname, addr); | ||
72 | @@ -238,6 +244,7 @@ static int fw_snat_create(struct connman_session *session, | ||
73 | return 0; | ||
74 | err: | ||
75 | __connman_firewall_destroy(fw_snat->fw); | ||
76 | + g_free(fw_snat->addr); | ||
77 | g_free(fw_snat); | ||
78 | return err; | ||
79 | } | ||
80 | @@ -393,7 +400,7 @@ static void del_nat_rules(struct connman_session *session) | ||
81 | return; | ||
82 | |||
83 | session->snat_enabled = false; | ||
84 | - fw_snat = fw_snat_lookup(session->index); | ||
85 | + fw_snat = fw_snat_lookup(session->index, session->addr); | ||
86 | |||
87 | if (!fw_snat) | ||
88 | return; | ||
89 | @@ -420,8 +427,11 @@ static void add_nat_rules(struct connman_session *session) | ||
90 | if (!addr) | ||
91 | return; | ||
92 | |||
93 | + g_free(session->addr); | ||
94 | + session->addr = g_strdup(addr); | ||
95 | + | ||
96 | session->snat_enabled = true; | ||
97 | - fw_snat = fw_snat_lookup(index); | ||
98 | + fw_snat = fw_snat_lookup(index, session->addr); | ||
99 | if (fw_snat) { | ||
100 | fw_snat_ref(session, fw_snat); | ||
101 | return; | ||
102 | @@ -502,6 +512,7 @@ static void free_session(struct connman_session *session) | ||
103 | g_free(session->info); | ||
104 | g_free(session->info_last); | ||
105 | g_free(session->gateway); | ||
106 | + g_free(session->addr); | ||
107 | |||
108 | g_free(session); | ||
109 | } | ||
110 | -- | ||
111 | 2.7.4 | ||
112 | |||
diff --git a/meta/recipes-connectivity/connman/connman/0002-inet-Implement-subnet-route-creation-deletion-in-ipr.patch b/meta/recipes-connectivity/connman/connman/0002-inet-Implement-subnet-route-creation-deletion-in-ipr.patch deleted file mode 100644 index 9c953e5d51..0000000000 --- a/meta/recipes-connectivity/connman/connman/0002-inet-Implement-subnet-route-creation-deletion-in-ipr.patch +++ /dev/null | |||
@@ -1,69 +0,0 @@ | |||
1 | From 08cda4004491d3971a8b9df937426c43800d15b1 Mon Sep 17 00:00:00 2001 | ||
2 | From: Jian Liang <jianliang@tycoint.com> | ||
3 | Date: Thu, 5 Oct 2017 09:37:06 +0100 | ||
4 | Subject: [PATCH 2/4] inet: Implement subnet route creation/deletion in | ||
5 | iproute_default_modify | ||
6 | To: connman@lists.01.org | ||
7 | Cc: wagi@monom.org | ||
8 | |||
9 | - Calculate subnet address base on gateway address and prefixlen | ||
10 | - Differentiate creation of routes to gateway and subnet | ||
11 | |||
12 | Signed-off-by: Jian Liang <jianliang@tycoint.com> | ||
13 | |||
14 | --- | ||
15 | Upstream-Status: Backport [https://git.kernel.org/pub/scm/network/connman/connman.git/commit/?id=ff7dcf91f12a2a237feebc6e606d0a8e92975528] | ||
16 | Signed-off-by: André Draszik <andre.draszik@jci.com> | ||
17 | src/inet.c | 22 +++++++++++++++++++--- | ||
18 | 1 file changed, 19 insertions(+), 3 deletions(-) | ||
19 | |||
20 | diff --git a/src/inet.c b/src/inet.c | ||
21 | index ab8aec8..0ddb030 100644 | ||
22 | --- a/src/inet.c | ||
23 | +++ b/src/inet.c | ||
24 | @@ -2802,6 +2802,9 @@ static int iproute_default_modify(int cmd, uint32_t table_id, int ifindex, | ||
25 | unsigned char buf[sizeof(struct in6_addr)]; | ||
26 | int ret, len; | ||
27 | int family = connman_inet_check_ipaddress(gateway); | ||
28 | + char *dst = NULL; | ||
29 | + | ||
30 | + DBG("gateway %s/%u table %u", gateway, prefixlen, table_id); | ||
31 | |||
32 | switch (family) { | ||
33 | case AF_INET: | ||
34 | @@ -2814,7 +2817,19 @@ static int iproute_default_modify(int cmd, uint32_t table_id, int ifindex, | ||
35 | return -EINVAL; | ||
36 | } | ||
37 | |||
38 | - ret = inet_pton(family, gateway, buf); | ||
39 | + if (prefixlen) { | ||
40 | + struct in_addr ipv4_subnet_addr, ipv4_mask; | ||
41 | + | ||
42 | + memset(&ipv4_subnet_addr, 0, sizeof(ipv4_subnet_addr)); | ||
43 | + ipv4_mask.s_addr = htonl((0xffffffff << (32 - prefixlen)) & 0xffffffff); | ||
44 | + ipv4_subnet_addr.s_addr = inet_addr(gateway); | ||
45 | + ipv4_subnet_addr.s_addr &= ipv4_mask.s_addr; | ||
46 | + | ||
47 | + dst = g_strdup(inet_ntoa(ipv4_subnet_addr)); | ||
48 | + } | ||
49 | + | ||
50 | + ret = inet_pton(family, dst ? dst : gateway, buf); | ||
51 | + g_free(dst); | ||
52 | if (ret <= 0) | ||
53 | return -EINVAL; | ||
54 | |||
55 | @@ -2831,8 +2846,9 @@ static int iproute_default_modify(int cmd, uint32_t table_id, int ifindex, | ||
56 | rth.req.u.r.rt.rtm_type = RTN_UNICAST; | ||
57 | rth.req.u.r.rt.rtm_dst_len = prefixlen; | ||
58 | |||
59 | - __connman_inet_rtnl_addattr_l(&rth.req.n, sizeof(rth.req), RTA_GATEWAY, | ||
60 | - buf, len); | ||
61 | + __connman_inet_rtnl_addattr_l(&rth.req.n, sizeof(rth.req), | ||
62 | + prefixlen > 0 ? RTA_DST : RTA_GATEWAY, buf, len); | ||
63 | + | ||
64 | if (table_id < 256) { | ||
65 | rth.req.u.r.rt.rtm_table = table_id; | ||
66 | } else { | ||
67 | -- | ||
68 | 2.7.4 | ||
69 | |||
diff --git a/meta/recipes-connectivity/connman/connman/0003-inet-Implement-APIs-for-creating-and-deleting-subnet.patch b/meta/recipes-connectivity/connman/connman/0003-inet-Implement-APIs-for-creating-and-deleting-subnet.patch deleted file mode 100644 index 56ba5c3f4b..0000000000 --- a/meta/recipes-connectivity/connman/connman/0003-inet-Implement-APIs-for-creating-and-deleting-subnet.patch +++ /dev/null | |||
@@ -1,68 +0,0 @@ | |||
1 | From a9243f13d6e1aadd69bfcc27f75f69c38be51677 Mon Sep 17 00:00:00 2001 | ||
2 | From: Jian Liang <jianliang@tycoint.com> | ||
3 | Date: Wed, 4 Oct 2017 17:30:17 +0100 | ||
4 | Subject: [PATCH 3/4] inet: Implement APIs for creating and deleting subnet | ||
5 | route | ||
6 | To: connman@lists.01.org | ||
7 | Cc: wagi@monom.org | ||
8 | |||
9 | Signed-off-by: Jian Liang <jianliang@tycoint.com> | ||
10 | |||
11 | --- | ||
12 | Upstream-Status: Backport [https://git.kernel.org/pub/scm/network/connman/connman.git/commit/?id=3a15b0b7fccd053aff91da2cc68585509d0c509b] | ||
13 | Signed-off-by: André Draszik <andre.draszik@jci.com> | ||
14 | src/connman.h | 4 ++++ | ||
15 | src/inet.c | 14 ++++++++++++++ | ||
16 | 2 files changed, 18 insertions(+) | ||
17 | |||
18 | diff --git a/src/connman.h b/src/connman.h | ||
19 | index 21b7080..da4446a 100644 | ||
20 | --- a/src/connman.h | ||
21 | +++ b/src/connman.h | ||
22 | @@ -240,7 +240,11 @@ int __connman_inet_rtnl_addattr32(struct nlmsghdr *n, size_t maxlen, | ||
23 | int __connman_inet_add_fwmark_rule(uint32_t table_id, int family, uint32_t fwmark); | ||
24 | int __connman_inet_del_fwmark_rule(uint32_t table_id, int family, uint32_t fwmark); | ||
25 | int __connman_inet_add_default_to_table(uint32_t table_id, int ifindex, const char *gateway); | ||
26 | +int __connman_inet_add_subnet_to_table(uint32_t table_id, int ifindex, | ||
27 | + const char *gateway, unsigned char prefixlen); | ||
28 | int __connman_inet_del_default_from_table(uint32_t table_id, int ifindex, const char *gateway); | ||
29 | +int __connman_inet_del_subnet_from_table(uint32_t table_id, int ifindex, | ||
30 | + const char *gateway, unsigned char prefixlen); | ||
31 | int __connman_inet_get_address_netmask(int ifindex, | ||
32 | struct sockaddr_in *address, struct sockaddr_in *netmask); | ||
33 | |||
34 | diff --git a/src/inet.c b/src/inet.c | ||
35 | index 0ddb030..dcd1ab2 100644 | ||
36 | --- a/src/inet.c | ||
37 | +++ b/src/inet.c | ||
38 | @@ -2880,6 +2880,13 @@ int __connman_inet_add_default_to_table(uint32_t table_id, int ifindex, | ||
39 | return iproute_default_modify(RTM_NEWROUTE, table_id, ifindex, gateway, 0); | ||
40 | } | ||
41 | |||
42 | +int __connman_inet_add_subnet_to_table(uint32_t table_id, int ifindex, | ||
43 | + const char *gateway, unsigned char prefixlen) | ||
44 | +{ | ||
45 | + /* ip route add 1.2.3.4/24 dev eth0 table 1234 */ | ||
46 | + return iproute_default_modify(RTM_NEWROUTE, table_id, ifindex, gateway, prefixlen); | ||
47 | +} | ||
48 | + | ||
49 | int __connman_inet_del_default_from_table(uint32_t table_id, int ifindex, | ||
50 | const char *gateway) | ||
51 | { | ||
52 | @@ -2888,6 +2895,13 @@ int __connman_inet_del_default_from_table(uint32_t table_id, int ifindex, | ||
53 | return iproute_default_modify(RTM_DELROUTE, table_id, ifindex, gateway, 0); | ||
54 | } | ||
55 | |||
56 | +int __connman_inet_del_subnet_from_table(uint32_t table_id, int ifindex, | ||
57 | + const char *gateway, unsigned char prefixlen) | ||
58 | +{ | ||
59 | + /* ip route del 1.2.3.4/24 dev eth0 table 1234 */ | ||
60 | + return iproute_default_modify(RTM_DELROUTE, table_id, ifindex, gateway, prefixlen); | ||
61 | +} | ||
62 | + | ||
63 | int __connman_inet_get_interface_ll_address(int index, int family, | ||
64 | void *address) | ||
65 | { | ||
66 | -- | ||
67 | 2.7.4 | ||
68 | |||
diff --git a/meta/recipes-connectivity/connman/connman/0004-session-Use-subnet-route-creation-and-deletion-APIs.patch b/meta/recipes-connectivity/connman/connman/0004-session-Use-subnet-route-creation-and-deletion-APIs.patch deleted file mode 100644 index ca213eb18b..0000000000 --- a/meta/recipes-connectivity/connman/connman/0004-session-Use-subnet-route-creation-and-deletion-APIs.patch +++ /dev/null | |||
@@ -1,77 +0,0 @@ | |||
1 | From deb9372db8396da4f7cd20555ce7c9a8b3ad96bd Mon Sep 17 00:00:00 2001 | ||
2 | From: Jian Liang <jianliang@tycoint.com> | ||
3 | Date: Fri, 6 Oct 2017 11:40:16 +0100 | ||
4 | Subject: [PATCH 4/4] session: Use subnet route creation and deletion APIs | ||
5 | To: connman@lists.01.org | ||
6 | Cc: wagi@monom.org | ||
7 | |||
8 | As subnet route is address and session specific in this case, so add | ||
9 | prefixlen into struct connman_session, and update it along with ipconfig. | ||
10 | Then use it in subnet route related APIs. | ||
11 | |||
12 | Signed-off-by: Jian Liang <jianliang@tycoint.com> | ||
13 | |||
14 | --- | ||
15 | Upstream-Status: Backport [https://git.kernel.org/pub/scm/network/connman/connman.git/commit/?id=285f25ef6cc9e4a43dab83523f3e2eab4365ac26] | ||
16 | Signed-off-by: André Draszik <andre.draszik@jci.com> | ||
17 | src/session.c | 20 ++++++++++++++++---- | ||
18 | 1 file changed, 16 insertions(+), 4 deletions(-) | ||
19 | |||
20 | diff --git a/src/session.c b/src/session.c | ||
21 | index 965ac06..7b7a14b 100644 | ||
22 | --- a/src/session.c | ||
23 | +++ b/src/session.c | ||
24 | @@ -67,6 +67,7 @@ struct connman_session { | ||
25 | int index; | ||
26 | char *addr; | ||
27 | char *gateway; | ||
28 | + unsigned char prefixlen; | ||
29 | bool policy_routing; | ||
30 | bool snat_enabled; | ||
31 | }; | ||
32 | @@ -357,13 +358,17 @@ static void del_default_route(struct connman_session *session) | ||
33 | if (!session->gateway) | ||
34 | return; | ||
35 | |||
36 | - DBG("index %d routing table %d default gateway %s", | ||
37 | - session->index, session->mark, session->gateway); | ||
38 | + DBG("index %d routing table %d default gateway %s/%u", | ||
39 | + session->index, session->mark, session->gateway, session->prefixlen); | ||
40 | + | ||
41 | + __connman_inet_del_subnet_from_table(session->mark, | ||
42 | + session->index, session->gateway, session->prefixlen); | ||
43 | |||
44 | __connman_inet_del_default_from_table(session->mark, | ||
45 | session->index, session->gateway); | ||
46 | g_free(session->gateway); | ||
47 | session->gateway = NULL; | ||
48 | + session->prefixlen = 0; | ||
49 | session->index = -1; | ||
50 | } | ||
51 | |||
52 | @@ -383,13 +388,20 @@ static void add_default_route(struct connman_session *session) | ||
53 | if (!session->gateway) | ||
54 | session->gateway = g_strdup(inet_ntoa(addr)); | ||
55 | |||
56 | - DBG("index %d routing table %d default gateway %s", | ||
57 | - session->index, session->mark, session->gateway); | ||
58 | + session->prefixlen = __connman_ipconfig_get_prefixlen(ipconfig); | ||
59 | + | ||
60 | + DBG("index %d routing table %d default gateway %s/%u", | ||
61 | + session->index, session->mark, session->gateway, session->prefixlen); | ||
62 | |||
63 | err = __connman_inet_add_default_to_table(session->mark, | ||
64 | session->index, session->gateway); | ||
65 | if (err < 0) | ||
66 | DBG("session %p %s", session, strerror(-err)); | ||
67 | + | ||
68 | + err = __connman_inet_add_subnet_to_table(session->mark, | ||
69 | + session->index, session->gateway, session->prefixlen); | ||
70 | + if (err < 0) | ||
71 | + DBG("session add subnet route %p %s", session, strerror(-err)); | ||
72 | } | ||
73 | |||
74 | static void del_nat_rules(struct connman_session *session) | ||
75 | -- | ||
76 | 2.7.4 | ||
77 | |||
diff --git a/meta/recipes-connectivity/connman/connman_1.35.bb b/meta/recipes-connectivity/connman/connman_1.35.bb deleted file mode 100644 index ff2118113f..0000000000 --- a/meta/recipes-connectivity/connman/connman_1.35.bb +++ /dev/null | |||
@@ -1,22 +0,0 @@ | |||
1 | require connman.inc | ||
2 | |||
3 | SRC_URI = "${KERNELORG_MIRROR}/linux/network/${BPN}/${BP}.tar.xz \ | ||
4 | file://0001-plugin.h-Change-visibility-to-default-for-debug-symb.patch \ | ||
5 | file://0001-connman.service-stop-systemd-resolved-when-we-use-co.patch \ | ||
6 | file://connman \ | ||
7 | file://no-version-scripts.patch \ | ||
8 | file://includes.patch \ | ||
9 | file://0001-session-Keep-track-of-addr-in-fw_snat-session.patch \ | ||
10 | file://0001-giognutls-Fix-a-crash-using-wispr-over-TLS.patch \ | ||
11 | file://0001-inet-Add-prefixlen-to-iproute_default_function.patch \ | ||
12 | file://0002-inet-Implement-subnet-route-creation-deletion-in-ipr.patch \ | ||
13 | file://0003-inet-Implement-APIs-for-creating-and-deleting-subnet.patch \ | ||
14 | file://0004-session-Use-subnet-route-creation-and-deletion-APIs.patch \ | ||
15 | " | ||
16 | SRC_URI_append_libc-musl = " file://0002-resolve-musl-does-not-implement-res_ninit.patch \ | ||
17 | " | ||
18 | |||
19 | SRC_URI[md5sum] = "bae37b45ee9b3db5ec8115188f8a7652" | ||
20 | SRC_URI[sha256sum] = "66d7deb98371545c6e417239a9b3b3e3201c1529d08eedf40afbc859842cf2aa" | ||
21 | |||
22 | RRECOMMENDS_${PN} = "connman-conf" | ||
diff --git a/meta/recipes-connectivity/connman/connman_1.36.bb b/meta/recipes-connectivity/connman/connman_1.36.bb new file mode 100644 index 0000000000..6e4dbdfda6 --- /dev/null +++ b/meta/recipes-connectivity/connman/connman_1.36.bb | |||
@@ -0,0 +1,16 @@ | |||
1 | require connman.inc | ||
2 | |||
3 | SRC_URI = "${KERNELORG_MIRROR}/linux/network/${BPN}/${BP}.tar.xz \ | ||
4 | file://0001-plugin.h-Change-visibility-to-default-for-debug-symb.patch \ | ||
5 | file://0001-connman.service-stop-systemd-resolved-when-we-use-co.patch \ | ||
6 | file://connman \ | ||
7 | file://no-version-scripts.patch \ | ||
8 | file://0001-Fix-various-issues-which-cause-problems-under-musl.patch \ | ||
9 | " | ||
10 | |||
11 | SRC_URI_append_libc-musl = " file://0002-resolve-musl-does-not-implement-res_ninit.patch" | ||
12 | |||
13 | SRC_URI[md5sum] = "dae77d9c904d2c223ae849e32079d57e" | ||
14 | SRC_URI[sha256sum] = "c789db41cc443fa41e661217ea321492ad59a004bebcd1aa013f3bc10a6e0074" | ||
15 | |||
16 | RRECOMMENDS_${PN} = "connman-conf" | ||