use new ensc_wrappers/ headers
[util-vserver.git] / util-vserver / src / new-namespace.c
index 6e97fe4..9d50a30 100644 (file)
@@ -25,6 +25,7 @@
 #endif
 
 #include "util.h"
+#include "stack-start.h"
 
 #include <stdio.h>
 #include <unistd.h>
 #include <sys/wait.h>
 #include <sched.h>
 
+#define ENSC_WRAPPERS_CLONE    1
+#define ENSC_WRAPPERS_WAIT     1
+#include <wrappers.h>
+
 #ifndef CLONE_NEWNS
 #  define CLONE_NEWNS 0x00020000
 #endif
 
+int    wrapper_exit_code = 255;
+
 static int
 childFunc(void *argv_v)
 {
@@ -87,17 +94,12 @@ int main(int argc, char *argv[])
   if (!strcmp(argv[1], "--version")) showVersion();
   if (!strcmp(argv[1], "--"))        ++argv;
 
-  pid = clone(childFunc, buf+sizeof(buf)/2, CLONE_NEWNS|CLONE_VFORK|SIGCHLD, argv+1);
-  if (pid==-1) {
-    perror("clone()");
-    exit(255);
-  }
-
-  p   = wait4(pid, &status, 0,0);
-  if (p==-1) {
-    perror("waitpid()");
-    exit(255);
-  }
+#ifdef NDEBUG    
+  pid = Eclone(childFunc, STACK_START(buf), CLONE_NEWNS|CLONE_VFORK|SIGCHLD, argv+1);
+#else
+  pid = Eclone(childFunc, STACK_START(buf), CLONE_NEWNS|SIGCHLD, argv+1);
+#endif
+  p   = Ewait4(pid, &status, 0,0);
 
   if (WIFEXITED(status)) return WEXITSTATUS(status);
   else                   return 255;