dbus status command is in par with unix sockets one

This commit is contained in:
Nikos Mavrogiannopoulos
2015-04-03 12:49:32 +02:00
parent bef3ace904
commit e65c4f5c60
2 changed files with 28 additions and 5 deletions

View File

@@ -155,6 +155,8 @@ typedef struct {
" <arg name=\"pid\" direction=\"out\" type=\"u\"/>\n" \
" <arg name=\"sec-mod-pid\" direction=\"out\" type=\"u\"/>\n" \
" <arg name=\"clients\" direction=\"out\" type=\"u\"/>\n" \
" <arg name=\"tls-sessions\" direction=\"out\" type=\"u\"/>\n" \
" <arg name=\"banned-ips\" direction=\"out\" type=\"u\"/>\n" \
" </method>\n"
static const ctl_method_st methods[] = {
@@ -302,6 +304,17 @@ static void method_status(main_server_st * s, struct dbus_ctx *ctx,
goto error;
}
tmp = s->tls_db.entries;
if (dbus_message_iter_append_basic(&args, DBUS_TYPE_UINT32, &tmp) == 0) {
mslog(s, NULL, LOG_ERR, "error appending to dbus reply");
goto error;
}
if (dbus_message_iter_append_basic(&args, DBUS_TYPE_UINT32, &tmp) == 0) {
mslog(s, NULL, LOG_ERR, "error appending to dbus reply");
goto error;
}
if (!dbus_connection_send(ctx->conn, reply, NULL)) {
mslog(s, NULL, LOG_ERR, "error sending dbus reply");
goto error;

View File

@@ -91,7 +91,7 @@ int handle_status_cmd(dbus_ctx *ctx, const char *arg)
dbus_bool_t status;
dbus_uint32_t pid;
dbus_uint32_t sec_mod_pid;
dbus_uint32_t clients;
dbus_uint32_t clients, stored_tls_sessions, banned_ips;
msg = send_dbus_cmd(ctx, "org.infradead.ocserv",
"/org/infradead/ocserv",
@@ -128,12 +128,22 @@ int handle_status_cmd(dbus_ctx *ctx, const char *arg)
goto error_parse;
dbus_message_iter_get_basic(&args, &clients);
if (DBUS_TYPE_UINT32 != dbus_message_iter_get_arg_type(&args))
goto error_parse;
dbus_message_iter_get_basic(&args, &stored_tls_sessions);
if (DBUS_TYPE_UINT32 != dbus_message_iter_get_arg_type(&args))
goto error_parse;
dbus_message_iter_get_basic(&args, &banned_ips);
printf("OpenConnect SSL VPN server\n");
printf(" Status: %s\n", status != 0 ? "online" : "error");
printf(" Clients: %u\n", (unsigned)clients);
printf(" Status: %s\n", status != 0 ? "online" : "error");
printf(" Clients: %u\n", (unsigned)clients);
printf(" IPs in ban list: %u\n", (unsigned)banned_ips);
printf(" TLS DB entries: %u\n", (unsigned)stored_tls_sessions);
printf("\n");
printf(" Server PID: %u\n", (unsigned)pid);
printf("Sec-mod PID: %u\n", (unsigned)sec_mod_pid);
printf(" Server PID: %u\n", (unsigned)pid);
printf(" Sec-mod PID: %u\n", (unsigned)sec_mod_pid);
dbus_message_unref(msg);