Fixme: this is bogus

Index: ngtcp2-1.9.1/examples/shared.cc
===================================================================
--- ngtcp2-1.9.1.orig/examples/shared.cc
+++ ngtcp2-1.9.1/examples/shared.cc
@@ -89,12 +89,15 @@ unsigned int msghdr_get_ecn(msghdr *msg,
 void fd_set_recv_ecn(int fd, int family) {
   unsigned int tos = 1;
   switch (family) {
+#ifdef IP_RECVTOS
   case AF_INET:
     if (setsockopt(fd, IPPROTO_IP, IP_RECVTOS, &tos,
                    static_cast<socklen_t>(sizeof(tos))) == -1) {
       std::cerr << "setsockopt: " << strerror(errno) << std::endl;
     }
     break;
+#endif
+#ifdef IPV6_RECVTCLASS
   case AF_INET6:
     if (setsockopt(fd, IPPROTO_IPV6, IPV6_RECVTCLASS, &tos,
                    static_cast<socklen_t>(sizeof(tos))) == -1) {
@@ -102,6 +105,7 @@ void fd_set_recv_ecn(int fd, int family)
     }
     break;
   }
+#endif
 }
 
 void fd_set_ip_mtu_discover(int fd, int family) {
@@ -164,6 +168,7 @@ void fd_set_udp_gro(int fd) {
 
 std::optional<Address> msghdr_get_local_addr(msghdr *msg, int family) {
   switch (family) {
+#ifdef IP_PKTINFO
   case AF_INET:
     for (auto cmsg = CMSG_FIRSTHDR(msg); cmsg; cmsg = CMSG_NXTHDR(msg, cmsg)) {
       if (cmsg->cmsg_level == IPPROTO_IP && cmsg->cmsg_type == IP_PKTINFO) {
@@ -179,6 +184,8 @@ std::optional<Address> msghdr_get_local_
       }
     }
     return {};
+#endif
+#ifdef IPV6_PKTINFO
   case AF_INET6:
     for (auto cmsg = CMSG_FIRSTHDR(msg); cmsg; cmsg = CMSG_NXTHDR(msg, cmsg)) {
       if (cmsg->cmsg_level == IPPROTO_IPV6 && cmsg->cmsg_type == IPV6_PKTINFO) {
@@ -194,6 +201,7 @@ std::optional<Address> msghdr_get_local_
       }
     }
     return {};
+#endif
   }
   return {};
 }
Index: ngtcp2-1.9.1/examples/server.cc
===================================================================
--- ngtcp2-1.9.1.orig/examples/server.cc
+++ ngtcp2-1.9.1/examples/server.cc
@@ -2284,15 +2284,19 @@ int create_sock(Address &local_addr, con
         continue;
       }
 
+#ifdef IPV6_RECVPKTINFO
       if (setsockopt(fd, IPPROTO_IPV6, IPV6_RECVPKTINFO, &val,
                      static_cast<socklen_t>(sizeof(val))) == -1) {
         close(fd);
         continue;
       }
+#endif
+#ifdef IP_PKTINFO
     } else if (setsockopt(fd, IPPROTO_IP, IP_PKTINFO, &val,
                           static_cast<socklen_t>(sizeof(val))) == -1) {
       close(fd);
       continue;
+#endif
     }
 
     if (setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &val,
@@ -2367,17 +2371,21 @@ int add_endpoint(std::vector<Endpoint> &
       return -1;
     }
 
+#ifdef IPV6_RECVPKTINFO
     if (setsockopt(fd, IPPROTO_IPV6, IPV6_RECVPKTINFO, &val,
                    static_cast<socklen_t>(sizeof(val))) == -1) {
       std::cerr << "setsockopt: " << strerror(errno) << std::endl;
       close(fd);
       return -1;
     }
+#endif
+#ifdef IP_PKTINFO
   } else if (setsockopt(fd, IPPROTO_IP, IP_PKTINFO, &val,
                         static_cast<socklen_t>(sizeof(val))) == -1) {
     std::cerr << "setsockopt: " << strerror(errno) << std::endl;
     close(fd);
     return -1;
+#endif
   }
 
   if (setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &val,
@@ -3114,6 +3122,7 @@ Server::send_packet(Endpoint &ep, bool &
   auto cm = CMSG_FIRSTHDR(&msg);
 
   switch (local_addr.addr->sa_family) {
+#ifdef IP_PKTINFO
   case AF_INET: {
     controllen += CMSG_SPACE(sizeof(in_pktinfo));
     cm->cmsg_level = IPPROTO_IP;
@@ -3126,6 +3135,8 @@ Server::send_packet(Endpoint &ep, bool &
 
     break;
   }
+#endif
+#ifdef IPV6_PKTINFO
   case AF_INET6: {
     controllen += CMSG_SPACE(sizeof(in6_pktinfo));
     cm->cmsg_level = IPPROTO_IPV6;
@@ -3137,6 +3148,7 @@ Server::send_packet(Endpoint &ep, bool &
     memcpy(CMSG_DATA(cm), &pktinfo, sizeof(pktinfo));
 
     break;
+#endif
   }
   default:
     assert(0);
