fix PPP auth retry

This commit is contained in:
Christian Giese
2024-04-16 08:35:35 +00:00
parent 4e6d8fdce0
commit dca9d03647
2 changed files with 17 additions and 10 deletions
+3 -4
View File
@@ -1299,7 +1299,7 @@ bbl_session_json(bbl_session_s *session)
}
if(session->access_type == ACCESS_TYPE_PPPOE) {
root = json_pack("{ss si ss ss* si si ss si si ss ss* ss* ss* ss* ss* ss* ss* ss* ss* ss* ss* ss* ss* ss* ss* ss* ss* ss* sI sI si sI sI sI sI sI sI si si si si si si si si so* so* so*}",
root = json_pack("{ss si ss ss* si si ss si si ss ss* ss* ss* ss* ss* ss* ss* ss* ss* ss* ss* ss* ss* ss* ss* ss* ss* ss* sI sI si sI sI sI sI sI sI si si si si si si so* so* so*}",
"type", "pppoe",
"session-id", session->session_id,
"session-state", session_state_string(session->session_state),
@@ -1337,8 +1337,6 @@ bbl_session_json(bbl_session_s *session)
"rx-accounting-packets", session->stats.accounting_packets_rx,
"tx-accounting-bytes", session->stats.accounting_bytes_tx,
"rx-accounting-bytes", session->stats.accounting_bytes_rx,
"tx-arp", session->stats.arp_tx,
"rx-arp", session->stats.arp_rx,
"tx-igmp", session->stats.igmp_tx,
"rx-igmp", session->stats.igmp_rx,
"tx-icmp", session->stats.icmp_tx,
@@ -1490,7 +1488,7 @@ int
bbl_session_ctrl_counters(int fd, uint32_t session_id __attribute__((unused)), json_t *arguments __attribute__((unused)))
{
int result = 0;
json_t *root = json_pack("{ss si s{si si si si si si si si si si si si si si sf sf sf sf si si si si}}",
json_t *root = json_pack("{ss si s{si si si si si si si si si si si si si si si sf sf sf sf si si si si}}",
"status", "ok",
"code", 200,
"session-counters",
@@ -1499,6 +1497,7 @@ bbl_session_ctrl_counters(int fd, uint32_t session_id __attribute__((unused)), j
"sessions-ipoe", g_ctx->sessions_ipoe,
"sessions-established", g_ctx->sessions_established,
"sessions-established-max", g_ctx->sessions_established_max,
"sessions-outstanding", g_ctx->sessions_outstanding,
"sessions-terminated", g_ctx->sessions_terminated,
"sessions-flapped", g_ctx->sessions_flapped,
"dhcp-sessions", g_ctx->dhcp_requested,
+14 -6
View File
@@ -252,8 +252,12 @@ bbl_tx_pap_timeout(timer_s *timer)
bbl_session_s *session = timer->data;
if(session->session_state == BBL_PPP_AUTH) {
session->access_interface->stats.pap_timeout++;
session->send_requests |= BBL_SEND_PAP_REQUEST;
bbl_session_tx_qnode_insert(session);
if(session->auth_retries > g_ctx->config.authentication_retry) {
bbl_session_clear(session);
} else {
session->send_requests |= BBL_SEND_PAP_REQUEST;
bbl_session_tx_qnode_insert(session);
}
}
}
@@ -288,7 +292,7 @@ bbl_tx_encode_packet_pap_request(bbl_session_s *session)
pap.password_len = strlen(session->password);
timer_add(&g_ctx->timer_root, &session->timer_auth, "Authentication Timeout",
5, 0, session, &bbl_tx_pap_timeout);
g_ctx->config.authentication_timeout, 0, session, &bbl_tx_pap_timeout);
access_interface->stats.pap_tx++;
return encode_ethernet(session->write_buf, &session->write_idx, &eth);
@@ -300,8 +304,12 @@ bbl_tx_chap_timeout(timer_s *timer)
bbl_session_s *session = timer->data;
if(session->session_state == BBL_PPP_AUTH) {
session->access_interface->stats.chap_timeout++;
session->send_requests |= BBL_SEND_CHAP_RESPONSE;
bbl_session_tx_qnode_insert(session);
if(session->auth_retries > g_ctx->config.authentication_retry) {
bbl_session_clear(session);
} else {
session->send_requests |= BBL_SEND_CHAP_RESPONSE;
bbl_session_tx_qnode_insert(session);
}
}
}
@@ -337,7 +345,7 @@ bbl_tx_encode_packet_chap_response(bbl_session_s *session)
chap.name_len = strlen(session->username);
timer_add(&g_ctx->timer_root, &session->timer_auth, "Authentication Timeout",
5, 0, session, &bbl_tx_chap_timeout);
g_ctx->config.authentication_timeout, 0, session, &bbl_tx_chap_timeout);
access_interface->stats.chap_tx++;
return encode_ethernet(session->write_buf, &session->write_idx, &eth);