grml-addtun: reworked interface activation code
[grml-network.git] / sbin / grml-addtun
index ac7d6a4..109cc6f 100755 (executable)
@@ -25,13 +25,13 @@ Usage: "$PN_" [OPTIONS] <tun0> <tun1> ...
 $PN_ creates persistent tun/tap devices with bridge handling
 
 OPTIONS:
-   -d           delete the given tun devices and remove them from the bridge if given
-   -u <user>    this user should be able to use the tun device
-   -g <group>   this group should be able to use the tun device
-   -b <bridge>  if given, all tun/tap devices are added/removed from the bridge
-   -a           enable auto mode, eg. create the bridge if not allready existing and
-                    delete it when empty after removing given tun devices
-   -h           this help
+   -d             delete the tun devices and remove them from the bridge if given
+   -u <user>      this user should be able to use the tun device
+   -g <group>     this group should be able to use the tun device
+   -b <bridge>    if given, all tun/tap devices are added/removed from the bridge
+   -a             enable auto mode, eg. create the bridge if not already existing and
+                  delete it when empty after removing given tun devices
+   -h             this help
 EOT
 }
 
@@ -58,10 +58,12 @@ function createTun()
     if [[ $OPT_BRIDGE_ != '' ]]; then
         brctl addif "$OPT_BRIDGE_" "$1"
     fi
+    ip link set up dev "$1"
 }
 
 function trashTun()
 {
+    ip link set down dev "$1"
     if [[ $OPT_BRIDGE_ != '' ]]; then
         brctl delif "$OPT_BRIDGE_" "$1"
     fi
@@ -94,6 +96,7 @@ shift $(($OPTIND - 1))
 if [[ $OPT_DEL_ == 'false' ]]; then
     if [[ $OPT_BRIDGE_ != '' && $OPT_AUTO_ == 'true' ]]; then
         brctl showmacs "$OPT_BRIDGE_" &>/dev/null || brctl addbr "$OPT_BRIDGE_"
+        ip link set up dev "$OPT_BRIDGE_"
     fi
     fromCmdline "createTun" "$@"
 else
@@ -108,4 +111,4 @@ else
     fi
 fi
 
-# vim: filetype=sh
+## END OF FILE #################################################################