]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
lxc_abstract_unix_connect: accomodate containers started before Oct 28
authorSerge Hallyn <serge.hallyn@ubuntu.com>
Mon, 11 Nov 2013 18:32:14 +0000 (12:32 -0600)
committerSerge Hallyn <serge.hallyn@ubuntu.com>
Mon, 11 Nov 2013 21:27:04 +0000 (15:27 -0600)
commit aae93dd3dd20dd12c6b8f9f0490e2fb877ee3f09 fixed the command socket
name to use the right pathlen instead of always passing in the max
socket namelen.  However, this breaks lxc-info/lxc-list/etc for
containers started before that commit.  So if the correct command
sock name doesn't work, try the preexising one.

Note we can probably undo this "after awhile".  Maybe in august 2014.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
src/lxc/af_unix.c

index ab73963e3a170a3aa4faf6695168666bc4fb17b8..6f0183d954552cdda794395993aec30ad9a45cdf 100644 (file)
@@ -135,6 +135,9 @@ int lxc_abstract_unix_connect(const char *path)
 
        if (connect(fd, (struct sockaddr *)&addr, offsetof(struct sockaddr_un, sun_path) + len)) {
                int tmp = errno;
+               /* special case to connect to older containers */
+               if (connect(fd, (struct sockaddr *)&addr, sizeof(addr)) == 0)
+                       return fd;
                process_lock();
                close(fd);
                process_unlock();