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@xxxxxxxxxx> Signed-off-by: lixiaokeng <lixiaokeng@xxxxxxxxxx> --- 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", +}; + 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, -- 1.8.3.1 -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel