[dm-devel] [PATCH 3/6] multipathd: adopt static char* arr in sd_notify_status func
Martin Wilck
mwilck at suse.com
Mon Aug 17 08:35:40 UTC 2020
On Sun, 2020-08-16 at 09:44 +0800, Zhiqiang Liu wrote:
> We adopt static char* array (sd_notify_status_msg) in
> sd_notify_status func, so it looks more simpler and easier
> to expand.
>
> Signed-off-by: Zhiqiang Liu <liuzhiqiang26 at huawei.com>
> Signed-off-by: lixiaokeng <lixiaokeng at huawei.com>
> ---
> multipathd/main.c | 26 ++++++++++++--------------
> 1 file changed, 12 insertions(+), 14 deletions(-)
>
> diff --git a/multipathd/main.c b/multipathd/main.c
> index cab1d0d..a09ccd1 100644
> --- a/multipathd/main.c
> +++ b/multipathd/main.c
> @@ -177,23 +177,21 @@ daemon_status(void)
> * I love you too, systemd ...
> */
> #ifdef USE_SYSTEMD
> +static const char *sd_notify_status_msg[DAEMON_STATUS_SIZE] = {
> + [DAEMON_INIT] = "STATUS=init",
> + [DAEMON_START] = "STATUS=startup",
> + [DAEMON_CONFIGURE] = "STATUS=configure",
> + [DAEMON_IDLE] = "STATUS=up",
> + [DAEMON_RUNNING] = "STATUS=up",
> + [DAEMON_SHUTDOWN] = "STATUS=shutdown",
> +};
> +
This repetition of "STATUS=" looks clumsy. It's not your fault, because
the current code does the same thing. But if you want to clean this up,
please create the notification string in a dynamic buffer, and use
daemon_status() for those cases where it applies.
Regards
Martin
> static const char *
> sd_notify_status(enum daemon_status state)
> {
> - switch (state) {
> - case DAEMON_INIT:
> - return "STATUS=init";
> - case DAEMON_START:
> - return "STATUS=startup";
> - case DAEMON_CONFIGURE:
> - return "STATUS=configure";
> - case DAEMON_IDLE:
> - case DAEMON_RUNNING:
> - return "STATUS=up";
> - case DAEMON_SHUTDOWN:
> - return "STATUS=shutdown";
> - }
> - return NULL;
> + if (state < DAEMON_INIT || state >= DAEMON_STATUS_SIZE)
> + return NULL;
> + return sd_notify_status_msg[state];
> }
>
> static void do_sd_notify(enum daemon_status old_state,
More information about the dm-devel
mailing list