diff --git a/l2tpns.c b/l2tpns.c index 6446678..77b3333 100644 --- a/l2tpns.c +++ b/l2tpns.c @@ -5809,6 +5809,8 @@ static int still_busy(void) continue; if (radius[i].state == RADIUSWAIT) continue; + if (radius[i].state == RADIUSCHAP) + continue; if (last_talked != TIME) { @@ -8342,6 +8344,13 @@ void become_master(void) epoll_ctl(epollfd, EPOLL_CTL_ADD, radfds[i], &e); } + + for (s = 1; s <= config->cluster_highest_sessionid ; ++s) + { + // Previous master had an authentication pending, restart it + if (session[s].ppp.phase == Authenticate && sess_local[s].lcp_authtype == AUTHCHAP) + sendchap(s, session[s].tunnel); + } } int cmd_show_hist_idle(struct cli_def *cli, const char *command, char **argv, int argc)