X-Git-Url: http://git.ozlabs.org/?p=ppp.git;a=blobdiff_plain;f=pppd%2Flcp.c;h=f933b590fddf91fb608fa302bf7d91b2c267d760;hp=3092b5ada9f2a0a0939d3a52380950a204d125a5;hb=91fe5eefe0e7b0e46b2df9dd1d5b54a545a5b432;hpb=0b3acd3a1122d542e2994d7791cc9127e91778f1 diff --git a/pppd/lcp.c b/pppd/lcp.c index 3092b5a..f933b59 100644 --- a/pppd/lcp.c +++ b/pppd/lcp.c @@ -17,7 +17,7 @@ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. */ -#define RCSID "$Id: lcp.c,v 1.49 2000/04/04 07:06:50 paulus Exp $"; +#define RCSID "$Id: lcp.c,v 1.54 2000/04/27 03:51:18 masputra Exp $" /* * TODO: @@ -96,7 +96,7 @@ static option_t lcp_option_list[] = { "Set passive mode", 1 }, { "silent", o_bool, &lcp_wantoptions[0].silent, "Set silent mode", 1 }, - { "escape", o_special, setescape, + { "escape", o_special, (void *)setescape, "List of character codes to escape on transmission" }, { "lcp-echo-failure", o_int, &lcp_echo_fails, "Set number of consecutive echo failures to indicate link failure" }, @@ -118,7 +118,7 @@ static option_t lcp_option_list[] = { 0, &lcp_wantoptions[0].neg_mrru }, { "mpshortseq", o_bool, &lcp_wantoptions[0].neg_ssnhf, "Use short sequence numbers in multilink headers", - OPT_A2COPY, &lcp_allowoptions[0].neg_ssnhf }, + OPT_A2COPY | 1, &lcp_allowoptions[0].neg_ssnhf }, { "nompshortseq", o_bool, &lcp_wantoptions[0].neg_ssnhf, "Don't use short sequence numbers in multilink headers", OPT_A2COPY, &lcp_allowoptions[0].neg_ssnhf }, @@ -136,7 +136,7 @@ lcp_options lcp_wantoptions[NUM_PPP]; /* Options that we want to request */ lcp_options lcp_gotoptions[NUM_PPP]; /* Options that peer ack'd */ lcp_options lcp_allowoptions[NUM_PPP]; /* Options we allow peer to request */ lcp_options lcp_hisoptions[NUM_PPP]; /* Options that we ack'd */ -u_int32_t xmit_accm[NUM_PPP][8]; /* extended transmit ACCM */ +u_int32_t xmit_accm[NUM_PPP][8]; /* extended transmit ACCM */ static int lcp_echos_pending = 0; /* Number of outstanding echo msgs */ static int lcp_echo_number = 0; /* ID number of next echo frame */ @@ -323,9 +323,7 @@ lcp_init(unit) #ifdef CBCP_SUPPORT ao->neg_cbcp = 1; #endif -#ifdef HAVE_MULTILINK ao->neg_endpoint = 1; -#endif BZERO(xmit_accm[unit], sizeof(xmit_accm[0])); xmit_accm[unit][3] = 0x60000000; @@ -558,6 +556,7 @@ lcp_resetci(f) { lcp_options *wo = &lcp_wantoptions[f->unit]; lcp_options *go = &lcp_gotoptions[f->unit]; + lcp_options *ao = &lcp_allowoptions[f->unit]; wo->magicnumber = magic(); wo->numloops = 0; @@ -567,6 +566,10 @@ lcp_resetci(f) go->neg_ssnhf = 0; go->neg_endpoint = 0; } +#ifdef HAVE_MULTILINK + if (noendpoint) + ao->neg_endpoint = 0; +#endif /* HAVE_MULTILINK */ peer_mru[f->unit] = PPP_MRU; auth_reset(f->unit); } @@ -1640,7 +1643,7 @@ lcp_reqci(f, inp, lenp, reject_if_disagree) break; case CI_EPDISC: - if (!ao->neg_endpoint || !multilink || + if (!ao->neg_endpoint || cilen < CILEN_CHAR || cilen > CILEN_CHAR + MAX_ENDP_LEN) { orc = CONFREJ; @@ -1955,6 +1958,7 @@ lcp_printpkt(p, plen, printer, arg) } break; case CI_EPDISC: +#ifdef HAVE_MULTILINK if (olen >= CILEN_CHAR) { struct epdisc epd; p += 2; @@ -1968,6 +1972,9 @@ lcp_printpkt(p, plen, printer, arg) } printer(arg, "endpoint [%s]", epdisc_to_str(&epd)); } +#else + printer(arg, "endpoint"); +#endif break; } while (p < optend) { @@ -1982,7 +1989,7 @@ lcp_printpkt(p, plen, printer, arg) case TERMREQ: if (len > 0 && *p >= ' ' && *p < 0x7f) { printer(arg, " "); - print_string(p, len, printer, arg); + print_string((char *)p, len, printer, arg); p += len; len = 0; }