changeset 2717:84d3fb71b565 draft

Fix a compile problem on Linux with IPv6 disabled.
author Roy Marples <roy@marples.name>
date Sat, 27 Sep 2014 07:37:15 +0000
parents cb99895aeffb
children 4ab6ccff388c
files if-linux.c
diffstat 1 files changed, 12 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/if-linux.c	Sat Sep 27 02:22:34 2014 +0000
+++ b/if-linux.c	Sat Sep 27 07:37:15 2014 +0000
@@ -436,13 +436,18 @@
 
 	rta = (struct rtattr *)(void *)((char *)rtm +NLMSG_ALIGN(sizeof(*rtm)));
 	len = NLMSG_PAYLOAD(nlm, sizeof(*rtm));
-	memset(&rt, 0, sizeof(rt));
-	rt.dest.s_addr = INADDR_ANY;
-	rt.net.s_addr = INADDR_ANY;
-	rt.gate.s_addr = INADDR_ANY;
+#ifdef INET
+	if (rtm->rtm_family == AF_INET)
+		memset(&rt, 0, sizeof(rt));
+#endif
+#ifdef INET6
+	if (rtm->rtm_family == AF_INET6)
+		memset(&rt6, 0, sizeof(rt6));
+#endif
 	metric = 0;
 	while (RTA_OK(rta, len)) {
 		switch (rtm->rtm_family) {
+#ifdef INET
 		case AF_INET:
 			switch (rta->rta_type) {
 			case RTA_DST:
@@ -459,6 +464,8 @@
 				break;
 			}
 			break;
+#endif
+#ifdef INET6
 		case AF_INET6:
 			switch (rta->rta_type) {
 			case RTA_DST:
@@ -475,6 +482,7 @@
 				break;
 			}
 			break;
+#endif
 		}
 		switch (rta->rta_type) {
 		case RTA_PRIORITY: