Module Name: src Committed By: yamaguchi Date: Tue Jun 1 04:45:22 UTC 2021
Modified Files: src/sys/net: if_spppsubr.c Log Message: Remove open event on tlf of PAP/CHAP when retry of them is over to prevent that LCP stops at Starting state. And also remove retry counter check on tls of LCP because of unnecessary. To generate a diff of this commit: cvs rdiff -u -r1.249 -r1.250 src/sys/net/if_spppsubr.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/net/if_spppsubr.c diff -u src/sys/net/if_spppsubr.c:1.249 src/sys/net/if_spppsubr.c:1.250 --- src/sys/net/if_spppsubr.c:1.249 Tue Jun 1 04:19:57 2021 +++ src/sys/net/if_spppsubr.c Tue Jun 1 04:45:22 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: if_spppsubr.c,v 1.249 2021/06/01 04:19:57 yamaguchi Exp $ */ +/* $NetBSD: if_spppsubr.c,v 1.250 2021/06/01 04:45:22 yamaguchi Exp $ */ /* * Synchronous PPP/Cisco link level subroutines. @@ -41,7 +41,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: if_spppsubr.c,v 1.249 2021/06/01 04:19:57 yamaguchi Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_spppsubr.c,v 1.250 2021/06/01 04:45:22 yamaguchi Exp $"); #if defined(_KERNEL_OPT) #include "opt_inet.h" @@ -3477,16 +3477,6 @@ sppp_lcp_tls(const struct cp *cp __unuse KASSERT(SPPP_WLOCKED(sp)); - if (sp->pp_max_auth_fail != 0 && sp->pp_auth_failures >= sp->pp_max_auth_fail) { - printf("%s: authentication failed %d times, not retrying again\n", - sp->pp_if.if_xname, sp->pp_auth_failures); - - SPPP_UNLOCK(sp); - if_down(&sp->pp_if); - SPPP_LOCK(sp, RW_WRITER); - return; - } - sppp_change_phase(sp, SPPP_PHASE_ESTABLISH); /* Notify lower layer if desired. */ @@ -3597,7 +3587,18 @@ sppp_lcp_check_and_close(struct sppp *sp return; sppp_wq_add(sp->wq_cp, &sp->scp[IDX_LCP].work_close); - sppp_wq_add(sp->wq_cp, &sp->scp[IDX_LCP].work_open); + + if (sp->pp_max_auth_fail != 0 && + sp->pp_auth_failures >= sp->pp_max_auth_fail) { + printf("%s: authentication failed %d times, " + "not retrying again\n", + sp->pp_if.if_xname, sp->pp_auth_failures); + + sppp_wq_add(sp->wq_cp, &sp->work_ifdown); + sp->pp_if.if_flags &= ~IFF_RUNNING; + } else { + sppp_wq_add(sp->wq_cp, &sp->scp[IDX_LCP].work_open); + } } /*