X-Git-Url: http://git.ozlabs.org/?p=ppp.git;a=blobdiff_plain;f=modules%2Fppp.c;h=f386e5bbc2ac6d2e6a2ed5e165d68880808f15f3;hp=dcdf1c7e11ac10b0f61f3c1251a4bd4d4605c953;hb=990d962977a9ffdde38068711aa0b73b267e123f;hpb=aeb204dccc12e94006cada67d68a7a6783e11ab6 diff --git a/modules/ppp.c b/modules/ppp.c index dcdf1c7..f386e5b 100644 --- a/modules/ppp.c +++ b/modules/ppp.c @@ -24,7 +24,7 @@ * OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, * OR MODIFICATIONS. * - * $Id: ppp.c,v 1.10 1997/04/30 05:44:43 paulus Exp $ + * $Id: ppp.c,v 1.13 1997/11/27 06:05:36 paulus Exp $ */ /* @@ -934,7 +934,7 @@ dlpi_request(q, mp, us) reply->b_wptr += sizeof(dl_info_ack_t); bzero((caddr_t) info, sizeof(dl_info_ack_t)); info->dl_primitive = DL_INFO_ACK; - info->dl_max_sdu = us->ppa->mtu; + info->dl_max_sdu = us->ppa? us->ppa->mtu: PPP_MAXMTU; info->dl_min_sdu = 1; info->dl_addr_length = sizeof(ulong); #ifdef DL_OTHER @@ -1250,7 +1250,7 @@ pass_packet(us, mp, outbound) int pass; upperstr_t *ppa; - if (us->ppa == 0) { + if ((ppa = us->ppa) == 0) { freemsg(mp); return 0; } @@ -1267,7 +1267,7 @@ pass_packet(us, mp, outbound) if (pass < 0) { /* pass only if link already up, and don't update time */ - if (us->ppa->lowerq == 0) { + if (ppa->lowerq == 0) { freemsg(mp); return 0; } @@ -1859,7 +1859,7 @@ ip_hard_filter(us, mp, outbound) switch (proto) { case PPP_IP: - if ((mp->b_wptr - mp->b_rptr) == PPP_HDRLEN) { + if ((mp->b_wptr - mp->b_rptr) == PPP_HDRLEN && mp->b_cont != 0) { temp_mp = mp->b_cont; len = msgdsize(temp_mp); hlen = (len < MAX_IPHDR) ? len : MAX_IPHDR;