diff options
author | brian <brian@FreeBSD.org> | 2000-03-14 01:47:21 +0000 |
---|---|---|
committer | brian <brian@FreeBSD.org> | 2000-03-14 01:47:21 +0000 |
commit | 041ec329dc4111a616c48d22712dfcaf9cbfe9bb (patch) | |
tree | 09522d832c5adcd76ce7237dc3b3d145c7a93819 /usr.sbin/ppp | |
parent | 19ff2ab337c997a28964c88f5124a07dff48a0e4 (diff) | |
download | FreeBSD-src-041ec329dc4111a616c48d22712dfcaf9cbfe9bb.zip FreeBSD-src-041ec329dc4111a616c48d22712dfcaf9cbfe9bb.tar.gz |
Refresh the NAT IP pointer after a potential mbuf reallocation. This
caused frequent lock-ups for individual sessions over a NAT'd ppp link
when MTU sizes ended up more or less exactly wrong.
Diffstat (limited to 'usr.sbin/ppp')
-rw-r--r-- | usr.sbin/ppp/nat_cmd.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/usr.sbin/ppp/nat_cmd.c b/usr.sbin/ppp/nat_cmd.c index 490ef73..9504207 100644 --- a/usr.sbin/ppp/nat_cmd.c +++ b/usr.sbin/ppp/nat_cmd.c @@ -380,6 +380,7 @@ nat_LayerPull(struct bundle *bundle, struct link *l, struct mbuf *bp, /* Ensure there's a bit of extra buffer for the NAT code... */ bp = m_pullup(m_append(bp, NULL, NAT_EXTRABUF)); ret = PacketAliasIn(MBUF_CTOP(bp), bp->m_len); + pip = (struct ip *)MBUF_CTOP(bp); bp->m_len = ntohs(pip->ip_len); if (bp->m_len > MAX_MRU) { |