]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
tools: lxc-autostart: non-functional changes
authorChristian Brauner <christian.brauner@ubuntu.com>
Fri, 12 Jan 2018 12:25:15 +0000 (13:25 +0100)
committerChristian Brauner <christian.brauner@ubuntu.com>
Tue, 6 Feb 2018 20:03:31 +0000 (21:03 +0100)
Closes #2073.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
src/lxc/tools/lxc_autostart.c

index a3d4a8a8a47d5c01e3a7cf71646c67c67899bb7f..b3823af2f0d4e2a11e1d947ae417ef0487a80e87 100644 (file)
@@ -18,6 +18,8 @@
  *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
+#include <stdio.h>
+#include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
 
@@ -144,14 +146,13 @@ int lists_contain_common_entry(struct lxc_list *p1, struct lxc_list *p2) {
        return 0;
 }
 
-/*
- * This is a variation of get_list below it.
- * This version allows two additional features.
- * If a list is passed to it, it adds to it.
- * It allows for empty entries (i.e. "group1,,group2") generating
- *     and empty list entry.
+/* This is a variation of get_list below it. This version allows two additional
+ * features. If a list is passed to it, it adds to it. It allows for empty
+ * entries (i.e. "group1,,group2") generating and empty list entry.
  */
-static struct lxc_list *accumulate_list(char *input, char *delimiter, struct lxc_list *str_list) {
+static struct lxc_list *accumulate_list(char *input, char *delimiter,
+                                       struct lxc_list *str_list)
+{
        char *workstr = NULL;
        char *workptr = NULL;
        char *next_ptr = NULL;
@@ -159,45 +160,33 @@ static struct lxc_list *accumulate_list(char *input, char *delimiter, struct lxc
        struct lxc_list *workstr_list;
 
        workstr = strdup(input);
-       if (!workstr) {
+       if (!workstr)
                return NULL;
-       }
 
        workstr_list = str_list;
-       if ( ! workstr_list ) {
+       if (!workstr_list) {
                workstr_list = malloc(sizeof(*workstr_list));
                lxc_list_init(workstr_list);
        }
 
        for (workptr = workstr; workptr; workptr = next_ptr) {
-               /*
-                * We can't use strtok_r here because it collapses
-                * multiple delimiters into 1 making empty fields
-                * impossible...
+               /* We can't use strtok_r here because it collapses multiple
+                * delimiters into 1 making empty fields impossible...
                 */
-               /* token = strtok_r(workptr, delimiter, &sptr); */
-               next_ptr = strchr( workptr, *delimiter );
-
-               if( next_ptr ) {
+               next_ptr = strchr(workptr, *delimiter);
+               if (next_ptr)
                        *next_ptr++ = '\0';
-               }
 
-               /*
-                * At this point, we'd like to check to see if this
-                * group is already contained in the list and ignore
-                * it if it is...  This also helps us with any
-                * corner cases where a string begins or ends with a
-                * delimiter.
+               /* At this point, we'd like to check to see if this group is
+                * already contained in the list and ignore it if it is...  This
+                * also helps us with any corner cases where a string begins or
+                * ends with a delimiter.
                 */
-
-               if ( list_contains_entry( workptr, workstr_list ) ) {
-                       if ( *workptr ) {
-                               fprintf(stderr, "Duplicate group \"%s\" in list - ignoring\n", workptr );
-                               fflush(stderr);
-                       } else {
-                               fprintf(stderr, "Duplicate NULL group in list - ignoring\n" );
-                               fflush(stderr);
-                       }
+               if (list_contains_entry(workptr, workstr_list)) {
+                       if (*workptr)
+                               fprintf(stderr, "Duplicate group \"%s\" in list - ignoring\n", workptr);
+                       else
+                               fprintf(stderr, "Duplicate NULL group in list - ignoring\n");
                } else {
                        worklist = malloc(sizeof(*worklist));
                        if (!worklist)
@@ -218,7 +207,8 @@ static struct lxc_list *accumulate_list(char *input, char *delimiter, struct lxc
        return workstr_list;
 }
 
-static struct lxc_list *get_list(char *input, char *delimiter) {
+static struct lxc_list *get_list(char *input, char *delimiter)
+{
        char *workstr = NULL;
        char *workptr = NULL;
        char *sptr = NULL;
@@ -235,11 +225,10 @@ static struct lxc_list *get_list(char *input, char *delimiter) {
                return NULL;
        }
 
-       for (workptr = workstr;;workptr = NULL) {
+       for (workptr = workstr;; workptr = NULL) {
                token = strtok_r(workptr, delimiter, &sptr);
-               if (!token) {
+               if (!token)
                        break;
-               }
 
                worklist = malloc(sizeof(*worklist));
                if (!worklist)
@@ -259,16 +248,17 @@ static struct lxc_list *get_list(char *input, char *delimiter) {
        return workstr_list;
 }
 
-static struct lxc_list *get_config_list(struct lxc_container *c, char *key) {
+static struct lxc_list *get_config_list(struct lxc_container *c, char *key)
+{
        int len = 0;
-       charvalue = NULL;
+       char *value = NULL;
        struct lxc_list *config_list = NULL;
 
        len = c->get_config_item(c, key, NULL, 0);
        if (len < 0)
                return NULL;
 
-       value = (char*) malloc(sizeof(char)*len + 1);
+       value = (char *)malloc(sizeof(char) * len + 1);
        if (value == NULL)
                return NULL;
 
@@ -288,16 +278,16 @@ static struct lxc_list *get_config_list(struct lxc_container *c, char *key) {
        return config_list;
 }
 
-static int get_config_integer(struct lxc_container *c, char *key) {
-       int len = 0;
-       int ret = 0;
-       charvalue = NULL;
+static int get_config_integer(struct lxc_container *c, char *key)
+{
+       int len = 0, ret = 0;
+       char *value = NULL;
 
        len = c->get_config_item(c, key, NULL, 0);
        if (len < 0)
                return 0;
 
-       value = (char*) malloc(sizeof(char)*len + 1);
+       value = (char *)malloc(sizeof(char) * len + 1);
        if (value == NULL)
                return 0;
 
@@ -314,7 +304,8 @@ static int get_config_integer(struct lxc_container *c, char *key) {
        return ret;
 }
 
-static int cmporder(const void *p1, const void *p2) {
+static int cmporder(const void *p1, const void *p2)
+{
        struct lxc_container *c1 = *(struct lxc_container **)p1;
        struct lxc_container *c2 = *(struct lxc_container **)p2;
 
@@ -323,33 +314,33 @@ static int cmporder(const void *p1, const void *p2) {
 
        if (c1_order == c2_order)
                return strcmp(c1->name, c2->name);
-       else
-               return (c1_order - c2_order);
+
+       return (c1_order - c2_order);
 }
 
-static int toss_list( struct lxc_list *c_groups_list ) {
+static int toss_list(struct lxc_list *c_groups_list)
+{
        struct lxc_list *it, *next;
 
-       if (c_groups_list) {
-               lxc_list_for_each_safe(it, c_groups_list, next) {
-                       lxc_list_del(it);
-                       free(it->elem);
-                       free(it);
-               }
-               free(c_groups_list);
+       if (!c_groups_list)
+               return 1;
+
+       lxc_list_for_each_safe(it, c_groups_list, next) {
+               lxc_list_del(it);
+               free(it->elem);
+               free(it);
        }
+       free(c_groups_list);
 
        return 1;
 }
 
 int main(int argc, char *argv[])
 {
-       int count = 0;
-       int i = 0;
-       int ret = 0;
+       int count = 0, i = 0, ret = 0;
+       struct lxc_list *cmd_group;
        struct lxc_container **containers = NULL;
        struct lxc_list **c_groups_lists = NULL;
-       struct lxc_list *cmd_group;
        struct lxc_log log;
 
        if (lxc_arguments_parse(&my_args, argc, argv))
@@ -374,36 +365,29 @@ int main(int argc, char *argv[])
        if (count < 0)
                exit(EXIT_FAILURE);
 
-       if (!my_args.all) {
-               /* Allocate an array for our container group lists */
+       /* Allocate an array for our container group lists */
+       if (!my_args.all)
                c_groups_lists = calloc( count, sizeof( struct lxc_list * ) );
-       }
 
        qsort(&containers[0], count, sizeof(struct lxc_container *), cmporder);
 
-       if (cmd_groups_list && my_args.all) {
+       if (cmd_groups_list && my_args.all)
                fprintf(stderr, "Specifying -a (all) with -g (groups) doesn't make sense. All option overrides.\n");
-               fflush(stderr);
-       }
 
-       if (!cmd_groups_list) {
-               /*
-                * We need a default cmd_groups_list even for the -a
-                * case in order to force a pass through the loop for
-                * the NULL group.  This, someday, could be taken from
-                * a config file somewhere...
-                */
+       /* We need a default cmd_groups_list even for the -a
+        * case in order to force a pass through the loop for
+        * the NULL group.  This, someday, could be taken from
+        * a config file somewhere...
+        */
+       if (!cmd_groups_list)
                cmd_groups_list = accumulate_list( "" , ",", NULL );
-       }
 
        lxc_list_for_each(cmd_group, cmd_groups_list) {
-
-               /*
-                * Prograpmmers Note:
-                * Because we may take several passes through the container list
-                * We'll switch on if the container pointer is NULL and if we process a
-                * container (run it or decide to ignore it) and call lxc_container_put
-                * then we'll NULL it out and not check it again.
+               /* Because we may take several passes through the container list
+                * We'll switch on if the container pointer is NULL and if we
+                * process a container (run it or decide to ignore it) and call
+                * lxc_container_put then we'll NULL it out and not check it
+                * again.
                 */
                for (i = 0; i < count; i++) {
                        struct lxc_container *c = containers[i];
@@ -412,10 +396,9 @@ int main(int argc, char *argv[])
                                /* Skip - must have been already processed */
                                continue;
 
-                       /*
-                        * We haven't loaded the container groups yet so
-                        * these next two checks don't need to free them
-                        * if they fail.  They'll fail on the first pass.
+                       /* We haven't loaded the container groups yet so these
+                        * next two checks don't need to free them if they fail.
+                        * They'll fail on the first pass.
                         */
                        if (!c->may_control(c)) {
                                /* We're done with this container */
@@ -442,8 +425,10 @@ int main(int argc, char *argv[])
                                ret = list_contains_entry(cmd_group->elem, c_groups_lists[i]);
 
                                if ( ret == 0 ) {
-                                       /* Not in the target group this pass */
-                                       /* Leave in the list for subsequent passes */
+                                       /* Not in the target group this pass so
+                                        * leave in the list for subsequent
+                                        * passes.
+                                        */
                                        continue;
                                }
                        }
@@ -467,8 +452,7 @@ int main(int argc, char *argv[])
                                                }
                                        }
                                }
-                       }
-                       else if (my_args.hardstop) {
+                       } else if (my_args.hardstop) {
                                /* Kill the container */
                                if (c->is_running(c)) {
                                        if (my_args.list) {
@@ -482,8 +466,7 @@ int main(int argc, char *argv[])
                                                }
                                        }
                                }
-                       }
-                       else if (my_args.reboot) {
+                       } else if (my_args.reboot) {
                                /* Reboot the container */
                                if (c->is_running(c)) {
                                        if (my_args.list) {
@@ -500,8 +483,7 @@ int main(int argc, char *argv[])
                                                        sleep(get_config_integer(c, "lxc.start.delay"));
                                        }
                                }
-                       }
-                       else {
+                       } else {
                                /* Start the container */
                                if (!c->is_running(c)) {
                                        if (my_args.list) {
@@ -525,9 +507,8 @@ int main(int argc, char *argv[])
                         * then we're done with this container...  We can dump any
                         * c_groups_list and the container itself.
                         */
-                       if ( lxc_container_put(c) > 0 ) {
+                       if ( lxc_container_put(c) > 0 )
                                containers[i] = NULL;
-                       }
                        if ( c_groups_lists ) {
                                toss_list(c_groups_lists[i]);
                                c_groups_lists[i] = NULL;
@@ -538,12 +519,11 @@ int main(int argc, char *argv[])
 
        /* clean up any lingering detritus */
        for (i = 0; i < count; i++) {
-               if ( containers[i] ) {
+               if (containers[i])
                        lxc_container_put(containers[i]);
-               }
-               if ( c_groups_lists && c_groups_lists[i] ) {
+
+               if (c_groups_lists && c_groups_lists[i])
                        toss_list(c_groups_lists[i]);
-               }
        }
 
        free(c_groups_lists);