diff options
author | julian <julian@FreeBSD.org> | 1999-10-29 04:32:27 +0000 |
---|---|---|
committer | julian <julian@FreeBSD.org> | 1999-10-29 04:32:27 +0000 |
commit | a754b84f1e8b4ab668f423a65d870544d854394c (patch) | |
tree | f6e15a3615f71b5b471286114761aa561eb2caf2 /sys/netgraph/ng_pppoe.c | |
parent | 0deeb8de09cea524e5a8403820ec8d40f956cdd2 (diff) | |
download | FreeBSD-src-a754b84f1e8b4ab668f423a65d870544d854394c.zip FreeBSD-src-a754b84f1e8b4ab668f423a65d870544d854394c.tar.gz |
When the session is running, don't include the ethernet header in the length of the payload.
Diffstat (limited to 'sys/netgraph/ng_pppoe.c')
-rw-r--r-- | sys/netgraph/ng_pppoe.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/netgraph/ng_pppoe.c b/sys/netgraph/ng_pppoe.c index d28c995..9d580e5b 100644 --- a/sys/netgraph/ng_pppoe.c +++ b/sys/netgraph/ng_pppoe.c @@ -1125,14 +1125,15 @@ AAA /* * Bang in a pre-made header, and set the length up * to be correct. Then send it to the ethernet driver. + * But first correct the length. */ + sp->pkt_hdr.ph.length = htons((short)(m->m_pkthdr.len)); M_PREPEND(m, sizeof(*wh), M_DONTWAIT); if (m == NULL) { LEAVE(ENOBUFS); } wh = mtod(m, struct pppoe_full_hdr *); bcopy(&sp->pkt_hdr, wh, sizeof(*wh)); - wh->ph.length = htons((short)(m->m_pkthdr.len)); NG_SEND_DATA( error, privp->ethernet_hook, m, meta); privp->packets_out++; break; |