--- src/liboping.c +++ src/liboping.c @@ -539,12 +539,15 @@ if (cmsg->cmsg_level != IPPROTO_IPV6) continue; +#if defined(IPV6_TCLASS) if (cmsg->cmsg_type == IPV6_TCLASS) { memcpy (&recv_qos, CMSG_DATA (cmsg), sizeof (recv_qos)); dprintf ("TOSv6 = 0x%02"PRIx8";\n", recv_qos); } else +#endif /* defined(IPV6_TCLASS) */ +#if defined(IPV6_HOPLIMIT) if (cmsg->cmsg_type == IPV6_HOPLIMIT) { memcpy (&recv_ttl, CMSG_DATA (cmsg), @@ -552,6 +555,7 @@ dprintf ("TTLv6 = %i;\n", recv_ttl); } else +#endif /* defined(IPV6_HOPLIMIT) */ { dprintf ("Not handling option %i.\n", cmsg->cmsg_type); @@ -946,12 +950,14 @@ ret = setsockopt (ph->fd, IPPROTO_IP, IP_TTL, &ttl, sizeof (ttl)); } +#if defined(IPV6_UNICAST_HOPS) else if (ph->addrfamily == AF_INET6) { dprintf ("Setting TTLv6 to %i\n", ttl); ret = setsockopt (ph->fd, IPPROTO_IPV6, IPV6_UNICAST_HOPS, &ttl, sizeof (ttl)); } +#endif /* IPV6_UNICAST_HOPS */ return (ret); } @@ -980,6 +986,7 @@ dprintf ("Setting TP_TOS failed: %s\n", errbuf); } } +#if defined(IPV6_TCLASS) else if (ph->addrfamily == AF_INET6) { /* IPV6_TCLASS requires an "int". */ @@ -996,6 +1003,7 @@ dprintf ("Setting IPV6_TCLASS failed: %s\n", errbuf); } } +#endif /* defined(IPV6_TCLASS) */ return (ret); }