* OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS,
* OR MODIFICATIONS.
*
- * $Id: ppp_comp.c,v 1.9 1998/03/24 23:52:37 paulus Exp $
+ * $Id: ppp_comp.c,v 1.11 1999/04/12 06:20:22 paulus Exp $
*/
/*
cp = (comp_state_t *) ALLOC_SLEEP(sizeof(comp_state_t));
if (cp == NULL)
OPEN_ERROR(ENOSR);
- WR(q)->q_ptr = q->q_ptr = (caddr_t) cp;
bzero((caddr_t)cp, sizeof(comp_state_t));
+ WR(q)->q_ptr = q->q_ptr = (caddr_t) cp;
cp->mru = PPP_MRU;
cp->mtu = PPP_MTU;
cp->xstate = NULL;
cp->rstate = NULL;
vj_compress_init(&cp->vj_comp, -1);
- ++ppp_comp_count;
- qprocson(q);
#ifdef __osf__
if (!(thread = kernel_thread_w_arg(first_task, ppp_comp_alloc, (void *)cp)))
OPEN_ERROR(ENOSR);
cp->thread = thread;
#endif
+ ++ppp_comp_count;
+ qprocson(q);
}
return 0;
}
int nxslots, nrslots;
cp = (comp_state_t *) q->q_ptr;
+ if (cp == 0) {
+ DPRINT("cp == 0 in ppp_comp_wput\n");
+ freemsg(mp);
+ return 0;
+ }
+
switch (mp->b_datap->db_type) {
case M_DATA:
default:
putnext(q, mp);
}
+
+ return 0;
}
static int
unsigned char *vjhdr, *dp;
cp = (comp_state_t *) q->q_ptr;
+ if (cp == 0) {
+ DPRINT("cp == 0 in ppp_comp_wsrv\n");
+ return 0;
+ }
+
while ((mp = getq(q)) != 0) {
/* assert(mp->b_datap->db_type == M_DATA) */
#ifdef PRIOQ
- if (!bcanputnext(q,mp->b_band)) {
+ if (!bcanputnext(q,mp->b_band))
#else
- if (!canputnext(q)) {
+ if (!canputnext(q))
#endif PRIOQ
+ {
putbq(q, mp);
- return;
+ break;
}
/*
cp->stats.ppp_obytes += msgdsize(mp);
putnext(q, mp);
}
+
+ return 0;
}
static int
struct ppp_stats *psp;
cp = (comp_state_t *) q->q_ptr;
+ if (cp == 0) {
+ DPRINT("cp == 0 in ppp_comp_rput\n");
+ freemsg(mp);
+ return 0;
+ }
+
switch (mp->b_datap->db_type) {
case M_DATA:
default:
putnext(q, mp);
}
+
+ return 0;
}
static int
u_int iphlen;
cp = (comp_state_t *) q->q_ptr;
+ if (cp == 0) {
+ DPRINT("cp == 0 in ppp_comp_rsrv\n");
+ return 0;
+ }
+
while ((mp = getq(q)) != 0) {
/* assert(mp->b_datap->db_type == M_DATA) */
if (!canputnext(q)) {
putbq(q, mp);
- return;
+ break;
}
len = msgdsize(mp);
cp->stats.ppp_ierrors++;
putctl1(q->q_next, M_CTL, PPPCTL_IERROR);
}
+
+ return 0;
}
/*