diff options
author | dg <dg@FreeBSD.org> | 1996-06-13 02:54:19 +0000 |
---|---|---|
committer | dg <dg@FreeBSD.org> | 1996-06-13 02:54:19 +0000 |
commit | 4b74beee2c4e7645ff3559f745c48307cef827af (patch) | |
tree | 13745ac97ad33fd45ecc966358fabc7be57b37dc /sys | |
parent | 3f082d87f9ee5b828933898d2f72eed913c306d6 (diff) | |
download | FreeBSD-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.c | 17 | ||||
-rw-r--r-- | sys/netinet/if_ether.c | 6 |
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); |