Commit 39e6fd36 by Serge Hallyn

namespaces: allow a pathname to a nsfd for namespace to share

parent 0b5afd32
...@@ -859,23 +859,27 @@ static int lxc_container_name_to_pid(const char *lxcname_or_pid, ...@@ -859,23 +859,27 @@ static int lxc_container_name_to_pid(const char *lxcname_or_pid,
return pid; return pid;
} }
int lxc_inherit_namespace(const char *lxcname_or_pid, const char *lxcpath, int lxc_inherit_namespace(const char *nsfd_path, const char *lxcpath,
const char *namespace) const char *namespace)
{ {
int fd, pid; int fd, pid;
char *dup, *lastslash; char *dup, *lastslash;
lastslash = strrchr(lxcname_or_pid, '/'); if (nsfd_path[0] == '/') {
return open(nsfd_path, O_RDONLY | O_CLOEXEC);
}
lastslash = strrchr(nsfd_path, '/');
if (lastslash) { if (lastslash) {
dup = strdup(lxcname_or_pid); dup = strdup(nsfd_path);
if (!dup) if (!dup)
return -1; return -1;
dup[lastslash - lxcname_or_pid] = '\0'; dup[lastslash - nsfd_path] = '\0';
pid = lxc_container_name_to_pid(lastslash + 1, dup); pid = lxc_container_name_to_pid(lastslash + 1, dup);
free(dup); free(dup);
} else { } else {
pid = lxc_container_name_to_pid(lxcname_or_pid, lxcpath); pid = lxc_container_name_to_pid(nsfd_path, lxcpath);
} }
if (pid < 0) if (pid < 0)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment