occtl: improved session output

That is, do not print expiration time in sessions that are in use
(they don't expire during that time), and print whether a session
is in use.

Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
This commit is contained in:
Nikos Mavrogiannopoulos
2018-01-07 11:39:57 +01:00
parent a680af6a50
commit 907c34c520
3 changed files with 8 additions and 3 deletions

View File

@@ -312,6 +312,7 @@ message cookie_int_msg
required string remote_ip = 8;
required uint32 expires = 9;
required uint32 status = 10; /* the authentication status (PS_*) */
required bool in_use = 11;
}
/* SECM_LIST_COOKIES - no content */

View File

@@ -1298,9 +1298,11 @@ int session_info_cmd(void *ctx, SecmListCookiesReplyMsg * args, FILE *out,
/* old names for compatibility */
print_single_value_int(out, params, "session_is_open", args->cookies[i]->session_is_open, 1);
print_single_value_int(out, params, "tls_auth_ok", args->cookies[i]->tls_auth_ok, 1);
print_single_value_int(out, params, "in_use", args->cookies[i]->in_use, 1);
} else {
/* old names for compatibility */
print_single_value(out, params, "Active", args->cookies[i]->session_is_open?"True":"False", 1);
print_pair_value(out, params, "In use", args->cookies[i]->in_use?"True":"False",
"Activated", args->cookies[i]->session_is_open?"True":"False", 1);
print_single_value(out, params, "Certificate auth", args->cookies[i]->tls_auth_ok?"True":"False", 1);
}
@@ -1327,7 +1329,7 @@ int session_info_cmd(void *ctx, SecmListCookiesReplyMsg * args, FILE *out,
cleanup:
if (at_least_one == 0) {
if (NO_JSON(params))
fprintf(out, "Session ID not found\n");
fprintf(out, "Session ID not found or expired\n");
ret = 2;
}
if (init_pager)

View File

@@ -89,7 +89,8 @@ void handle_secm_list_cookies_reply(void *pool, int fd, sec_mod_st *sec)
else
cookies[msg.n_cookies].created = 0;
if (t->exptime > 0)
/* a session which is in use, does not expire */
if (t->exptime > 0 && t->in_use == 0)
cookies[msg.n_cookies].expires = t->exptime;
else
cookies[msg.n_cookies].expires = 0;
@@ -98,6 +99,7 @@ void handle_secm_list_cookies_reply(void *pool, int fd, sec_mod_st *sec)
cookies[msg.n_cookies].user_agent = t->acct_info.user_agent;
cookies[msg.n_cookies].remote_ip = t->acct_info.remote_ip;
cookies[msg.n_cookies].status = t->status;
cookies[msg.n_cookies].in_use = t->in_use;
msg.cookies[msg.n_cookies] = &cookies[msg.n_cookies];
msg.n_cookies++;