X-Git-Url: https://git.ozlabs.org/?a=blobdiff_plain;f=pppd%2Flcp.c;h=cfaef7a0bd4339c8172c5b1a7c717ca85aed69f1;hb=84a45df38be25f0f4859186ee8e69ebe8c109e4c;hp=ff17fb0b29d2325cb7404aa0eafb99bc76bffe89;hpb=3f2fe49d822135c209e9896f666b748cf2234f2e;p=ppp.git diff --git a/pppd/lcp.c b/pppd/lcp.c index ff17fb0..cfaef7a 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.51 2000/04/13 12:05:57 paulus Exp $"; +#define RCSID "$Id: lcp.c,v 1.55 2000/04/29 12:32:09 paulus Exp $" /* * TODO: @@ -41,11 +41,11 @@ static const char rcsid[] = RCSID; int lcp_echo_interval = 0; /* Interval between LCP echo-requests */ int lcp_echo_fails = 0; /* Tolerance to unanswered echo-requests */ bool lax_recv = 0; /* accept control chars in asyncmap */ +bool noendpoint = 0; /* don't send/accept endpoint discriminator */ static int setescape __P((char **)); #ifdef HAVE_MULTILINK -bool noendpoint = 0; /* don't send/accept endpoint discriminator */ static int setendpoint __P((char **)); #endif /* HAVE_MULTILINK */ @@ -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" }, @@ -124,9 +124,9 @@ static option_t lcp_option_list[] = { OPT_A2COPY, &lcp_allowoptions[0].neg_ssnhf }, { "endpoint", o_special, setendpoint, "Endpoint discriminator for multilink" }, +#endif /* HAVE_MULTILINK */ { "noendpoint", o_bool, &noendpoint, "Don't send or accept multilink endpoint discriminator", 1 }, -#endif /* HAVE_MULTILINK */ {NULL} }; @@ -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,8 @@ lcp_resetci(f) go->neg_ssnhf = 0; go->neg_endpoint = 0; } + if (noendpoint) + ao->neg_endpoint = 0; peer_mru[f->unit] = PPP_MRU; auth_reset(f->unit); } @@ -1640,7 +1641,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; @@ -1986,7 +1987,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; }