diff options
author | Lennart Poettering <lennart@poettering.net> | 2010-04-23 05:22:20 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2010-04-23 05:22:20 +0200 |
commit | 6542952f8bece780ddf560499e1be9b35c690d26 (patch) | |
tree | 2c967e78a34421ceb402662cb668de2941fbcbc9 /initctl.c | |
parent | 92da345c02a99090879a247c360f9940e5c27ee3 (diff) |
initctl: minor updates
Diffstat (limited to 'initctl.c')
-rw-r--r-- | initctl.c | 48 |
1 files changed, 21 insertions, 27 deletions
@@ -39,6 +39,7 @@ #include "log.h" #include "list.h" #include "initreq.h" +#include "manager.h" #define SERVER_FD_START 3 #define SERVER_FD_MAX 16 @@ -67,42 +68,35 @@ struct Fifo { }; static const char *translate_runlevel(int runlevel) { + static const struct { + const int runlevel; + const char *special; + } table[] = { + { '0', SPECIAL_RUNLEVEL0_TARGET }, + { '1', SPECIAL_RUNLEVEL1_TARGET }, + { 's', SPECIAL_RUNLEVEL1_TARGET }, + { 'S', SPECIAL_RUNLEVEL1_TARGET }, + { '2', SPECIAL_RUNLEVEL2_TARGET }, + { '3', SPECIAL_RUNLEVEL3_TARGET }, + { '4', SPECIAL_RUNLEVEL4_TARGET }, + { '5', SPECIAL_RUNLEVEL5_TARGET }, + { '6', SPECIAL_RUNLEVEL6_TARGET }, + }; - switch (runlevel) { - - case '0': - return "halt.target"; - - case '1': - case 's': - case 'S': - return "rescue.target"; - - case '2': - return "runlevel2.target"; - - case '3': - return "runlevel3.target"; - - case '4': - return "runlevel4.target"; - - case '5': - return "runlevel5.target"; + unsigned i; - case '6': - return "reboot.target"; + for (i = 0; i < ELEMENTSOF(table); i++) + if (table[i].runlevel == runlevel) + return table[i].special; - default: - return NULL; - } + return NULL; } static void change_runlevel(Server *s, int runlevel) { const char *target; DBusMessage *m = NULL, *reply = NULL; DBusError error; - const char *path, *replace = "replace"; + const char *path, *replace = "isolate"; assert(s); |