Update to code actually running on Trellis v0.1
[util-vserver-pl.git] / src / planetlab.c
index 78174ef..3c06261 100644 (file)
@@ -97,9 +97,10 @@ process:
   if (vc_ctx_create(ctx, 0) == VC_NOCTX)
     return -1;
 
-    if (unshare_flags != 0) {
+  if (unshare_flags != 0) {
       unshare(unshare_flags);
       unshare_flags |= vc_get_space_mask();
+      //printf("vc_set_namespace(%d, %X)\n", ctx, unshare_flags);
       vc_set_namespace(ctx, unshare_flags);
   }
 
@@ -143,7 +144,7 @@ pl_chcontext(xid_t ctx, uint64_t bcaps, const struct sliver_resources *slr,
 {
   int  retry_count = 0;
   int  net_migrated = 0;
-
+  
   if (pl_set_ulimits(slr) != 0)
     return -1;
 
@@ -157,8 +158,8 @@ pl_chcontext(xid_t ctx, uint64_t bcaps, const struct sliver_resources *slr,
          if (errno != ESRCH)
            return -1;
 
-         /* Unshare the net namespace if requested in the slice configuration */
-         unshare_flags = unshare_netns ? CLONE_NEWNET : 0;
+         /* Always unshare the net namespace for a new context */
+         unshare_flags = CLONE_NEWNET;
 
          /* context doesn't exist - create it */
          if (create_context(ctx, bcaps, unshare_flags))
@@ -195,11 +196,12 @@ pl_chcontext(xid_t ctx, uint64_t bcaps, const struct sliver_resources *slr,
        {
          uint32_t unshare_flags;
 
-         /* Unshare the net namespace if requested in the slice configuration */
+         /* Unshare the net namespace if requested in the slice config */
          unshare_flags = unshare_netns ? CLONE_NEWNET : 0;
 
          if (unshare_flags != 0) {
            unshare_flags |=vc_get_space_mask();
+           //printf("vc_enter_namespace(%d, %X)\n", ctx, unshare_flags);
            vc_enter_namespace(ctx, unshare_flags);
          }