[lxc-devel] [PATCH 1/1] lxc_abstract_unix_connect: accomodate containers started before Oct 28

Serge Hallyn serge.hallyn at ubuntu.com
Mon Nov 11 18:34:51 UTC 2013


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 at ubuntu.com>
---
 src/lxc/af_unix.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/lxc/af_unix.c b/src/lxc/af_unix.c
index ab73963..6f0183d 100644
--- a/src/lxc/af_unix.c
+++ b/src/lxc/af_unix.c
@@ -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();
-- 
1.8.3.2





More information about the lxc-devel mailing list