mirror of
https://github.com/rtbrick/bngblaster.git
synced 2024-05-06 15:54:57 +00:00
fix PPP auth retry
This commit is contained in:
@@ -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,
|
||||
|
||||
@@ -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, ð);
|
||||
@@ -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, ð);
|
||||
|
||||
Reference in New Issue
Block a user