summaryrefslogtreecommitdiffstats
path: root/sys/netgraph/ng_pppoe.c
diff options
context:
space:
mode:
authorjulian <julian@FreeBSD.org>1999-10-29 04:32:27 +0000
committerjulian <julian@FreeBSD.org>1999-10-29 04:32:27 +0000
commita754b84f1e8b4ab668f423a65d870544d854394c (patch)
treef6e15a3615f71b5b471286114761aa561eb2caf2 /sys/netgraph/ng_pppoe.c
parent0deeb8de09cea524e5a8403820ec8d40f956cdd2 (diff)
downloadFreeBSD-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.c3
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;
OpenPOWER on IntegriCloud