]> git.ozlabs.org Git - ppp.git/blobdiff - modules/ppp.c
minor bug fix
[ppp.git] / modules / ppp.c
index dcdf1c7e11ac10b0f61f3c1251a4bd4d4605c953..f386e5bbc2ac6d2e6a2ed5e165d68880808f15f3 100644 (file)
@@ -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;