diff --git a/cli.c b/cli.c index e184e88..391a32f 100644 --- a/cli.c +++ b/cli.c @@ -419,13 +419,21 @@ static int cmd_show_session(struct cli_def *cli, const char *command, char **arg // Show individual session for (i = 0; i < argc; i++) { - unsigned int s, b_in, b_out; - s = atoi(argv[i]); - if (s <= 0 || s >= MAXSESSION) + unsigned int s, b_in, b_out, r; + + for (s = 0; s < MAXSESSION; s++) + if (!strcmp(argv[i], session[s].user)) + break; + if (s >= MAXSESSION) { - cli_print(cli, "Invalid session id \"%s\"", argv[i]); - continue; + s = atoi(argv[i]); + if (s <= 0 || s >= MAXSESSION) + { + cli_print(cli, "Invalid session id \"%s\"", argv[i]); + continue; + } } + cli_print(cli, "\r\nSession %d:", s); cli_print(cli, "\tUser:\t\t%s", session[s].user[0] ? session[s].user : "none"); cli_print(cli, "\tCalling Num:\t%s", session[s].calling);