*/
#ifndef lint
-static char rcsid[] = "$Id: ccp.c,v 1.8 1995/04/26 06:47:24 paulus Exp $";
+static char rcsid[] = "$Id: ccp.c,v 1.11 1995/08/16 04:15:38 paulus Exp $";
#endif
#include <syslog.h>
memset(&ccp_allowoptions[unit], 0, sizeof(ccp_options));
memset(&ccp_hisoptions[unit], 0, sizeof(ccp_options));
+ ccp_wantoptions[0].bsd_compress = 1;
ccp_wantoptions[0].bsd_bits = 12; /* default value */
ccp_allowoptions[0].bsd_compress = 1;
fsm_input(f, p, len);
if (oldstate == OPENED && p[0] == TERMREQ && f->state != OPENED)
syslog(LOG_NOTICE, "Compression disabled by peer.");
+
+ /*
+ * If we get a terminate-ack and we're not asking for compression,
+ * close CCP.
+ */
+ if (oldstate == REQSENT && p[0] == TERMACK
+ && !ANY_COMPRESS(ccp_gotoptions[unit]))
+ ccp_close(unit);
}
/*
}
}
+ if (newret == CONFNAK && dont_nak)
+ newret = CONFREJ;
if (!(newret == CONFACK || newret == CONFNAK && ret == CONFREJ)) {
/* we're returning this option */
if (newret == CONFREJ && ret == CONFNAK)