diff options
author | Alexander Amelkin <alexander@amelkin.msk.ru> | 2019-11-08 14:12:22 +0300 |
---|---|---|
committer | Alexander Amelkin <mocbuhtig@amelkin.msk.ru> | 2019-11-12 17:55:21 +0300 |
commit | 58c9263a288769d6e35990ac01ce33bde3cf0c76 (patch) | |
tree | 5f37ff854553cd1dd87681b8d86ad48865a1ddbc | |
parent | 0663814eecbbccaeaf9e93fa52ed7beb3102e639 (diff) | |
download | ipmitool-58c9263a288769d6e35990ac01ce33bde3cf0c76.tar.gz |
chassis: Refactor main for centralized exiting
In ipmi_chassis_main:
* Default to error return code (-1).
* Use centralized exit.
Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru>
-rw-r--r-- | lib/ipmi_chassis.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/lib/ipmi_chassis.c b/lib/ipmi_chassis.c index ad6ec77..faa038c 100644 --- a/lib/ipmi_chassis.c +++ b/lib/ipmi_chassis.c @@ -1917,7 +1917,7 @@ bootdev_parse_options(char *optstring, uint8_t flags[]) int ipmi_chassis_main(struct ipmi_intf * intf, int argc, char ** argv) { - int rc = 0; + int rc = -1; if ((argc == 0) || (strncmp(argv[0], "help", 4) == 0)) { lprintf(LOG_NOTICE, "Chassis Commands:\n" @@ -1936,11 +1936,12 @@ ipmi_chassis_main(struct ipmi_intf * intf, int argc, char ** argv) if ((argc < 2) || (strncmp(argv[1], "help", 4) == 0)) { lprintf(LOG_NOTICE, "chassis power Commands: status, on, off, cycle, reset, diag, soft"); - return 0; + rc = 0; + goto out; } if (strncmp(argv[1], "status", 6) == 0) { rc = ipmi_chassis_print_power_status(intf); - return rc; + goto out; } if ((strncmp(argv[1], "up", 2) == 0) || (strncmp(argv[1], "on", 2) == 0)) ctl = IPMI_CHASSIS_CTL_POWER_UP; @@ -1956,7 +1957,7 @@ ipmi_chassis_main(struct ipmi_intf * intf, int argc, char ** argv) ctl = IPMI_CHASSIS_CTL_ACPI_SOFT; else { lprintf(LOG_ERR, "Invalid chassis power command: %s", argv[1]); - return -1; + goto out; } rc = ipmi_chassis_power_control(intf, ctl); @@ -2067,7 +2068,8 @@ ipmi_chassis_main(struct ipmi_intf * intf, int argc, char ** argv) } if (optstr) { if (!bootdev_parse_options(optstr, flags)) - return -1; + goto out; + use_flags = true; } rc = ipmi_chassis_set_bootdev(intf, argv[1], @@ -2081,8 +2083,8 @@ ipmi_chassis_main(struct ipmi_intf * intf, int argc, char ** argv) } else { lprintf(LOG_ERR, "Invalid chassis command: %s", argv[0]); - return -1; } +out: return rc; } |