summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authordg <dg@FreeBSD.org>1996-06-13 02:54:19 +0000
committerdg <dg@FreeBSD.org>1996-06-13 02:54:19 +0000
commit4b74beee2c4e7645ff3559f745c48307cef827af (patch)
tree13745ac97ad33fd45ecc966358fabc7be57b37dc /sys
parent3f082d87f9ee5b828933898d2f72eed913c306d6 (diff)
downloadFreeBSD-src-4b74beee2c4e7645ff3559f745c48307cef827af.zip
FreeBSD-src-4b74beee2c4e7645ff3559f745c48307cef827af.tar.gz
Keep ether_type in network order for BPF to be consistent with other
systems. Submitted by: Ted Lemon, Matt Thomas, and others. Retrofitted for -current by me.
Diffstat (limited to 'sys')
-rw-r--r--sys/net/if_ethersubr.c17
-rw-r--r--sys/netinet/if_ether.c6
2 files changed, 11 insertions, 12 deletions
diff --git a/sys/net/if_ethersubr.c b/sys/net/if_ethersubr.c
index c4b00a7..3babf9a 100644
--- a/sys/net/if_ethersubr.c
+++ b/sys/net/if_ethersubr.c
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)if_ethersubr.c 8.1 (Berkeley) 6/10/93
- * $Id: if_ethersubr.c,v 1.18 1996/06/10 23:07:30 gpalmer Exp $
+ * $Id: if_ethersubr.c,v 1.19 1996/06/12 05:10:13 gpalmer Exp $
*/
#include <sys/param.h>
@@ -164,12 +164,12 @@ ether_output(ifp, m0, dst, rt0)
if ((m->m_flags & M_BCAST) && (ifp->if_flags & IFF_SIMPLEX))
mcopy = m_copy(m, 0, (int)M_COPYALL);
off = m->m_pkthdr.len - m->m_len;
- type = ETHERTYPE_IP;
+ type = htons(ETHERTYPE_IP);
break;
#endif
#ifdef IPX
case AF_IPX:
- type = ETHERTYPE_IPX;
+ type = htons(ETHERTYPE_IPX);
bcopy((caddr_t)&(((struct sockaddr_ipx *)dst)->sipx_addr.x_host),
(caddr_t)edst, sizeof (edst));
if (!bcmp((caddr_t)edst, (caddr_t)&ipx_thishost, sizeof(edst)))
@@ -211,15 +211,15 @@ ether_output(ifp, m0, dst, rt0)
bcopy(at_org_code, llc.llc_snap_org_code, sizeof(at_org_code));
llc.llc_snap_ether_type = htons( ETHERTYPE_AT );
bcopy(&llc, mtod(m, caddr_t), sizeof(struct llc));
- type = m->m_pkthdr.len;
+ type = htons(m->m_pkthdr.len);
} else {
- type = ETHERTYPE_AT;
+ type = htons(ETHERTYPE_AT);
}
break;
#endif NETATALK
#ifdef NS
case AF_NS:
- type = ETHERTYPE_NS;
+ type = htons(ETHERTYPE_NS);
bcopy((caddr_t)&(((struct sockaddr_ns *)dst)->sns_addr.x_host),
(caddr_t)edst, sizeof (edst));
if (!bcmp((caddr_t)edst, (caddr_t)&ns_thishost, sizeof(edst)))
@@ -259,7 +259,7 @@ ether_output(ifp, m0, dst, rt0)
M_PREPEND(m, 3, M_DONTWAIT);
if (m == NULL)
return (0);
- type = m->m_pkthdr.len;
+ type = htons(m->m_pkthdr.len);
l = mtod(m, struct llc *);
l->llc_dsap = l->llc_ssap = LLC_ISO_LSAP;
l->llc_control = LLC_UI;
@@ -295,7 +295,7 @@ ether_output(ifp, m0, dst, rt0)
(caddr_t)eh->ether_shost, sizeof (edst));
}
}
- type = m->m_pkthdr.len;
+ type = htons(m->m_pkthdr.len);
#ifdef LLC_DEBUG
{
int i;
@@ -336,7 +336,6 @@ ether_output(ifp, m0, dst, rt0)
if (m == 0)
senderr(ENOBUFS);
eh = mtod(m, struct ether_header *);
- type = htons((u_short)type);
(void)memcpy(&eh->ether_type, &type,
sizeof(eh->ether_type));
(void)memcpy(eh->ether_dhost, edst, sizeof (edst));
diff --git a/sys/netinet/if_ether.c b/sys/netinet/if_ether.c
index 4354d93..e5bf08f 100644
--- a/sys/netinet/if_ether.c
+++ b/sys/netinet/if_ether.c
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)if_ether.c 8.1 (Berkeley) 6/10/93
- * $Id: if_ether.c,v 1.29 1996/03/23 01:32:29 fenner Exp $
+ * $Id: if_ether.c,v 1.30 1996/06/08 08:18:56 bde Exp $
*/
/*
@@ -284,7 +284,7 @@ arprequest(ac, sip, tip, enaddr)
eh = (struct ether_header *)sa.sa_data;
bzero((caddr_t)ea, sizeof (*ea));
(void)memcpy(eh->ether_dhost, etherbroadcastaddr, sizeof(eh->ether_dhost));
- eh->ether_type = ETHERTYPE_ARP; /* if_output will swap */
+ eh->ether_type = htons(ETHERTYPE_ARP); /* if_output will not swap */
ea->arp_hrd = htons(ARPHRD_ETHER);
ea->arp_pro = htons(ETHERTYPE_IP);
ea->arp_hln = sizeof(ea->arp_sha); /* hardware address length */
@@ -557,7 +557,7 @@ reply:
ea->arp_pro = htons(ETHERTYPE_IP); /* let's be sure! */
eh = (struct ether_header *)sa.sa_data;
(void)memcpy(eh->ether_dhost, ea->arp_tha, sizeof(eh->ether_dhost));
- eh->ether_type = ETHERTYPE_ARP;
+ eh->ether_type = htons(ETHERTYPE_ARP);
sa.sa_family = AF_UNSPEC;
sa.sa_len = sizeof(sa);
(*ac->ac_if.if_output)(&ac->ac_if, m, &sa, (struct rtentry *)0);
OpenPOWER on IntegriCloud