cli: Also show routes and ipv6 in session output

This commit is contained in:
Samuel Thibault 2024-01-05 18:40:12 +01:00
parent 3186e8aa99
commit db17a9a10b

21
cli.c
View file

@ -454,6 +454,27 @@ static int cmd_show_session(struct cli_def *cli, const char *command, char **arg
cli_print(cli, "\t CCP state:\t%s", ppp_state(session[s].ppp.ccp));
}
cli_print(cli, "\tIP address:\t%s", fmtaddr(htonl(session[s].ip), 0));
for (r = 0; r < MAXROUTE && session[s].route[r].ip; r++)
{
cli_print(cli, "\tIP route:\t%s/%d", fmtaddr(htonl(session[s].route[r].ip), 0), session[s].route[r].prefixlen);
}
if (session[s].ipv6address.s6_addr[0])
{
cli_print(cli, "\tIPv6 address:\t%s", fmtaddr6(&session[s].ipv6address, 0));
}
else
{
in_addr_t addr_ipv4 = htonl(session[s].ip);
struct in6_addr addr;
memset(&addr, 0, sizeof(addr));
memcpy(&addr, &config->ipv6_prefix, 8);
memcpy(&addr.s6_addr[8], &addr_ipv4, 4);
cli_print(cli, "\tIPv6 address:\t%s", fmtaddr6(&addr, 0));
}
for (r = 0; r < MAXROUTE6 && session[s].route6[r].ipv6prefixlen; r++)
{
cli_print(cli, "\tIPv6 route:\t%s/%d", fmtaddr6(&session[s].route6[r].ipv6route, 0), session[s].route6[r].ipv6prefixlen);
}
cli_print(cli, "\tUnique SID:\t%u", session[s].unique_id);
cli_print(cli, "\tOpened:\t\t%u seconds", session[s].opened ? abs(time_now - session[s].opened) : 0);
cli_print(cli, "\tIdle time:\t%u seconds", session[s].last_packet ? abs(time_now - session[s].last_packet) : 0);