]> git.proxmox.com Git - mirror_lxc.git/commitdiff
lxc_*.c: don't exit with -1
authorSerge Hallyn <serge.hallyn@ubuntu.com>
Mon, 7 Apr 2014 16:56:20 +0000 (11:56 -0500)
committerStéphane Graber <stgraber@ubuntu.com>
Mon, 7 Apr 2014 21:19:14 +0000 (17:19 -0400)
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>
18 files changed:
doc/lxc-stop.sgml.in
src/lxc/lxc_attach.c
src/lxc/lxc_cgroup.c
src/lxc/lxc_clone.c
src/lxc/lxc_config.c
src/lxc/lxc_console.c
src/lxc/lxc_destroy.c
src/lxc/lxc_execute.c
src/lxc/lxc_freeze.c
src/lxc/lxc_init.c
src/lxc/lxc_monitor.c
src/lxc/lxc_monitord.c
src/lxc/lxc_snapshot.c
src/lxc/lxc_stop.c
src/lxc/lxc_unfreeze.c
src/lxc/lxc_unshare.c
src/lxc/lxc_usernsexec.c
src/lxc/lxc_wait.c

index dc002c551e3df5351656bf9c1d518b15dc4ebd81..bc5e6a8eef51d34a37f5492553869811b8044e7f 100644 (file)
@@ -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>
 
index 3fbcb82a2ae2f8e0b927fbb0d11eb8abf2838a45..3757ff96b77eb1affde2b2420d71a65db04a1104 100644 (file)
@@ -195,11 +195,11 @@ 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";
@@ -207,7 +207,7 @@ int main(int argc, char *argv[])
        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)
@@ -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;
 }
index a3cd2b7e590d96143c9d7f19123bd6e329138c3b..f150c4318b9fa6b9bf9087394304da18dc843c13 100644 (file)
@@ -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) {
@@ -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;
@@ -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);
        }
index 05579b84b1974a1aa962aaa50437b7a81fede681..df1b5efef5eff377c34404dc5e9aa595564e03f1 100644 (file)
@@ -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)) {
index dc8827cdbbc5e66cbb7b126b55f36a85f5537826..0658beb8d8e77380f38129cf13a664e66462e2b1 100644 (file)
@@ -70,5 +70,5 @@ int main(int argc, char *argv[])
                }
        }
        printf("Unknown configuration item: %s\n", argv[1]);
-       exit(-1);
+       exit(1);
 }
index 0fd08e8792706a91d67b1cbcc4d290dbeb019e21..b22322b1e2b85b7e3f520df0268ed1772e97781f 100644 (file)
@@ -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)) {
index d8bca345b73e046551c072024d870c7eec73432b..955fc23f743b3fc22f751ed703e740f2674c9d1d 100644 (file)
@@ -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)) {
@@ -108,5 +108,5 @@ int main(int argc, char *argv[])
        }
 
        lxc_container_put(c);
-       return 0;
+       exit(0);
 }
index 2ba4aeb68a13bc15e4821c384cb3e17542e93cc0..df25df3f8b46d25b71551496711289177477a381 100644 (file)
@@ -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 */
@@ -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 */
@@ -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;
 }
index fa64963e2ea34e35c79e4c54bc65aab7ae02fc56..0744c82ea9b6eb615c6b3f5ab767df6cc341e044 100644 (file)
@@ -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)) {
@@ -88,5 +88,5 @@ int main(int argc, char *argv[])
 
        lxc_container_put(c);
 
-       return 0;
+       exit(0);
 }
index 91ed08df000810a42b6a498203166cb97f99e190..b5596a0361dc71d8016e40c5013797659797a429 100644 (file)
@@ -260,5 +260,7 @@ int main(int argc, char *argv[])
                }
        }
 out:
-       return err;
+       if (err < 0)
+               exit(EXIT_FAILURE);
+       exit(err);
 }
index 7e2299ab22bbbd30ca11835446d1100f45b0b660..85993fc2fe5e853c0eb7e7190b909b3b0fd5d32d 100644 (file)
@@ -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) {
@@ -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);
 
@@ -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)
@@ -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';
index 6328bf845924ee81008837b015b3792d00e0c62b..c317cbe78ec4cafe69f212335664f3905c7e9a68 100644 (file)
@@ -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);
@@ -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;
 }
index eba9c307db8927b7a7ac6df14d26ff6f99d4d18e..1f8fdaf1167a3cf59b07c3cfcd4c298ca19af303 100644 (file)
@@ -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];
@@ -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) {
@@ -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);
 }
index 78a1da2fabe514accab9701affee0ed372f4e177..cb2fee0896cd5310101bb7ed1e583c48fb525d87 100644 (file)
@@ -236,5 +236,7 @@ int main(int argc, char *argv[])
 
 out:
        lxc_container_put(c);
+       if (ret < 0)
+               return 1;
        return ret;
 }
index 737198030653566c8a706c2fdb7e855cc9716d7f..6a40ed74d1733664691663977b0c938bae7c4614 100644 (file)
@@ -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)) {
@@ -86,5 +86,5 @@ int main(int argc, char *argv[])
 
        lxc_container_put(c);
 
-       return 0;
+       exit(0);
 }
index a591d0aa772ff183db0968217ed8e3de750330eb..fc6f9db13c6f0def7d23002cdd9f62d5ce629458 100644 (file)
@@ -211,7 +211,7 @@ int main(int argc, char *argv[])
 
        ret = lxc_caps_init();
        if (ret)
-               return ret;
+               return 1;
 
        ret = lxc_fill_namespace_flags(namespaces, &flags);
        if (ret)
@@ -235,7 +235,7 @@ int main(int argc, char *argv[])
        pid = lxc_clone(do_start, &start_arg, flags);
        if (pid < 0) {
                ERROR("failed to clone");
-               return -1;
+               return 1;
        }
 
        if (my_iflist) {
@@ -250,7 +250,7 @@ int main(int argc, char *argv[])
 
        if (waitpid(pid, &status, 0) < 0) {
                ERROR("failed to wait for '%d'", pid);
-               return -1;
+               return 1;
        }
 
        return  lxc_error_set_and_log(pid, status);
index f5b7fe06a41ebac91055dff9bd854ae107a3f0a6..732a74a825af77e78c7dce20ddf9c73eb7899801 100644 (file)
@@ -364,7 +364,7 @@ int main(int argc, char *argv[])
 
        if ((ret = waitpid(pid, &status, __WALL)) < 0) {
                printf("waitpid() returns %d, errno %d\n", ret, errno);
-               exit(ret);
+               exit(1);
        }
 
        exit(WEXITSTATUS(status));
index e1010e290be0e60f3b1a118e8d73dca1d51c9f18..897d0ea3d9f71183fd08130a7794b11ea6f27bda 100644 (file)
@@ -84,29 +84,29 @@ 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();
 
        c = lxc_container_new(my_args.name, my_args.lxcpath[0]);
        if (!c)
-               return -1;
+               return 1;
 
        if (!c->may_control(c)) {
                fprintf(stderr, "Insufficent privileges to control %s\n", c->name);
                lxc_container_put(c);
-               return -1;
+               return 1;
        }
 
        if (!c->wait(c, my_args.states, my_args.timeout)) {
                lxc_container_put(c);
-               return -1;
+               return 1;
        }
        return 0;
 }