[systemd-devel] [PATCH 3/4] loginctl: use show_properties() to get login1 properties
Djalal Harouni
tixxdz at opendz.org
Tue Dec 17 10:42:02 PST 2013
Commit f8f14b3654bcd introduced a regression that makes loginctl ignore
the "--property" option.
This patch fixes the bug, it uses the new show_properties() function to
query and filter properties.
---
src/login/loginctl.c | 48 ++++++++++++++++++------------------------------
1 file changed, 18 insertions(+), 30 deletions(-)
diff --git a/src/login/loginctl.c b/src/login/loginctl.c
index ce0c94b..01df999 100644
--- a/src/login/loginctl.c
+++ b/src/login/loginctl.c
@@ -588,25 +588,21 @@ static int show_properties(sd_bus *bus, const char *path, bool *new_line) {
}
static int show_session(sd_bus *bus, char **args, unsigned n) {
- bool show_properties;
+ bool properties, new_line = false;
unsigned i;
int r;
assert(bus);
assert(args);
- show_properties = !strstr(args[0], "status");
+ properties = !strstr(args[0], "status");
pager_open_if_enabled();
- if (show_properties && n <= 1) {
+ if (properties && n <= 1) {
/* If not argument is specified inspect the manager
* itself */
- r = bus_print_all_properties(bus, "org.freedesktop.login1", "/org/freedesktop/login1", NULL, arg_all);
- if (r < 0)
- log_error("Failed to query login manager.");
-
- return r;
+ return show_properties(bus, "/org/freedesktop/login1", &new_line);
}
for (i = 1; i < n; i++) {
@@ -634,8 +630,8 @@ static int show_session(sd_bus *bus, char **args, unsigned n) {
if (r < 0)
return bus_log_parse_error(r);
- if (show_properties)
- r = bus_print_all_properties(bus, "org.freedesktop.login1", path, NULL, arg_all);
+ if (properties)
+ r = show_properties(bus, path, &new_line);
else
r = print_session_status_info(bus, path);
if (r < 0) {
@@ -648,25 +644,21 @@ static int show_session(sd_bus *bus, char **args, unsigned n) {
}
static int show_user(sd_bus *bus, char **args, unsigned n) {
- bool show_properties;
+ bool properties, new_line = false;
unsigned i;
int r;
assert(bus);
assert(args);
- show_properties = !strstr(args[0], "status");
+ properties = !strstr(args[0], "status");
pager_open_if_enabled();
- if (show_properties && n <= 1) {
+ if (properties && n <= 1) {
/* If not argument is specified inspect the manager
* itself */
- r = bus_print_all_properties(bus, "org.freedesktop.login1", "/org/freedesktop/login1", NULL, arg_all);
- if (r < 0)
- log_error("Failed to query login manager.");
-
- return r;
+ return show_properties(bus, "/org/freedesktop/login1", &new_line);
}
for (i = 1; i < n; i++) {
@@ -701,8 +693,8 @@ static int show_user(sd_bus *bus, char **args, unsigned n) {
if (r < 0)
return bus_log_parse_error(r);
- if (show_properties)
- r = bus_print_all_properties(bus, "org.freedesktop.login1", path, NULL, arg_all);
+ if (properties)
+ r = show_properties(bus, path, &new_line);
else
r = print_user_status_info(bus, path);
if (r < 0) {
@@ -715,25 +707,21 @@ static int show_user(sd_bus *bus, char **args, unsigned n) {
}
static int show_seat(sd_bus *bus, char **args, unsigned n) {
- bool show_properties;
+ bool properties, new_line = false;
unsigned i;
int r;
assert(bus);
assert(args);
- show_properties = !strstr(args[0], "status");
+ properties = !strstr(args[0], "status");
pager_open_if_enabled();
- if (show_properties && n <= 1) {
+ if (properties && n <= 1) {
/* If not argument is specified inspect the manager
* itself */
- r = bus_print_all_properties(bus, "org.freedesktop.login1", "/org/freedesktop/login1", NULL, arg_all);
- if (r < 0)
- log_error("Failed to query login manager.");
-
- return r;
+ return show_properties(bus, "/org/freedesktop/login1", &new_line);
}
for (i = 1; i < n; i++) {
@@ -761,8 +749,8 @@ static int show_seat(sd_bus *bus, char **args, unsigned n) {
if (r < 0)
return bus_log_parse_error(r);
- if (show_properties)
- r = bus_print_all_properties(bus, "org.freedesktop.login1", path, NULL, arg_all);
+ if (properties)
+ r = show_properties(bus, path, &new_line);
else
r = print_seat_status_info(bus, path);
if (r < 0) {
--
1.8.3.1
More information about the systemd-devel
mailing list