UPAPDEBUG((LOG_INFO, "upap_input: rcvd short header."));
UPAPDEBUG((LOG_INFO, "pap_input: rcvd short header."));
upap_input(unit, inpacket, l)    int unit;    u_char *inpacket;    int l;{    upap_state *u = &upap[unit];    u_char *inp;    u_char code, id;    int len;    /*     * Parse header (code, id and length).     * If packet too short, drop it.     */    inp = inpacket;    if (l < UPAP_HEADERLEN) {	UPAPDEBUG((LOG_INFO, "upap_input: rcvd short header."));	return;    }    GETCHAR(code, inp);    GETCHAR(id, inp);    GETSHORT(len, inp);    if (len < UPAP_HEADERLEN) {	UPAPDEBUG((LOG_INFO, "upap_input: rcvd illegal length."));	return;    }    if (len > l) {	UPAPDEBUG((LOG_INFO, "upap_input: rcvd short packet."));	return;    }    len -= UPAP_HEADERLEN;    /*     * Action depends on code.     */    switch (code) {    case UPAP_AUTHREQ:	upap_rauthreq(u, inp, id, len);	break;    case UPAP_AUTHACK:	upap_rauthack(u, inp, id, len);	break;    case UPAP_AUTHNAK:	upap_rauthnak(u, inp, id, len);	break;    default:				/* XXX Need code reject */	break;    }}