In order to be able to reuse code in lxc-attach, the functions
lxc_namespace_2_cloneflag and lxc_fill_namespace_flags are moved from
lxc_unshare.c to namespace.c.

Signed-off-by: Christian Seiler <christ...@iwakd.de>
Cc: Daniel Lezcano <daniel.lezc...@free.fr>
Cc: Serge Hallyn <serge.hal...@canonical.com>
---
 src/lxc/lxc_unshare.c |   45 ---------------------------------------------
 src/lxc/namespace.c   |   45 +++++++++++++++++++++++++++++++++++++++++++++
 src/lxc/namespace.h   |    3 +++
 3 files changed, 48 insertions(+), 45 deletions(-)

diff --git a/src/lxc/lxc_unshare.c b/src/lxc/lxc_unshare.c
index 498d6e0..3a848b2 100644
--- a/src/lxc/lxc_unshare.c
+++ b/src/lxc/lxc_unshare.c
@@ -84,51 +84,6 @@ static uid_t lookup_user(const char *optarg)
        return uid;
 }
 
-static char *namespaces_list[] = {
-       "MOUNT", "PID", "UTSNAME", "IPC",
-       "USER", "NETWORK"
-};
-static int cloneflags_list[] = {
-       CLONE_NEWNS, CLONE_NEWPID, CLONE_NEWUTS, CLONE_NEWIPC,
-       CLONE_NEWUSER, CLONE_NEWNET
-};
-
-static int lxc_namespace_2_cloneflag(char *namespace)
-{
-       int i, len;
-       len = sizeof(namespaces_list)/sizeof(namespaces_list[0]);
-       for (i = 0; i < len; i++)
-               if (!strcmp(namespaces_list[i], namespace))
-                       return cloneflags_list[i];
-
-       ERROR("invalid namespace name %s", namespace);
-       return -1;
-}
-
-static int lxc_fill_namespace_flags(char *flaglist, int *flags)
-{
-       char *token, *saveptr = NULL;
-       int aflag;
-
-       if (!flaglist) {
-               ERROR("need at least one namespace to unshare");
-               return -1;
-       }
-
-       token = strtok_r(flaglist, "|", &saveptr);
-       while (token) {
-
-               aflag = lxc_namespace_2_cloneflag(token);
-               if (aflag < 0)
-                       return -1;
-
-               *flags |= aflag;
-
-               token = strtok_r(NULL, "|", &saveptr);
-       }
-       return 0;
-}
-
 
 struct start_arg {
        char ***args;
diff --git a/src/lxc/namespace.c b/src/lxc/namespace.c
index 3e6fc3a..3fa027b 100644
--- a/src/lxc/namespace.c
+++ b/src/lxc/namespace.c
@@ -69,3 +69,48 @@ pid_t lxc_clone(int (*fn)(void *), void *arg, int flags)
 
        return ret;
 }
+
+static char *namespaces_list[] = {
+       "MOUNT", "PID", "UTSNAME", "IPC",
+       "USER", "NETWORK"
+};
+static int cloneflags_list[] = {
+       CLONE_NEWNS, CLONE_NEWPID, CLONE_NEWUTS, CLONE_NEWIPC,
+       CLONE_NEWUSER, CLONE_NEWNET
+};
+
+int lxc_namespace_2_cloneflag(char *namespace)
+{
+       int i, len;
+       len = sizeof(namespaces_list)/sizeof(namespaces_list[0]);
+       for (i = 0; i < len; i++)
+               if (!strcmp(namespaces_list[i], namespace))
+                       return cloneflags_list[i];
+
+       ERROR("invalid namespace name %s", namespace);
+       return -1;
+}
+
+int lxc_fill_namespace_flags(char *flaglist, int *flags)
+{
+       char *token, *saveptr = NULL;
+       int aflag;
+
+       if (!flaglist) {
+               ERROR("need at least one namespace to unshare");
+               return -1;
+       }
+
+       token = strtok_r(flaglist, "|", &saveptr);
+       while (token) {
+
+               aflag = lxc_namespace_2_cloneflag(token);
+               if (aflag < 0)
+                       return -1;
+
+               *flags |= aflag;
+
+               token = strtok_r(NULL, "|", &saveptr);
+       }
+       return 0;
+}
diff --git a/src/lxc/namespace.h b/src/lxc/namespace.h
index 5442dd3..04e81bb 100644
--- a/src/lxc/namespace.h
+++ b/src/lxc/namespace.h
@@ -50,4 +50,7 @@
 
 extern pid_t lxc_clone(int (*fn)(void *), void *arg, int flags);
 
+extern int lxc_namespace_2_cloneflag(char *namespace);
+extern int lxc_fill_namespace_flags(char *flaglist, int *flags);
+
 #endif
-- 
1.7.8.6


------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Lxc-devel mailing list
Lxc-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/lxc-devel

Reply via email to