Skip to content

Commit

Permalink
lxc_*.c: don't exit with -1
Browse files Browse the repository at this point in the history
In this patch I tried to stick with each file's coding style, however I
think we should probably change that.  Every main() should always not
return and only exit;  they should always return EXIT_SUCCESS or EXIT_FAILURE
with the only exceptions being cases where we are returning a child's
exit status (lxc_execute, lxc_attach, lxc_init).

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
  • Loading branch information
hallyn authored and stgraber committed Apr 7, 2014
1 parent a344c06 commit 70b1ddf
Show file tree
Hide file tree
Showing 18 changed files with 99 additions and 52 deletions.
35 changes: 35 additions & 0 deletions doc/lxc-stop.sgml.in
Expand Up @@ -162,6 +162,41 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
</variablelist>
</refsect1>

<refsect1>
<title>Exit value</title>

<variablelist>

<varlistentry>
<term>0</term>
<listitem>
<para>
The container was successfully stopped.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>1</term>
<listitem>
<para>
An error occurred while stopping the container.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>2</term>
<listitem>
<para>
The specified container exists but was not running.
</para>
</listitem>
</varlistentry>

</variablelist>

</refsect1>
<refsect1>
<title>Diagnostic</title>

Expand Down
12 changes: 6 additions & 6 deletions src/lxc/lxc_attach.c
Expand Up @@ -195,19 +195,19 @@ int main(int argc, char *argv[])

ret = lxc_caps_init();
if (ret)
return ret;
return 1;

ret = lxc_arguments_parse(&my_args, argc, argv);
if (ret)
return ret;
return 1;

if (!my_args.log_file)
my_args.log_file = "none";

ret = lxc_log_init(my_args.name, my_args.log_file, my_args.log_priority,
my_args.progname, my_args.quiet, my_args.lxcpath[0]);
if (ret)
return ret;
return 1;
lxc_log_options_no_override();

if (remount_sys_proc)
Expand All @@ -229,14 +229,14 @@ int main(int argc, char *argv[])
}

if (ret < 0)
return -1;
return 1;

ret = lxc_wait_for_pid_status(pid);
if (ret < 0)
return -1;
return 1;

if (WIFEXITED(ret))
return WEXITSTATUS(ret);

return -1;
return 1;
}
14 changes: 7 additions & 7 deletions src/lxc/lxc_cgroup.c
Expand Up @@ -68,32 +68,32 @@ int main(int argc, char *argv[])
struct lxc_container *c;

if (lxc_arguments_parse(&my_args, argc, argv))
return -1;
return 1;

if (!my_args.log_file)
my_args.log_file = "none";

if (lxc_log_init(my_args.name, my_args.log_file, my_args.log_priority,
my_args.progname, my_args.quiet, my_args.lxcpath[0]))
return -1;
return 1;
lxc_log_options_no_override();

state_object = my_args.argv[0];

c = lxc_container_new(my_args.name, my_args.lxcpath[0]);
if (!c)
return -1;
return 1;

if (!c->may_control(c)) {
ERROR("Insufficent privileges to control %s:%s", my_args.lxcpath[0], my_args.name);
lxc_container_put(c);
return -1;
return 1;
}

if (!c->is_running(c)) {
ERROR("'%s:%s' is not running", my_args.lxcpath[0], my_args.name);
lxc_container_put(c);
return -1;
return 1;
}

if ((my_args.argc) > 1) {
Expand All @@ -102,7 +102,7 @@ int main(int argc, char *argv[])
ERROR("failed to assign '%s' value to '%s' for '%s'",
value, state_object, my_args.name);
lxc_container_put(c);
return -1;
return 1;
}
} else {
int len = 4096;
Expand All @@ -112,7 +112,7 @@ int main(int argc, char *argv[])
ERROR("failed to retrieve value of '%s' for '%s:%s'",
state_object, my_args.lxcpath[0], my_args.name);
lxc_container_put(c);
return -1;
return 1;
}
printf("%*s", ret, buffer);
}
Expand Down
2 changes: 1 addition & 1 deletion src/lxc/lxc_clone.c
Expand Up @@ -176,7 +176,7 @@ int main(int argc, char *argv[])
if (!c1->may_control(c1)) {
fprintf(stderr, "Insufficent privileges to control %s\n", orig);
lxc_container_put(c1);
return -1;
return 1;
}

if (!c1->is_defined(c1)) {
Expand Down
2 changes: 1 addition & 1 deletion src/lxc/lxc_config.c
Expand Up @@ -70,5 +70,5 @@ int main(int argc, char *argv[])
}
}
printf("Unknown configuration item: %s\n", argv[1]);
exit(-1);
exit(1);
}
2 changes: 1 addition & 1 deletion src/lxc/lxc_console.c
Expand Up @@ -115,7 +115,7 @@ int main(int argc, char *argv[])
if (!c->may_control(c)) {
fprintf(stderr, "Insufficent privileges to control %s\n", my_args.name);
lxc_container_put(c);
return -1;
exit(EXIT_FAILURE);
}

if (!c->is_running(c)) {
Expand Down
4 changes: 2 additions & 2 deletions src/lxc/lxc_destroy.c
Expand Up @@ -83,7 +83,7 @@ int main(int argc, char *argv[])
if (!c->may_control(c)) {
fprintf(stderr, "Insufficent privileges to control %s\n", my_args.name);
lxc_container_put(c);
return -1;
exit(1);
}

if (!c->is_defined(c)) {
Expand All @@ -108,5 +108,5 @@ int main(int argc, char *argv[])
}

lxc_container_put(c);
return 0;
exit(0);
}
20 changes: 12 additions & 8 deletions src/lxc/lxc_execute.c
Expand Up @@ -91,18 +91,19 @@ int main(int argc, char *argv[])
{
char *rcfile;
struct lxc_conf *conf;
int ret;

lxc_list_init(&defines);

if (lxc_caps_init())
return -1;
return 1;

if (lxc_arguments_parse(&my_args, argc, argv))
return -1;
return 1;

if (lxc_log_init(my_args.name, my_args.log_file, my_args.log_priority,
my_args.progname, my_args.quiet, my_args.lxcpath[0]))
return -1;
return 1;
lxc_log_options_no_override();

/* rcfile is specified in the cli option */
Expand All @@ -114,7 +115,7 @@ int main(int argc, char *argv[])
rc = asprintf(&rcfile, "%s/%s/config", my_args.lxcpath[0], my_args.name);
if (rc == -1) {
SYSERROR("failed to allocate memory");
return -1;
return 1;
}

/* container configuration does not exist */
Expand All @@ -127,16 +128,19 @@ int main(int argc, char *argv[])
conf = lxc_conf_init();
if (!conf) {
ERROR("failed to initialize configuration");
return -1;
return 1;
}

if (rcfile && lxc_config_read(rcfile, conf)) {
ERROR("failed to read configuration file");
return -1;
return 1;
}

if (lxc_config_define_load(&defines, conf))
return -1;
return 1;

return lxc_execute(my_args.name, my_args.argv, my_args.quiet, conf, my_args.lxcpath[0]);
ret = lxc_execute(my_args.name, my_args.argv, my_args.quiet, conf, my_args.lxcpath[0]);
if (ret < 0)
return 1;
return ret;
}
4 changes: 2 additions & 2 deletions src/lxc/lxc_freeze.c
Expand Up @@ -77,7 +77,7 @@ int main(int argc, char *argv[])
if (!c->may_control(c)) {
ERROR("Insufficent privileges to control %s:%s", my_args.lxcpath[0], my_args.name);
lxc_container_put(c);
return -1;
exit(1);
}

if (!c->freeze(c)) {
Expand All @@ -88,5 +88,5 @@ int main(int argc, char *argv[])

lxc_container_put(c);

return 0;
exit(0);
}
4 changes: 3 additions & 1 deletion src/lxc/lxc_init.c
Expand Up @@ -260,5 +260,7 @@ int main(int argc, char *argv[])
}
}
out:
return err;
if (err < 0)
exit(EXIT_FAILURE);
exit(err);
}
14 changes: 7 additions & 7 deletions src/lxc/lxc_monitor.c
Expand Up @@ -78,14 +78,14 @@ int main(int argc, char *argv[])
int len, rc, i, nfds = -1;

if (lxc_arguments_parse(&my_args, argc, argv))
return -1;
return 1;

if (!my_args.log_file)
my_args.log_file = "none";

if (lxc_log_init(my_args.name, my_args.log_file, my_args.log_priority,
my_args.progname, my_args.quiet, my_args.lxcpath[0]))
return -1;
return 1;
lxc_log_options_no_override();

if (quit_monitord) {
Expand Down Expand Up @@ -114,19 +114,19 @@ int main(int argc, char *argv[])
regexp = malloc(len + 3);
if (!regexp) {
ERROR("failed to allocate memory");
return -1;
return 1;
}
rc = snprintf(regexp, len, "^%s$", my_args.name);
if (rc < 0 || rc >= len) {
ERROR("Name too long");
free(regexp);
return -1;
return 1;
}

if (regcomp(&preg, regexp, REG_NOSUB|REG_EXTENDED)) {
ERROR("failed to compile the regex '%s'", my_args.name);
free(regexp);
return -1;
return 1;
}
free(regexp);

Expand All @@ -144,7 +144,7 @@ int main(int argc, char *argv[])
fd = lxc_monitor_open(my_args.lxcpath[i]);
if (fd < 0) {
regfree(&preg);
return -1;
return 1;
}
FD_SET(fd, &rfds);
if (fd > nfds)
Expand All @@ -160,7 +160,7 @@ int main(int argc, char *argv[])

if (lxc_monitor_read_fdset(&rfds, nfds, &msg, -1) < 0) {
regfree(&preg);
return -1;
return 1;
}

msg.name[sizeof(msg.name)-1] = '\0';
Expand Down
6 changes: 4 additions & 2 deletions src/lxc/lxc_monitord.c
Expand Up @@ -378,7 +378,7 @@ int main(int argc, char *argv[])
sigdelset(&mask, SIGTERM) ||
sigprocmask(SIG_BLOCK, &mask, NULL)) {
SYSERROR("failed to set signal mask");
return -1;
return 1;
}

signal(SIGILL, lxc_monitord_sig_handler);
Expand Down Expand Up @@ -428,5 +428,7 @@ int main(int argc, char *argv[])
ret = EXIT_SUCCESS;
NOTICE("monitor exiting");
out:
return ret;
if (ret == 0)
return 0;
return 1;
}
8 changes: 5 additions & 3 deletions src/lxc/lxc_snapshot.c
Expand Up @@ -179,7 +179,7 @@ int main(int argc, char *argv[])

if (my_args.argc > 1) {
ERROR("Too many arguments");
return -1;
exit(1);
}
if (my_args.argc == 1)
newname = my_args.argv[0];
Expand All @@ -205,7 +205,7 @@ int main(int argc, char *argv[])
if (!c->may_control(c)) {
fprintf(stderr, "Insufficent privileges to control %s\n", my_args.name);
lxc_container_put(c);
return -1;
exit(1);
}

switch(action) {
Expand All @@ -225,5 +225,7 @@ int main(int argc, char *argv[])

lxc_container_put(c);

exit(ret);
if (ret == 0)
exit(EXIT_SUCCESS);
exit(EXIT_FAILURE);
}
2 changes: 2 additions & 0 deletions src/lxc/lxc_stop.c
Expand Up @@ -236,5 +236,7 @@ int main(int argc, char *argv[])

out:
lxc_container_put(c);
if (ret < 0)
return 1;
return ret;
}
4 changes: 2 additions & 2 deletions src/lxc/lxc_unfreeze.c
Expand Up @@ -75,7 +75,7 @@ int main(int argc, char *argv[])
if (!c->may_control(c)) {
ERROR("Insufficent privileges to control %s:%s", my_args.lxcpath[0], my_args.name);
lxc_container_put(c);
return -1;
exit(1);
}

if (!c->unfreeze(c)) {
Expand All @@ -86,5 +86,5 @@ int main(int argc, char *argv[])

lxc_container_put(c);

return 0;
exit(0);
}

0 comments on commit 70b1ddf

Please sign in to comment.