summaryrefslogtreecommitdiff
path: root/accel-pppd/cli/std_cmd.c
diff options
context:
space:
mode:
authorDenys Fedoryshchenko <denys.f@collabora.com>2026-04-29 15:21:02 +0300
committerDenys Fedoryshchenko <denys.f@collabora.com>2026-05-04 03:09:49 +0300
commitd6383d69813cf2244f31d8116176733ffbbeaceb (patch)
treeb6e17fdd8677149ff51f727d678223ec6274b77e /accel-pppd/cli/std_cmd.c
parentbfca38f5d71dd552e6379152c5a4ba3b0b42f7a8 (diff)
downloadaccel-ppp-d6383d69813cf2244f31d8116176733ffbbeaceb.tar.gz
accel-ppp-d6383d69813cf2244f31d8116176733ffbbeaceb.zip
session: encapsulate statistics counters
Group the core session starting, active, and finishing statistics behind the private ap_session_stat storage in session.c instead of exposing writable counters through ap_session.h. This keeps ownership inside the session core while preserving the existing CLI and ACCEL-PPP-MIB counter semantics. Route session counter updates through ap_session_stat_*() helpers. Session start, activation, termination, finish, and shutdown-idle paths no longer open-code individual counter increments/decrements; the update policy now lives beside the session-owned storage and uses relaxed atomic operations for the simple state counters. Make the CLI show-stat path render from a local snapshot and convert the PPP SNMP starting/active/finishing scalars from watched raw pointers to scalar handlers. PPP controllers now read max-session limits through ap_session_stat_starting() and ap_session_stat_active(), removing external direct access to ap_session_stat. Signed-off-by: Denys Fedoryshchenko <denys.f@collabora.com>
Diffstat (limited to 'accel-pppd/cli/std_cmd.c')
-rw-r--r--accel-pppd/cli/std_cmd.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/accel-pppd/cli/std_cmd.c b/accel-pppd/cli/std_cmd.c
index c37777b1..9e7bf557 100644
--- a/accel-pppd/cli/std_cmd.c
+++ b/accel-pppd/cli/std_cmd.c
@@ -71,10 +71,16 @@ static int show_stat_exec(const char *cmd, char * const *fields, int fields_cnt,
cli_sendv(client, " timer_pending: %u\r\n", triton_stat.timer_pending);
//===========
- cli_send(client, "sessions:\r\n");
- cli_sendv(client, " starting: %u\r\n", ap_session_stat.starting);
- cli_sendv(client, " active: %u\r\n", ap_session_stat.active);
- cli_sendv(client, " finishing: %u\r\n", ap_session_stat.finishing);
+ {
+ struct ap_session_stat ses_stat;
+
+ ap_session_stat_get(&ses_stat);
+
+ cli_send(client, "sessions:\r\n");
+ cli_sendv(client, " starting: %u\r\n", ses_stat.starting);
+ cli_sendv(client, " active: %u\r\n", ses_stat.active);
+ cli_sendv(client, " finishing: %u\r\n", ses_stat.finishing);
+ }
return CLI_CMD_OK;
}