* OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS,
* OR MODIFICATIONS.
*
- * $Id: ppp.c,v 1.18 1999/03/22 05:55:59 paulus Exp $
+ * $Id: ppp.c,v 1.20 1999/09/08 01:11:15 masputra Exp $
*/
/*
if (n == PPPDBG_DUMP + PPPDBG_DRIVER) {
qwriter(q, NULL, debug_dump, PERIM_OUTER);
iop->ioc_count = 0;
- error = 0;
+ error = -1;
} else if (n == PPPDBG_LOG + PPPDBG_DRIVER) {
DPRINT1("ppp/%d: debug log enabled\n", us->mn);
us->flags |= US_DBGLOG;
}
us->ppa = ppa;
qwriter(q, mp, attach_ppa, PERIM_OUTER);
- break;
+ return;
case DL_DETACH_REQ:
if (size < sizeof(dl_detach_req_t))
break;
}
qwriter(q, mp, detach_ppa, PERIM_OUTER);
- break;
+ return;
case DL_BIND_REQ:
if (size < sizeof(dl_bind_req_t))
except that we accept ETHERTYPE_IP in place of PPP_IP. */
sap = d->bind_req.dl_sap;
us->req_sap = sap;
+
+#ifdef SOL2
+ /*
+ * ip will send a sap value of 0 (post-Solaris 7), or
+ * ETHERTYPE_IP (0x800) (pre-Solaris 8) due to how the
+ * ppp DLPI provider declares its characteristics.
+ * <adi.masputra@sun.com>
+ */
+ if (sap == 0)
+ sap = ETHERTYPE_IP;
+#endif /* SOL2 */
+
if (sap == ETHERTYPE_IP)
sap = PPP_IP;
if (sap < 0x21 || sap > 0x3fff || (sap & 0x101) != 1) {
static void
debug_dump(q, mp)
- queue_t *q; /* not used */
- mblk_t *mp; /* not used either */
+ queue_t *q;
+ mblk_t *mp;
{
upperstr_t *us;
queue_t *uq, *lq;
(lq? qsize(lq): 0), us->mru, us->mtu);
}
}
+ mp->b_datap->db_type = M_IOCACK;
+ qreply(q, mp);
}
#ifdef FILTER_PACKETS