systemctl: show connection counters only for Accept=yes sockets

This commit is contained in:
Lennart Poettering 2010-07-10 00:55:44 +02:00
parent 828f33e89b
commit b8131a87cc
2 changed files with 13 additions and 3 deletions

2
fixme
View file

@ -39,8 +39,6 @@
* pull in umount.target and shutdown.target from emergency.service (?)
* Don't show Accepted/Connected for non-Accept sockets
* Show exit status auf auxiliary programs in systemctl status
External:

View file

@ -947,6 +947,7 @@ typedef struct UnitStatusInfo {
/* Socket */
unsigned n_accepted;
unsigned n_connections;
bool accept;
/* Device */
const char *sysfs_path;
@ -997,7 +998,7 @@ static void print_status_info(UnitStatusInfo *i) {
if (i->status_text)
printf("\t Status: \"%s\"\n", i->status_text);
if (i->id && endswith(i->id, ".socket"))
if (i->accept)
printf("\tAccepted: %u; Connected: %u\n", i->n_accepted, i->n_connections);
if (i->main_pid > 0 || i->control_pid > 0) {
@ -1093,6 +1094,17 @@ static int status_property(const char *name, DBusMessageIter *iter, UnitStatusIn
break;
}
case DBUS_TYPE_BOOLEAN: {
dbus_bool_t b;
dbus_message_iter_get_basic(iter, &b);
if (streq(name, "Accept"))
i->accept = b;
break;
}
case DBUS_TYPE_UINT32: {
uint32_t u;