summaryrefslogtreecommitdiffstats
path: root/sys/net
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/net
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/net')
-rw-r--r--sys/net/if_ethersubr.c17
1 files changed, 8 insertions, 9 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));
OpenPOWER on IntegriCloud