summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Amelkin <alexander@amelkin.msk.ru>2019-11-08 14:12:22 +0300
committerAlexander Amelkin <mocbuhtig@amelkin.msk.ru>2019-11-12 17:55:21 +0300
commit58c9263a288769d6e35990ac01ce33bde3cf0c76 (patch)
tree5f37ff854553cd1dd87681b8d86ad48865a1ddbc
parent0663814eecbbccaeaf9e93fa52ed7beb3102e639 (diff)
downloadipmitool-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.c14
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;
}