|
|
| version 1.1.1.3, 2021/03/17 00:39:23 | version 1.1.1.3.2.1, 2023/09/27 11:08:00 |
|---|---|
| Line 26 | Line 26 |
| #define LCP_ECHO_INTERVAL 5 /* Enable keep alive by default */ | #define LCP_ECHO_INTERVAL 5 /* Enable keep alive by default */ |
| #define LCP_ECHO_TIMEOUT 40 | #define LCP_ECHO_TIMEOUT 40 |
| #define LCP_MAX_RESETS 3 | |
| #define LCP_KNOWN_CODES ( (1 << CODE_CONFIGREQ) \ | #define LCP_KNOWN_CODES ( (1 << CODE_CONFIGREQ) \ |
| | (1 << CODE_CONFIGACK) \ | | (1 << CODE_CONFIGACK) \ |
| Line 180 LcpInit(Link l) | Line 181 LcpInit(Link l) |
| FsmInit(&lcp->fsm, &gLcpFsmType, l); | FsmInit(&lcp->fsm, &gLcpFsmType, l); |
| lcp->fsm.conf.echo_int = LCP_ECHO_INTERVAL; | lcp->fsm.conf.echo_int = LCP_ECHO_INTERVAL; |
| lcp->fsm.conf.echo_max = LCP_ECHO_TIMEOUT; | lcp->fsm.conf.echo_max = LCP_ECHO_TIMEOUT; |
| lcp->resets = LCP_MAX_RESETS; | |
| lcp->phase = PHASE_DEAD; | lcp->phase = PHASE_DEAD; |
| AuthInit(l); | AuthInit(l); |
| Line 690 LcpLayerDown(Fsm fp) | Line 692 LcpLayerDown(Fsm fp) |
| LcpState const lcp = &l->lcp; | LcpState const lcp = &l->lcp; |
| LcpStopActivity(l); | LcpStopActivity(l); |
| if (lcp->phase == PHASE_AUTHENTICATE || lcp->phase == PHASE_NETWORK) | if (lcp->phase == PHASE_AUTHENTICATE || lcp->phase == PHASE_NETWORK) { |
| lcp->need_reset = 1; | lcp->need_reset = 1; |
| if (lcp->resets > 0) { | |
| Log(LG_LCP2, ("[%s] LCP: Reset (%u left)", l->name, (int)lcp->resets)); | |
| lcp->resets--; | |
| } else { | |
| Log(LG_LCP2, ("[%s] LCP: Too many resets", l->name)); | |
| FsmFailure(&lcp->fsm, FAIL_NEGOT_FAILURE); | |
| lcp->resets = LCP_MAX_RESETS; | |
| } | |
| } | |
| } | } |
| void LcpOpen(Link l) | void LcpOpen(Link l) |