X-Git-Url: http://git.ozlabs.org/?a=blobdiff_plain;f=modules%2Fppp_ahdlc.c;h=a52e156af0dc50f6e80c047ec0ae3fb4037d86f3;hb=bad798e6ca3d89fb008bb9ced30f26e6d99882cc;hp=ba4f41c126b6276c31b64fe844118d6b3797e59d;hpb=a44a616baa968a263dc273bc06ed79c475b7deec;p=ppp.git diff --git a/modules/ppp_ahdlc.c b/modules/ppp_ahdlc.c index ba4f41c..a52e156 100644 --- a/modules/ppp_ahdlc.c +++ b/modules/ppp_ahdlc.c @@ -24,11 +24,11 @@ * OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, * OR MODIFICATIONS. * - * $Id: ppp_ahdlc.c,v 1.1 1995/12/11 05:06:42 paulus Exp $ + * $Id: ppp_ahdlc.c,v 1.3 1996/08/28 06:35:50 paulus Exp $ */ /* - * This file is used under Solaris 2, SVR4, SunOS 4, and OSF/1. + * This file is used under Solaris 2, SVR4, SunOS 4, and Digital UNIX. */ #include #include @@ -66,8 +66,9 @@ static int msg_byte __P((mblk_t *, unsigned int)); /* Is this LCP packet one we have to transmit using LCP defaults? */ #define LCP_USE_DFLT(mp) (1 <= (code = MSG_BYTE((mp), 4)) && code <= 7) +#define PPP_AHDL_ID 0x7d23 static struct module_info minfo = { - 0x7d23, "ppp_ahdl", 0, INFPSZ, 4096, 128 + PPP_AHDL_ID, "ppp_ahdl", 0, INFPSZ, 4096, 128 }; static struct qinit rinit = { @@ -215,7 +216,7 @@ ahdlc_wput(q, mp) break; bcopy((caddr_t)mp->b_cont->b_rptr, (caddr_t)state->xaccm, iop->ioc_count); - state->xaccm[2] &= 0x40000000; /* don't escape 0x5e */ + state->xaccm[2] &= ~0x40000000; /* don't escape 0x5e */ state->xaccm[3] |= 0x60000000; /* do escape 0x7d, 0x7e */ iop->ioc_count = 0; error = 0; @@ -623,10 +624,11 @@ unstuff_chars(q, mp) putnext(q, om); /* bombs away! */ continue; } - DPRINT1("ppp_ahdl: bad fcs %x\n", state->infcs); + DPRINT2("ppp%d: bad fcs (len=%d)\n", state->unit, len); } if (om != 0) freemsg(om); + state->flags &= ~(IFLUSH|ESCAPED); state->stats.ppp_ierrors++; putctl1(q->q_next, M_CTL, PPPCTL_IERROR); continue; @@ -662,7 +664,8 @@ unstuff_chars(q, mp) */ if (state->inlen >= state->mru + PPP_HDRLEN + PPP_FCSLEN) { state->flags |= IFLUSH; - DPRINT1("ppp_ahdl: frame too long (%d)\n", state->inlen); + DPRINT2("ppp%d: frame too long (%d)\n", + state->unit, state->inlen); continue; } om = allocb(IFRAME_BSIZE, BPRI_MED);