From d99452d1a0052a1ed98d044ba11b91992aa40866 Mon Sep 17 00:00:00 2001 From: Ted Lemon Date: Tue, 11 Jun 1996 08:30:41 +0000 Subject: [PATCH] Work around FreeBSD BPF bug --- cf/freebsd.h | 1 + common/packet.c | 5 +++++ includes/cf/freebsd.h | 1 + packet.c | 5 +++++ 4 files changed, 12 insertions(+) diff --git a/cf/freebsd.h b/cf/freebsd.h index 9cbeefda..0edf2381 100644 --- a/cf/freebsd.h +++ b/cf/freebsd.h @@ -76,4 +76,5 @@ extern int h_errno; #if defined (USE_DEFAULT_NETWORK) # define USE_BPF +# define BROKEN_FREEBSD_BPF /* Fixed in 2.2 */ #endif diff --git a/common/packet.c b/common/packet.c index e5b57528..2f9eacf6 100644 --- a/common/packet.c +++ b/common/packet.c @@ -141,7 +141,12 @@ void assemble_hw_header (interface, buf, bufix, to) sizeof (eh.ether_shost)); else memset (eh.ether_shost, 0x00, sizeof (eh.ether_shost)); + +#ifdef BROKEN_FREEBSD_BPF /* Fixed in FreeBSD 2.2 */ + eh.ether_type = ETHERTYPE_IP; +#else eh.ether_type = htons (ETHERTYPE_IP); +#endif memcpy (&buf [*bufix], &eh, sizeof eh); *bufix += sizeof eh; diff --git a/includes/cf/freebsd.h b/includes/cf/freebsd.h index 9cbeefda..0edf2381 100644 --- a/includes/cf/freebsd.h +++ b/includes/cf/freebsd.h @@ -76,4 +76,5 @@ extern int h_errno; #if defined (USE_DEFAULT_NETWORK) # define USE_BPF +# define BROKEN_FREEBSD_BPF /* Fixed in 2.2 */ #endif diff --git a/packet.c b/packet.c index e5b57528..2f9eacf6 100644 --- a/packet.c +++ b/packet.c @@ -141,7 +141,12 @@ void assemble_hw_header (interface, buf, bufix, to) sizeof (eh.ether_shost)); else memset (eh.ether_shost, 0x00, sizeof (eh.ether_shost)); + +#ifdef BROKEN_FREEBSD_BPF /* Fixed in FreeBSD 2.2 */ + eh.ether_type = ETHERTYPE_IP; +#else eh.ether_type = htons (ETHERTYPE_IP); +#endif memcpy (&buf [*bufix], &eh, sizeof eh); *bufix += sizeof eh;