[systemd-devel] [PATCH 1/2] systemctl: delete REBOOT_PARAM_FILE if no parameter is specified
Michael Olbrich
m.olbrich at pengutronix.de
Thu Apr 10 01:33:38 PDT 2014
On Tue, Mar 25, 2014 at 02:15:44PM +0100, Michael Olbrich wrote:
> And move it to sperate function.
Ping! No comments at all?
Michael
> ---
> src/shared/util.c | 16 ++++++++++++++++
> src/shared/util.h | 2 ++
> src/systemctl/systemctl.c | 9 +++------
> 3 files changed, 21 insertions(+), 6 deletions(-)
>
> diff --git a/src/shared/util.c b/src/shared/util.c
> index ffe6624..0260d17 100644
> --- a/src/shared/util.c
> +++ b/src/shared/util.c
> @@ -6391,3 +6391,19 @@ void hexdump(FILE *f, const void *p, size_t s) {
> s -= 16;
> }
> }
> +
> +int update_reboot_param_file(const char *param)
> +{
> + int r = 0;
> +
> + if (param) {
> +
> + r = write_string_file(REBOOT_PARAM_FILE, param);
> + if (r < 0)
> + log_error("Failed to write reboot param to "
> + REBOOT_PARAM_FILE": %s", strerror(-r));
> + } else
> + unlink(REBOOT_PARAM_FILE);
> +
> + return r;
> +}
> diff --git a/src/shared/util.h b/src/shared/util.h
> index 90464c9..a557f70 100644
> --- a/src/shared/util.h
> +++ b/src/shared/util.h
> @@ -922,3 +922,5 @@ uint64_t physical_memory(void);
> char* mount_test_option(const char *haystack, const char *needle);
>
> void hexdump(FILE *f, const void *p, size_t s);
> +
> +int update_reboot_param_file(const char *param);
> diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c
> index 0887bc3..89de20e 100644
> --- a/src/systemctl/systemctl.c
> +++ b/src/systemctl/systemctl.c
> @@ -5973,13 +5973,10 @@ static int halt_parse_argv(int argc, char *argv[]) {
> }
> }
>
> - if (arg_action == ACTION_REBOOT && argc == optind + 1) {
> - r = write_string_file(REBOOT_PARAM_FILE, argv[optind]);
> - if (r < 0) {
> - log_error("Failed to write reboot param to "
> - REBOOT_PARAM_FILE": %s", strerror(-r));
> + if (arg_action == ACTION_REBOOT && (argc == optind || argc == optind + 1)) {
> + r = update_reboot_param_file(argc == optind + 1 ? argv[optind] : NULL);
> + if (r < 0)
> return r;
> - }
> } else if (optind < argc) {
> log_error("Too many arguments.");
> return -EINVAL;
> --
> 1.9.1
>
> _______________________________________________
> systemd-devel mailing list
> systemd-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/systemd-devel
>
--
Pengutronix e.K. | |
Industrial Linux Solutions | http://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
More information about the systemd-devel
mailing list