mirror of
https://github.com/paulusmack/ppp.git
synced 2024-11-30 23:13:35 +08:00
added receive-all option.
ignore extra unrecognized options in nak.
This commit is contained in:
parent
9e64a7b4c1
commit
1fd9b499c3
16
pppd/lcp.c
16
pppd/lcp.c
@ -18,7 +18,7 @@
|
||||
*/
|
||||
|
||||
#ifndef lint
|
||||
static char rcsid[] = "$Id: lcp.c,v 1.36 1999/03/16 22:54:41 paulus Exp $";
|
||||
static char rcsid[] = "$Id: lcp.c,v 1.37 1999/03/19 01:24:56 paulus Exp $";
|
||||
#endif
|
||||
|
||||
/*
|
||||
@ -40,6 +40,7 @@ static char rcsid[] = "$Id: lcp.c,v 1.36 1999/03/16 22:54:41 paulus Exp $";
|
||||
*/
|
||||
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 */
|
||||
|
||||
static int setescape __P((char **));
|
||||
|
||||
@ -104,6 +105,8 @@ static option_t lcp_option_list[] = {
|
||||
"Set maximum number of LCP configure-request transmissions" },
|
||||
{ "lcp-max-failure", o_int, &lcp_fsm[0].maxnakloops,
|
||||
"Set limit on number of LCP configure-naks" },
|
||||
{ "receive-all", o_bool, &lax_recv,
|
||||
"Accept all received control characters", 1 },
|
||||
{NULL}
|
||||
};
|
||||
|
||||
@ -117,7 +120,7 @@ u_int32_t xmit_accm[NUM_PPP][8]; /* extended transmit ACCM */
|
||||
|
||||
static u_int32_t lcp_echos_pending = 0; /* Number of outstanding echo msgs */
|
||||
static u_int32_t lcp_echo_number = 0; /* ID number of next echo frame */
|
||||
static u_int32_t lcp_echo_timer_running = 0; /* TRUE if a timer is running */
|
||||
static u_int32_t lcp_echo_timer_running = 0; /* set if a timer is running */
|
||||
|
||||
static u_char nak_buffer[PPP_MRU]; /* where we construct a nak packet */
|
||||
|
||||
@ -365,7 +368,7 @@ lcp_lowerup(unit)
|
||||
*/
|
||||
ppp_set_xaccm(unit, xmit_accm[unit]);
|
||||
ppp_send_config(unit, PPP_MRU, 0xffffffff, 0, 0);
|
||||
ppp_recv_config(unit, PPP_MRU, 0xffffffff,
|
||||
ppp_recv_config(unit, PPP_MRU, (lax_recv? 0: 0xffffffff),
|
||||
wo->neg_pcompression, wo->neg_accompression);
|
||||
peer_mru[unit] = PPP_MRU;
|
||||
lcp_allowoptions[unit].asyncmap = xmit_accm[unit][0];
|
||||
@ -1044,12 +1047,9 @@ lcp_nakci(f, p, len)
|
||||
p = next;
|
||||
}
|
||||
|
||||
/* If there is still anything left, this packet is bad. */
|
||||
if (len != 0)
|
||||
goto bad;
|
||||
|
||||
/*
|
||||
* OK, the Nak is good. Now we can update state.
|
||||
* If there are any options left we ignore them.
|
||||
*/
|
||||
if (f->state != OPENED) {
|
||||
if (looped_back) {
|
||||
@ -1551,7 +1551,7 @@ lcp_up(f)
|
||||
(ho->neg_asyncmap? ho->asyncmap: 0xffffffff),
|
||||
ho->neg_pcompression, ho->neg_accompression);
|
||||
ppp_recv_config(f->unit, (go->neg_mru? MAX(wo->mru, go->mru): PPP_MRU),
|
||||
(go->neg_asyncmap? go->asyncmap: 0xffffffff),
|
||||
(lax_recv? 0: go->neg_asyncmap? go->asyncmap: 0xffffffff),
|
||||
go->neg_pcompression, go->neg_accompression);
|
||||
|
||||
if (ho->neg_mru)
|
||||
|
@ -1,5 +1,5 @@
|
||||
.\" manual page [] for pppd 2.3
|
||||
.\" $Id: pppd.8,v 1.34 1999/03/12 06:07:19 paulus Exp $
|
||||
.\" $Id: pppd.8,v 1.35 1999/03/19 01:24:57 paulus Exp $
|
||||
.\" SH section heading
|
||||
.\" SS subsection heading
|
||||
.\" LP paragraph
|
||||
@ -628,6 +628,12 @@ with the IP address of the peer and the Ethernet address of this
|
||||
system. This will have the effect of making the peer appear to other
|
||||
systems to be on the local ethernet.
|
||||
.TP
|
||||
.B receive-all
|
||||
With this option, pppd will accept all control characters from the
|
||||
peer, including those marked in the receive asyncmap. Without this
|
||||
option, pppd will discard those characters as specified in RFC1662.
|
||||
This option should only be needed if the peer is buggy.
|
||||
.TP
|
||||
.B remotename \fIname
|
||||
Set the assumed name of the remote system for authentication purposes
|
||||
to \fIname\fR.
|
||||
|
Loading…
Reference in New Issue
Block a user