chiark / gitweb /
sd-bus: make sure %m resolves to the specified error in bus_error_set_errnofv()
[elogind.git] / src / libsystemd / sd-bus / bus-dump.c
index d6e5546053e6181ebb6c4fa7f9e0e2762c42f26b..b57ac41e055cdf19210d1d9259df14b1ad66c812 100644 (file)
@@ -126,7 +126,7 @@ int bus_message_dump(sd_bus_message *m, FILE *f, unsigned flags) {
 
         r = sd_bus_message_rewind(m, !(flags & BUS_MESSAGE_DUMP_SUBTREE_ONLY));
         if (r < 0) {
-                log_error("Failed to rewind: %s", strerror(-r));
+                log_error_errno(r, "Failed to rewind: %m");
                 return r;
         }
 
@@ -152,7 +152,7 @@ int bus_message_dump(sd_bus_message *m, FILE *f, unsigned flags) {
 
                 r = sd_bus_message_peek_type(m, &type, &contents);
                 if (r < 0) {
-                        log_error("Failed to peek type: %s", strerror(-r));
+                        log_error_errno(r, "Failed to peek type: %m");
                         return r;
                 }
 
@@ -162,7 +162,7 @@ int bus_message_dump(sd_bus_message *m, FILE *f, unsigned flags) {
 
                         r = sd_bus_message_exit_container(m);
                         if (r < 0) {
-                                log_error("Failed to exit container: %s", strerror(-r));
+                                log_error_errno(r, "Failed to exit container: %m");
                                 return r;
                         }
 
@@ -183,7 +183,7 @@ int bus_message_dump(sd_bus_message *m, FILE *f, unsigned flags) {
                 if (bus_type_is_container(type) > 0) {
                         r = sd_bus_message_enter_container(m, type, contents);
                         if (r < 0) {
-                                log_error("Failed to enter container: %s", strerror(-r));
+                                log_error_errno(r, "Failed to enter container: %m");
                                 return r;
                         }
 
@@ -203,7 +203,7 @@ int bus_message_dump(sd_bus_message *m, FILE *f, unsigned flags) {
 
                 r = sd_bus_message_read_basic(m, type, &basic);
                 if (r < 0) {
-                        log_error("Failed to get basic: %s", strerror(-r));
+                        log_error_errno(r, "Failed to get basic: %m");
                         return r;
                 }
 
@@ -384,8 +384,18 @@ int bus_creds_dump(sd_bus_creds *c, FILE *f, bool terse) {
         if (c->mask & SD_BUS_CREDS_FSGID)
                 fprintf(f, "%sFSGID=%s"GID_FMT"%s", prefix, color, c->fsgid, suffix);
 
+        if (c->mask & SD_BUS_CREDS_SUPPLEMENTARY_GIDS) {
+                unsigned i;
+
+                fprintf(f, "%sSupplementaryGIDs=%s", prefix, color);
+                for (i = 0; i < c->n_supplementary_gids; i++)
+                        fprintf(f, "%s" GID_FMT, i > 0 ? " " : "", c->supplementary_gids[i]);
+                fprintf(f, "%s", suffix);
+        }
+
         if (terse && ((c->mask & (SD_BUS_CREDS_UID|SD_BUS_CREDS_EUID|SD_BUS_CREDS_SUID|SD_BUS_CREDS_FSUID|
-                                  SD_BUS_CREDS_GID|SD_BUS_CREDS_EGID|SD_BUS_CREDS_SGID|SD_BUS_CREDS_FSGID)) || r >= 0))
+                                  SD_BUS_CREDS_GID|SD_BUS_CREDS_EGID|SD_BUS_CREDS_SGID|SD_BUS_CREDS_FSGID|
+                                  SD_BUS_CREDS_SUPPLEMENTARY_GIDS)) || r >= 0))
                 fputs("\n", f);
 
         if (c->mask & SD_BUS_CREDS_COMM)