bus-message-util: introduce bus_message_dump_fd() and _string()

Then, use them in analyze and oomctl.
This commit is contained in:
Yu Watanabe
2024-10-13 05:44:19 +09:00
parent 72e05e44f8
commit 058bccbecb
7 changed files with 47 additions and 46 deletions
+35 -1
View File
@@ -1,7 +1,10 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "bus-message-util.h"
#include <unistd.h>
#include "bus-message-util.h"
#include "bus-util.h"
#include "copy.h"
#include "resolve-util.h"
int bus_message_read_ifindex(sd_bus_message *message, sd_bus_error *error, int *ret) {
@@ -183,3 +186,34 @@ clear:
return r;
}
int bus_message_dump_string(sd_bus_message *message) {
const char *s;
int r;
assert(message);
r = sd_bus_message_read(message, "s", &s);
if (r < 0)
return bus_log_parse_error(r);
fputs(s, stdout);
return 0;
}
int bus_message_dump_fd(sd_bus_message *message) {
int fd, r;
assert(message);
r = sd_bus_message_read(message, "h", &fd);
if (r < 0)
return bus_log_parse_error(r);
fflush(stdout);
r = copy_bytes(fd, STDOUT_FILENO, UINT64_MAX, 0);
if (r < 0)
return log_error_errno(r, "Failed to dump contents in received file descriptor: %m");
return 0;
}
+3
View File
@@ -16,3 +16,6 @@ int bus_message_read_dns_servers(
bool extended,
struct in_addr_full ***ret_dns,
size_t *ret_n_dns);
int bus_message_dump_string(sd_bus_message *message);
int bus_message_dump_fd(sd_bus_message *message);