Only use IPV6_TCLASS and IPV6_V6ONLY when defined
authorHenning Rogge <hrogge@gmail.com>
Sun, 16 Nov 2014 15:06:29 +0000 (16:06 +0100)
committerHenning Rogge <hrogge@gmail.com>
Sun, 16 Nov 2014 15:06:29 +0000 (16:06 +0100)
lib/jsoninfo/src/olsrd_jsoninfo.c
lib/txtinfo/src/olsrd_txtinfo.c
src/unix/ifnet.c

index 84d0a03..061671c 100644 (file)
@@ -385,14 +385,14 @@ plugin_ipc_init(void)
       return 0;
     }
 #endif /* (defined __FreeBSD__ || defined __FreeBSD_kernel__) && defined SO_NOSIGPIPE */
-#if defined linux
+#if defined linux && defined IPV6_V6ONLY
     if (jsoninfo_ipv6_only && olsr_cnf->ip_version == AF_INET6) {
       if (setsockopt(ipc_socket, IPPROTO_IPV6, IPV6_V6ONLY, (char *)&yes, sizeof(yes)) < 0) {
         perror("IPV6_V6ONLY failed");
         return 0;
       }
     }
-#endif /* defined linux */
+#endif /* defined linux && defined IPV6_V6ONLY */
     /* Bind the socket */
 
     /* complete the socket structure */
index 23479d0..d9f5402 100644 (file)
@@ -198,14 +198,14 @@ plugin_ipc_init(void)
       return 0;
     }
 #endif /* (defined __FreeBSD__ || defined __FreeBSD_kernel__) && defined SO_NOSIGPIPE */
-#if defined linux
+#if defined linux && defined IPV6_V6ONLY
     if (txtinfo_ipv6_only && olsr_cnf->ip_version == AF_INET6) {
       if (setsockopt(ipc_socket, IPPROTO_IPV6, IPV6_V6ONLY, (char *)&yes, sizeof(yes)) < 0) {
         perror("IPV6_V6ONLY failed");
         return 0;
       }
     }
-#endif /* defined linux */
+#endif /* defined linux && defined IPV6_V6ONLY */
     /* Bind the socket */
 
     /* complete the socket structure */
index 206fc25..a1c64f1 100644 (file)
@@ -790,10 +790,12 @@ chk_if_up(struct olsr_if *iface, int debuglvl __attribute__ ((unused)))
     }
   } else {
     /* IP version 6 */
+#ifdef IPV6_TCLASS
     if (setsockopt(ifp->send_socket, IPPROTO_IPV6, IPV6_TCLASS, (char *)&tos_bits, sizeof(tos_bits)) < 0) {
       perror("setsockopt(IPV6_TCLASS)");
       olsr_syslog(OLSR_LOG_ERR, "setsockopt(IPV6_TCLASS) error %m");
     }
+#endif
   }
 #endif /* __linux__ */