changeset 4192:72557c2f086e draft

bsd: set sa_len
author Roy Marples <roy@marples.name>
date Thu, 07 Dec 2017 21:12:43 +0000
parents 30f5f070a4aa
children a1772bc670f0
files src/dhcp.c src/dhcp6.c src/ipv6nd.c
diffstat 3 files changed, 12 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/src/dhcp.c	Thu Dec 07 20:44:13 2017 +0000
+++ b/src/dhcp.c	Thu Dec 07 21:12:43 2017 +0000
@@ -1689,10 +1689,7 @@
 {
 	int s;
 	struct msghdr msg;
-	union {
-		struct sockaddr sa;
-		struct sockaddr_in sin;
-	} sto;
+	struct sockaddr_in sin;
 	struct iovec iov[1];
 	ssize_t r;
 #ifdef IP_PKTINFO
@@ -1704,14 +1701,17 @@
 	iov[0].iov_base = data;
 	iov[0].iov_len = len;
 
-	memset(&sto, 0, sizeof(sto));
-	sto.sin.sin_family = AF_INET;
-	sto.sin.sin_addr = *to;
-	sto.sin.sin_port = htons(BOOTPS);
+	memset(&sin, 0, sizeof(sin));
+	sin.sin_family = AF_INET;
+	sin.sin_addr = *to;
+	sin.sin_port = htons(BOOTPS);
+#ifdef HAVE_SA_LEN
+	sin.sin_len = sizeof(sin);
+#endif
 
 	memset(&msg, 0, sizeof(msg));
-	msg.msg_name = (void *)&sto.sa;
-	msg.msg_namelen = sizeof(sto);
+	msg.msg_name = (void *)&sin;
+	msg.msg_namelen = sizeof(sin);
 	msg.msg_iov = iov;
 	msg.msg_iovlen = 1;
 
--- a/src/dhcp6.c	Thu Dec 07 20:44:13 2017 +0000
+++ b/src/dhcp6.c	Thu Dec 07 21:12:43 2017 +0000
@@ -1099,7 +1099,7 @@
 	memset(&dst, 0, sizeof(dst));
 	dst.sin6_family = AF_INET6;
 	dst.sin6_port = htons(DHCP6_SERVER_PORT);
-#ifdef SIN6_LEN
+#ifdef HAVE_SA_LEN
 	dst.sin6_len = sizeof(dst);
 #endif
 
--- a/src/ipv6nd.c	Thu Dec 07 20:44:13 2017 +0000
+++ b/src/ipv6nd.c	Thu Dec 07 21:12:43 2017 +0000
@@ -286,7 +286,7 @@
 
 	memset(&dst, 0, sizeof(dst));
 	dst.sin6_family = AF_INET6;
-#ifdef SIN6_LEN
+#ifdef HAVE_SA_LEN
 	dst.sin6_len = sizeof(dst);
 #endif
 	dst.sin6_scope_id = ifp->index;