aboutsummaryrefslogtreecommitdiffstats
path: root/testing/bird/fix-msghdr.patch
diff options
context:
space:
mode:
Diffstat (limited to 'testing/bird/fix-msghdr.patch')
-rw-r--r--testing/bird/fix-msghdr.patch30
1 files changed, 30 insertions, 0 deletions
diff --git a/testing/bird/fix-msghdr.patch b/testing/bird/fix-msghdr.patch
new file mode 100644
index 0000000000..5c89997805
--- /dev/null
+++ b/testing/bird/fix-msghdr.patch
@@ -0,0 +1,30 @@
+--- bird-1.6.0.orig/sysdep/linux/netlink.c
++++ bird-1.6.0/sysdep/linux/netlink.c
+@@ -125,7 +125,12 @@
+ {
+ struct iovec iov = { nl->rx_buffer, NL_RX_SIZE };
+ struct sockaddr_nl sa;
+- struct msghdr m = { (struct sockaddr *) &sa, sizeof(sa), &iov, 1, NULL, 0, 0 };
++ struct msghdr m = {
++ .msg_name = (struct sockaddr *) &sa,
++ .msg_namelen = sizeof(sa),
++ .msg_iov = &iov,
++ .msg_iovlen = 1,
++ };
+ int x = recvmsg(nl->fd, &m, 0);
+ if (x < 0)
+ die("nl_get_reply: %m");
+@@ -1231,7 +1236,12 @@
+ {
+ struct iovec iov = { nl_async_rx_buffer, NL_RX_SIZE };
+ struct sockaddr_nl sa;
+- struct msghdr m = { (struct sockaddr *) &sa, sizeof(sa), &iov, 1, NULL, 0, 0 };
++ struct msghdr m = {
++ .msg_name = (struct sockaddr *) &sa,
++ .msg_namelen = sizeof(sa),
++ .msg_iov = &iov,
++ .msg_iovlen = 1,
++ };
+ struct nlmsghdr *h;
+ int x;
+ uint len;