diff options
Diffstat (limited to 'toys/other/unshare.c')
-rw-r--r-- | toys/other/unshare.c | 46 |
1 files changed, 21 insertions, 25 deletions
diff --git a/toys/other/unshare.c b/toys/other/unshare.c index bdee66bc..9a938186 100644 --- a/toys/other/unshare.c +++ b/toys/other/unshare.c @@ -1,26 +1,24 @@ -/* vi: set sw=4 ts=4: - * - * unshare.c - run command in new context +/* unshare.c - run command in new context * * Copyright 2011 Rob Landley <rob@landley.net> USE_UNSHARE(NEWTOY(unshare, "<1^nium", TOYFLAG_USR|TOYFLAG_BIN)) config UNSHARE - bool "unshare" - default y - depends on TOYBOX_CONTAINER - help - usage: unshare [-muin] COMMAND... - - Create new namespace(s) for this process and its children, so some - attribute is not shared with the parent process. This is part of - Linux Containers. Each process can have its own: - - -m Mount/unmount tree - -u Host and domain names - -i SysV IPC (message queues, semaphores, shared memory) - -n Network address, sockets, routing, iptables + bool "unshare" + default y + depends on TOYBOX_CONTAINER + help + usage: unshare [-muin] COMMAND... + + Create new namespace(s) for this process and its children, so some + attribute is not shared with the parent process. This is part of + Linux Containers. Each process can have its own: + + -m Mount/unmount tree + -u Host and domain names + -i SysV IPC (message queues, semaphores, shared memory) + -n Network address, sockets, routing, iptables */ #include "toys.h" @@ -29,15 +27,13 @@ extern int unshare (int __flags); void unshare_main(void) { - unsigned flags[]={CLONE_NEWNS, CLONE_NEWUTS, CLONE_NEWIPC, CLONE_NEWNET,0}; - unsigned f=0; - int i; + unsigned flags[]={CLONE_NEWNS, CLONE_NEWUTS, CLONE_NEWIPC, CLONE_NEWNET, 0}; + unsigned f=0; + int i; - for (i=0; flags[i]; i++) - if (toys.optflags & (1<<i)) - f |= flags[i]; + for (i=0; flags[i]; i++) if (toys.optflags & (1<<i)) f |= flags[i]; - if(unshare(f)) perror_exit("failed"); + if(unshare(f)) perror_exit("failed"); - xexec(toys.optargs); + xexec(toys.optargs); } |