Display session's remainging time in CLI.

Patch extracted from original Debian sources, not found in upstream CVS.

Signed-off-by: Benjamin Cama <benoar@dolka.fr>
This commit is contained in:
Benjamin Cama 2011-07-21 16:57:27 +02:00
parent e57e8c3825
commit 482ed7cbe5

20
cli.c
View file

@ -443,6 +443,14 @@ static int cmd_show_session(struct cli_def *cli, char *command, char **argv, int
if (session[s].idle_timeout) if (session[s].idle_timeout)
cli_print(cli, "\tIdle Timeout:\t%u seconds", session[s].idle_timeout - (session[s].last_data ? abs(time_now - session[s].last_data) : 0)); cli_print(cli, "\tIdle Timeout:\t%u seconds", session[s].idle_timeout - (session[s].last_data ? abs(time_now - session[s].last_data) : 0));
if (session[s].timeout)
{
cli_print(cli, "\tRemaining time:\t%u",
(session[s].bundle && bundle[session[s].bundle].num_of_links > 1)
? (unsigned) (session[s].timeout - bundle[session[s].bundle].online_time)
: (unsigned) (session[s].timeout - (time_now - session[s].opened)));
}
cli_print(cli, "\tBytes In/Out:\t%u/%u", session[s].cout, session[s].cin); cli_print(cli, "\tBytes In/Out:\t%u/%u", session[s].cout, session[s].cin);
cli_print(cli, "\tPkts In/Out:\t%u/%u", session[s].pout, session[s].pin); cli_print(cli, "\tPkts In/Out:\t%u/%u", session[s].pout, session[s].pin);
cli_print(cli, "\tMRU:\t\t%d", session[s].mru); cli_print(cli, "\tMRU:\t\t%d", session[s].mru);
@ -510,7 +518,7 @@ static int cmd_show_session(struct cli_def *cli, char *command, char **argv, int
} }
// Show Summary // Show Summary
cli_print(cli, "%5s %4s %-32s %-15s %s %s %s %s %10s %10s %10s %4s %-15s %s", cli_print(cli, "%5s %4s %-32s %-15s %s %s %s %s %10s %10s %10s %4s %10s %-15s %s",
"SID", "SID",
"TID", "TID",
"Username", "Username",
@ -523,13 +531,20 @@ static int cmd_show_session(struct cli_def *cli, char *command, char **argv, int
"downloaded", "downloaded",
"uploaded", "uploaded",
"idle", "idle",
"Rem.Time",
"LAC", "LAC",
"CLI"); "CLI");
for (i = 1; i < MAXSESSION; i++) for (i = 1; i < MAXSESSION; i++)
{ {
uint32_t rem_time;
if (!session[i].opened) continue; if (!session[i].opened) continue;
cli_print(cli, "%5d %4d %-32s %-15s %s %s %s %s %10u %10lu %10lu %4u %-15s %s", if (session[i].bundle && bundle[session[i].bundle].num_of_links > 1)
rem_time = session[i].timeout ? (session[i].timeout - bundle[session[i].bundle].online_time) : 0;
else
rem_time = session[i].timeout ? (session[i].timeout - (time_now-session[i].opened)) : 0;
cli_print(cli, "%5d %4d %-32s %-15s %s %s %s %s %10u %10lu %10lu %4u %10lu %-15s %s",
i, i,
session[i].tunnel, session[i].tunnel,
session[i].user[0] ? session[i].user : "*", session[i].user[0] ? session[i].user : "*",
@ -542,6 +557,7 @@ static int cmd_show_session(struct cli_def *cli, char *command, char **argv, int
(unsigned long)session[i].cout, (unsigned long)session[i].cout,
(unsigned long)session[i].cin, (unsigned long)session[i].cin,
abs(time_now - (session[i].last_packet ? session[i].last_packet : time_now)), abs(time_now - (session[i].last_packet ? session[i].last_packet : time_now)),
(unsigned long)(rem_time),
fmtaddr(htonl(tunnel[ session[i].tunnel ].ip), 1), fmtaddr(htonl(tunnel[ session[i].tunnel ].ip), 1),
session[i].calling[0] ? session[i].calling : "*"); session[i].calling[0] ? session[i].calling : "*");
} }