--- embedaddon/bird/sysdep/bsd/sysio.h 2017/08/22 12:33:54 1.1.1.1 +++ embedaddon/bird/sysdep/bsd/sysio.h 2021/03/17 19:50:23 1.1.1.2 @@ -9,8 +9,14 @@ #include #include // Workaround for some BSDs #include +#include +#ifdef __FreeBSD__ +/* Should be defined in sysdep/cf/bsd.h, but it is flavor-specific */ +#define CONFIG_DONTROUTE_UNICAST +#endif + #ifdef __NetBSD__ #ifndef IP_RECVTTL @@ -179,8 +185,8 @@ sk_prepare_ip_header(sock *s, void *hdr, int dlen) ip->ip_src = ipa_to_in4(s->saddr); ip->ip_dst = ipa_to_in4(s->daddr); -#ifdef __OpenBSD__ - /* OpenBSD expects ip_len in network order, other BSDs expect host order */ +#if (defined __OpenBSD__) || (defined __DragonFly__) || (defined __FreeBSD__ && (__FreeBSD_version >= 1100030)) + /* Different BSDs have different expectations of ip_len endianity */ ip->ip_len = htons(ip->ip_len); #endif }