X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fvnamespace.c;h=d840fbb7460f4d51b4250ed42ebf2303cfa97193;hb=28f2941c7781b494b9a47d71d56317b2ee8940d6;hp=366b9676ec3c5286fca10b9f9ac155504ea07ebc;hpb=517fb954f46091a78f471435b7f284668138a2da;p=util-vserver.git diff --git a/src/vnamespace.c b/src/vnamespace.c index 366b967..d840fbb 100644 --- a/src/vnamespace.c +++ b/src/vnamespace.c @@ -36,13 +36,6 @@ #define ENSC_WRAPPERS_VSERVER 1 #include -#ifndef CLONE_NEWUTS -# define CLONE_NEWUTS 0x04000000 -#endif -#ifndef CLONE_NEWIPC -# define CLONE_NEWIPC 0x08000000 -#endif - #define CMD_HELP 0x1000 #define CMD_VERSION 0x1001 @@ -95,16 +88,16 @@ showVersion() } static void -newNamespace(char const *cmd) +newNamespace(void) { pid_t pid; signal(SIGCHLD, SIG_DFL); #ifdef NDEBUG - pid = sys_clone(CLONE_NEWNS|CLONE_NEWUTS|CLONE_NEWIPC|CLONE_VFORK|SIGCHLD, 0); + pid = sys_clone(CLONE_NEWNS|CLONE_VFORK|SIGCHLD, 0); #else - pid = sys_clone(CLONE_NEWNS|CLONE_NEWUTS|CLONE_NEWIPC|SIGCHLD, 0); + pid = sys_clone(CLONE_NEWNS|SIGCHLD, 0); #endif switch (pid) { @@ -114,23 +107,23 @@ newNamespace(char const *cmd) case 0 : break; default : - exitLikeProcess(pid, cmd, wrapper_exit_code); + vc_exitLikeProcess(pid, wrapper_exit_code); } } static void -enterNamespace(xid_t xid) +enterNamespace(xid_t xid, uint_least64_t mask) { - if (vc_enter_namespace(xid)==-1) { + if (vc_enter_namespace(xid, mask)==-1) { perror("vnamespace: vc_enter_namespace()"); exit(255); } } static void -setNamespace() +setNamespace(xid_t xid, uint_least64_t mask) { - if (vc_set_namespace()==-1) { + if (vc_set_namespace(xid, mask)==-1) { perror("vnamespace: vc_set_namespace()"); exit(255); } @@ -188,10 +181,10 @@ int main(int argc, char *argv[]) else if (optind==argc && (do_new || do_enter)) WRITE_MSG(2, "No command specified; try '--help' for more information\n"); else { - if (do_new) newNamespace(argv[optind]); - else if (do_set) setNamespace(); + if (do_new) newNamespace(); + else if (do_set) setNamespace(VC_SAMECTX, CLONE_NEWNS|CLONE_FS); else if (do_cleanup) cleanupNamespace(); - else if (do_enter) enterNamespace(xid); + else if (do_enter) enterNamespace(xid, CLONE_NEWNS|CLONE_FS); if (optind