Set persist last, this way, no interface is left behind if one of the ioctls fail.
authorDaniel Hokka Zakrisson <daniel@hozac.com>
Thu, 28 Feb 2008 23:54:32 +0000 (23:54 +0000)
committerDaniel Hokka Zakrisson <daniel@hozac.com>
Thu, 28 Feb 2008 23:54:32 +0000 (23:54 +0000)
git-svn-id: http://svn.linux-vserver.org/svn/util-vserver/trunk@2688 94cd875c-1c1d-0410-91d2-eb244daf1a30

src/tunctl.c

index ba695b5..6fe8a81 100644 (file)
@@ -134,8 +134,6 @@ doTunctl(struct Arguments *args, char *interface)
   ifr.ifr_flags = args->type;
   EioctlD(fd, TUNSETIFF, &ifr);
 
-  if (args->set & (CMD_PERSIST|CMD_NOPERSIST))
-    EioctlD(fd, TUNSETPERSIST, (void *) (long) args->persist);
   if (args->set & (CMD_CSUM|CMD_NOCSUM))
     EioctlD(fd, TUNSETNOCSUM, (void *) (long) !args->checksum);
   if (args->set & CMD_UID)
@@ -146,6 +144,8 @@ doTunctl(struct Arguments *args, char *interface)
     EioctlD(fd, TUNSETNID, (void *) (long) args->nid);
   if (args->set & CMD_LINKTYPE)
     EioctlD(fd, TUNSETLINK, (void *) (long) args->linktype);
+  if (args->set & (CMD_PERSIST|CMD_NOPERSIST))
+    EioctlD(fd, TUNSETPERSIST, (void *) (long) args->persist);
 
   close(fd);
 }