nodogsplash: wait for interface to appear
[feed/routing.git] / bird / patches / 001-netlink-update-struct-msghdr.patch
1 From 31e9e10144a6994773a04d94903fa3bdde6de91e Mon Sep 17 00:00:00 2001
2 From: Stijn Tintel <stijn@linux-ipv6.be>
3 Date: Tue, 10 May 2016 16:45:35 +0300
4 Subject: [PATCH] netlink: update struct msghdr
5
6 The netlink code assumes an order for the members of struct msghdr.
7 This breaks recvmsg and sendmsg with musl libc on mips64. Fix this by
8 using designated initializers instead.
9
10 Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
11 ---
12 sysdep/linux/netlink.c | 14 ++++++++++++--
13 1 file changed, 12 insertions(+), 2 deletions(-)
14
15 diff --git a/sysdep/linux/netlink.c b/sysdep/linux/netlink.c
16 index 1ffdff0..b42e7b6 100644
17 --- a/sysdep/linux/netlink.c
18 +++ b/sysdep/linux/netlink.c
19 @@ -125,7 +125,12 @@ nl_get_reply(struct nl_sock *nl)
20 {
21 struct iovec iov = { nl->rx_buffer, NL_RX_SIZE };
22 struct sockaddr_nl sa;
23 - struct msghdr m = { (struct sockaddr *) &sa, sizeof(sa), &iov, 1, NULL, 0, 0 };
24 + struct msghdr m = {
25 + .msg_name = &sa,
26 + .msg_namelen = sizeof(sa),
27 + .msg_iov = &iov,
28 + .msg_iovlen = 1,
29 + };
30 int x = recvmsg(nl->fd, &m, 0);
31 if (x < 0)
32 die("nl_get_reply: %m");
33 @@ -1231,7 +1236,12 @@ nl_async_hook(sock *sk, int size UNUSED)
34 {
35 struct iovec iov = { nl_async_rx_buffer, NL_RX_SIZE };
36 struct sockaddr_nl sa;
37 - struct msghdr m = { (struct sockaddr *) &sa, sizeof(sa), &iov, 1, NULL, 0, 0 };
38 + struct msghdr m = {
39 + .msg_name = &sa,
40 + .msg_namelen = sizeof(sa),
41 + .msg_iov = &iov,
42 + .msg_iovlen = 1,
43 + };
44 struct nlmsghdr *h;
45 int x;
46 uint len;
47 --
48 2.7.3
49