]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
Ignore any container with a name starting by '.'
authorCarlos Alberto Lopez Perez <clopez@igalia.com>
Fri, 29 Jan 2016 14:39:22 +0000 (15:39 +0100)
committerStéphane Graber <stgraber@ubuntu.com>
Thu, 17 Nov 2016 22:48:22 +0000 (17:48 -0500)
  * This are either '.', '..' or a hidden directory.
    And this names should not be used for a container
    in any case.

  * Before this patch, if you created a git repository under lxc.lxcpath (it
    can be useful to keep track of the configurations of your containers)

    Then, when you run lxc-ls you will get the following output:

        # lxc-ls
        .git      container1      container2    ....

    This is because there is a 'config' file inside the '.git' directory.
    It is where git stores the configuration of the repository.

    And the test lxc-ls does to check if a directory contains a container
    is just to check if the 'directory/config' file exists.

Signed-off-by: Carlos Alberto Lopez Perez <clopez@igalia.com>
src/lxc/lxccontainer.c

index f9174b4cb0df811bcb64ed403b11c3cbc71bb46b..ecb2aeb2ff2aaf37ab95a8f38e597e7531b990bf 100644 (file)
@@ -3459,9 +3459,9 @@ int list_defined_containers(const char *lxcpath, char ***names, struct lxc_conta
        while (!readdir_r(dir, &dirent, &direntp)) {
                if (!direntp)
                        break;
-               if (!strcmp(direntp->d_name, "."))
-                       continue;
-               if (!strcmp(direntp->d_name, ".."))
+
+               // Ignore '.', '..' and any hidden directory
+               if (!strncmp(direntp->d_name, ".", 1))
                        continue;
 
                if (!config_file_exists(lxcpath, direntp->d_name))