Alfred Agrell (@Alcaro) commented about dlls/ntdll/unix/socket.c:
- struct in6_pktinfo *info;
- struct cmsghdr *cmsg;
- unsigned int sum;
- if (recv_len < sizeof(*icmp_h)) return recv_len;
- memset( &ip_h, 0, sizeof(ip_h) );
- ip_h.src = unix_addr->in6.sin6_addr;
- for (cmsg = CMSG_FIRSTHDR( hdr ); cmsg; cmsg = CMSG_NXTHDR( hdr, cmsg ))
- {
if (cmsg->cmsg_level != IPPROTO_IPV6) continue;
+#ifdef IPV6_PKTINFO
if (cmsg->cmsg_type != IPV6_PKTINFO) continue;
info = (struct in6_pktinfo *)CMSG_DATA( cmsg );
ip_h.dst = info->ipi6_addr;
+#endif
Feels like some of those #ifdef should have a #else with an ERR or FIXME or something. Or at least a comment saying it's not necessary.