X-Git-Url: http://git.ozlabs.org/?a=blobdiff_plain;f=pppd%2Fccp.c;h=ae6795228c64655c07e427ae6f944213631ce7b3;hb=6bca842794ae41bfc71bdf27cde3bf6ecd843540;hp=e695fe9cc013bff7415923f69bd3633533c22f71;hpb=4420a694ac374773a6a4b5cce81a5d953b775658;p=ppp.git diff --git a/pppd/ccp.c b/pppd/ccp.c index e695fe9..ae67952 100644 --- a/pppd/ccp.c +++ b/pppd/ccp.c @@ -26,7 +26,7 @@ */ #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 @@ -109,6 +109,7 @@ ccp_init(unit) 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; @@ -181,6 +182,14 @@ ccp_input(unit, p, len) 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); } /* @@ -452,6 +461,8 @@ ccp_reqci(f, p, lenp, dont_nak) } } + if (newret == CONFNAK && dont_nak) + newret = CONFREJ; if (!(newret == CONFACK || newret == CONFNAK && ret == CONFREJ)) { /* we're returning this option */ if (newret == CONFREJ && ret == CONFNAK)