/* SPDX-License-Identifier: LGPL-2.1+ */ #include #include "bus-common-errors.h" #include "bus-polkit.h" #include "fd-util.h" #include "oomd-manager-bus.h" #include "oomd-manager.h" #include "user-util.h" static int bus_method_dump_by_fd(sd_bus_message *message, void *userdata, sd_bus_error *error) { _cleanup_free_ char *dump = NULL; _cleanup_close_ int fd = -1; Manager *m = userdata; int r; assert(message); assert(m); r = manager_get_dump_string(m, &dump); if (r < 0) return r; fd = acquire_data_fd(dump, strlen(dump), 0); if (fd < 0) return fd; return sd_bus_reply_method_return(message, "h", fd); } const sd_bus_vtable manager_vtable[] = { SD_BUS_VTABLE_START(0), SD_BUS_METHOD("DumpByFileDescriptor", NULL, "h", bus_method_dump_by_fd, SD_BUS_VTABLE_UNPRIVILEGED), SD_BUS_VTABLE_END };