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

Reply via email to