chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
bus: use EUID over UID and fix unix-creds
[elogind.git]
/
src
/
libsystemd
/
sd-bus
/
busctl.c
diff --git
a/src/libsystemd/sd-bus/busctl.c
b/src/libsystemd/sd-bus/busctl.c
index c9eeb91b0c0dba17de769281f46a47b690344acf..f0bc2a76a56956a5e17d20b4a0d873aae1ef6615 100644
(file)
--- a/
src/libsystemd/sd-bus/busctl.c
+++ b/
src/libsystemd/sd-bus/busctl.c
@@
-160,7
+160,7
@@
static int list_bus_names(sd_bus *bus, char **argv) {
r = sd_bus_get_name_creds(
bus, *i,
(arg_augment_creds ? SD_BUS_CREDS_AUGMENT : 0) |
r = sd_bus_get_name_creds(
bus, *i,
(arg_augment_creds ? SD_BUS_CREDS_AUGMENT : 0) |
- SD_BUS_CREDS_UID|SD_BUS_CREDS_PID|SD_BUS_CREDS_COMM|
+ SD_BUS_CREDS_
E
UID|SD_BUS_CREDS_PID|SD_BUS_CREDS_COMM|
SD_BUS_CREDS_UNIQUE_NAME|SD_BUS_CREDS_UNIT|SD_BUS_CREDS_SESSION|
SD_BUS_CREDS_DESCRIPTION, &creds);
if (r >= 0) {
SD_BUS_CREDS_UNIQUE_NAME|SD_BUS_CREDS_UNIT|SD_BUS_CREDS_SESSION|
SD_BUS_CREDS_DESCRIPTION, &creds);
if (r >= 0) {
@@
-178,7
+178,7
@@
static int list_bus_names(sd_bus *bus, char **argv) {
} else
fputs(" - - ", stdout);
} else
fputs(" - - ", stdout);
- r = sd_bus_creds_get_uid(creds, &uid);
+ r = sd_bus_creds_get_
e
uid(creds, &uid);
if (r >= 0) {
_cleanup_free_ char *u = NULL;
if (r >= 0) {
_cleanup_free_ char *u = NULL;
@@
-1127,6
+1127,8
@@
static int monitor(sd_bus *bus, char *argv[], int (*dump)(sd_bus_message *m, FIL
return log_error_errno(r, "Failed to add match: %m");
}
return log_error_errno(r, "Failed to add match: %m");
}
+ log_info("Monitoring bus message stream.");
+
for (;;) {
_cleanup_bus_message_unref_ sd_bus_message *m = NULL;
for (;;) {
_cleanup_bus_message_unref_ sd_bus_message *m = NULL;
@@
-1136,6
+1138,12
@@
static int monitor(sd_bus *bus, char *argv[], int (*dump)(sd_bus_message *m, FIL
if (m) {
dump(m, stdout);
if (m) {
dump(m, stdout);
+
+ if (sd_bus_message_is_signal(m, "org.freedesktop.DBus.Local", "Disconnected") > 0) {
+ log_info("Connection terminated, exiting.");
+ return 0;
+ }
+
continue;
}
continue;
}