From 8ba9a9ac9678ccd1cf4b3f9234f68c03de1a3ba2 Mon Sep 17 00:00:00 2001 From: Adrian Vovk Date: Wed, 19 Jul 2023 17:55:18 -0400 Subject: [PATCH] sysupdate: Split reboot_now into utils This will let us reuse reboot_now in updatectl --- src/sysupdate/meson.build | 1 + src/sysupdate/sysupdate-util.c | 24 +++++++++++++++++++++++- src/sysupdate/sysupdate-util.h | 5 +++++ src/sysupdate/sysupdate.c | 23 ++--------------------- 4 files changed, 31 insertions(+), 22 deletions(-) create mode 100644 src/sysupdate/sysupdate-util.h diff --git a/src/sysupdate/meson.build b/src/sysupdate/meson.build index 3e50c42afef..b1b1204a2ab 100644 --- a/src/sysupdate/meson.build +++ b/src/sysupdate/meson.build @@ -9,6 +9,7 @@ systemd_sysupdate_sources = files( 'sysupdate-transfer.c', 'sysupdate-update-set.c', 'sysupdate-update-set-flags.c', + 'sysupdate-util.c', 'sysupdate.c', ) diff --git a/src/sysupdate/sysupdate-util.c b/src/sysupdate/sysupdate-util.c index eacc592f622..2b3acd0fd95 100644 --- a/src/sysupdate/sysupdate-util.c +++ b/src/sysupdate/sysupdate-util.c @@ -1,4 +1,26 @@ /* SPDX-License-Identifier: LGPL-2.1-or-later */ -#include "path-util.h" +#include "sd-bus.h" + +#include "bus-error.h" +#include "bus-locator.h" +#include "login-util.h" + #include "sysupdate-util.h" + +int reboot_now(void) { + _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL; + _cleanup_(sd_bus_close_unrefp) sd_bus *bus = NULL; + int r; + + r = sd_bus_open_system(&bus); + if (r < 0) + return log_error_errno(r, "Failed to open bus connection: %m"); + + r = bus_call_method(bus, bus_login_mgr, "RebootWithFlags", &error, NULL, "t", + (uint64_t) SD_LOGIND_ROOT_CHECK_INHIBITORS); + if (r < 0) + return log_error_errno(r, "Failed to issue reboot request: %s", bus_error_message(&error, r)); + + return 0; +} diff --git a/src/sysupdate/sysupdate-util.h b/src/sysupdate/sysupdate-util.h new file mode 100644 index 00000000000..fdd6c8318e7 --- /dev/null +++ b/src/sysupdate/sysupdate-util.h @@ -0,0 +1,5 @@ +/* SPDX-License-Identifier: LGPL-2.1-or-later */ + +#pragma once + +int reboot_now(void); diff --git a/src/sysupdate/sysupdate.c b/src/sysupdate/sysupdate.c index e2f154d0e8d..870aa04d7ca 100644 --- a/src/sysupdate/sysupdate.c +++ b/src/sysupdate/sysupdate.c @@ -4,8 +4,6 @@ #include #include "build.h" -#include "bus-error.h" -#include "bus-locator.h" #include "chase.h" #include "conf-files.h" #include "constants.h" @@ -16,7 +14,6 @@ #include "glyph-util.h" #include "hexdecoct.h" #include "json-util.h" -#include "login-util.h" #include "main-func.h" #include "mount-util.h" #include "os-util.h" @@ -30,9 +27,10 @@ #include "sort-util.h" #include "string-util.h" #include "strv.h" +#include "sysupdate.h" #include "sysupdate-transfer.h" #include "sysupdate-update-set.h" -#include "sysupdate.h" +#include "sysupdate-util.h" #include "terminal-util.h" #include "utf8.h" #include "verbs.h" @@ -905,23 +903,6 @@ static int context_apply( return 1; } -static int reboot_now(void) { - _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL; - _cleanup_(sd_bus_close_unrefp) sd_bus *bus = NULL; - int r; - - r = sd_bus_open_system(&bus); - if (r < 0) - return log_error_errno(r, "Failed to open bus connection: %m"); - - r = bus_call_method(bus, bus_login_mgr, "RebootWithFlags", &error, NULL, "t", - (uint64_t) SD_LOGIND_ROOT_CHECK_INHIBITORS); - if (r < 0) - return log_error_errno(r, "Failed to issue reboot request: %s", bus_error_message(&error, r)); - - return 0; -} - static int process_image( bool ro, char **ret_mounted_dir, -- 2.47.3