--- tftpd/recvfrom.c.orig 2014-04-20 08:55:44.000000000 -0400
+++ tftpd/recvfrom.c 2014-04-20 09:00:20.000000000 -0400
@@ -17,6 +17,12 @@
*
*/
+#if defined(__APPLE__)
+#if __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1070
+#define __APPLE_USE_RFC_3542 1
+#endif
+#endif
+
#include "config.h" /* Must be included first! */
#include "common/tftpsubs.h"
#include "recvfrom.h"
@@ -220,16 +226,18 @@
sizeof(struct in6_addr));
#endif
-#ifdef HAVE_STRUCT_IN6_PKTINFO
if (cmptr->cmsg_level == IPPROTO_IPV6 &&
+#if defined(HAVE_STRUCT_IN6_PKTINFO) && defined(IPV6_RECVPKTINFO) /* Some older Darwin platforms require the latter */
(cmptr->cmsg_type == IPV6_RECVPKTINFO ||
- cmptr->cmsg_type == IPV6_PKTINFO)) {
+#else
+ (
+#endif
+ cmptr->cmsg_type == IPV6_PKTINFO)) {
memcpy(&pktinfo6, CMSG_DATA(cmptr),
sizeof(struct in6_pktinfo));
memcpy(&myaddr->s6.sin6_addr, &pktinfo6.ipi6_addr,
sizeof(struct in6_addr));
}
-#endif
}
#endif
}