]> git.entuzijast.net Git - imunes.git/commitdiff
jednostavni reference counting u novoj globalnoj varijabli za bridgeve i interni...
authorJosip Rodin <joy@numa-ubuntu-vm.(none)>
Sun, 13 Sep 2009 12:11:52 +0000 (14:11 +0200)
committerJosip Rodin <joy@numa-ubuntu-vm.(none)>
Sun, 13 Sep 2009 12:11:52 +0000 (14:11 +0200)
linux/exec.tcl

index fff06d94cf983b006fad991d8fc30e95080eaa03..9f747e6bcc5c86eb2943552b0d705066f72261b6 100755 (executable)
@@ -748,6 +748,8 @@ proc deployCfg {} {
                 set bridge $lnode2
             }
         }
+
+               upvar 0 ::cf::[set ::curcfg]::bridges bridges
         
         # TODO Ovo bi trebalo elegantnije rjesiti.
         # Naredba pokusava utvrditi da li vec postoji bridge pod tim imenom,
@@ -766,6 +768,7 @@ proc deployCfg {} {
         } else {
             puts "\nCreating bridge $bridge (L2 hub emulation)"    
             nexec brctl addbr $bridge                
+                       lappend bridges $bridge
         }
         
         #TODO ovo bas ne radi, ne moze komunicirati sa fizickim interface-om, iako je
@@ -795,6 +798,7 @@ proc deployCfg {} {
         puts "\nCreating bridge $bridge"    
 
         nexec brctl addbr $bridge
+               lappend bridges $bridge
         nexec brctl addif $bridge $host_if_a
         nexec brctl addif $bridge $host_if_b
         nexec ifconfig $bridge up
@@ -964,12 +968,16 @@ proc vimageCleanup { eid } {
     }
     puts "  Done."
 
-    #TODO:  prebaciti u tcl kod, error handling i modificirati da ne
-    #       brise bridgeove bez diskriminacije nego one koje je imunes
-    #       napravio
-    
        puts "\nBridge cleanup in main host"
-    catch { nexec ./bridge_cleanup.sh }
+#    catch { nexec ./bridge_cleanup.sh }
+       upvar 0 ::cf::[set ::curcfg]::bridges bridges
+       if { [ llength $bridges ] } {
+               foreach bridge $bridges {
+                   puts "  Cleaning up bridge $bridge..."
+                       nexec ip link set down dev $bridge
+                       nexec brctl delbr $bridge
+               }
+       }
     puts "  Done."