From: Josip Rodin Date: Sun, 13 Sep 2009 12:11:52 +0000 (+0200) Subject: jednostavni reference counting u novoj globalnoj varijabli za bridgeve i interni... X-Git-Url: https://git.entuzijast.net/?a=commitdiff_plain;h=a5d1895e0f38fe93ea5fb592594acf9c6b3ccdd1;p=imunes.git jednostavni reference counting u novoj globalnoj varijabli za bridgeve i interni cleanup --- diff --git a/linux/exec.tcl b/linux/exec.tcl index fff06d9..9f747e6 100755 --- a/linux/exec.tcl +++ b/linux/exec.tcl @@ -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."