mirror of
https://gitlab.com/openconnect/ocserv.git
synced 2026-02-10 16:57:00 +08:00
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:
@@ -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 */
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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++;
|
||||
|
||||
Reference in New Issue
Block a user