]> git.entuzijast.net Git - imunes.git/commitdiff
exec changed to nexec.
authormiljenko <miljenko>
Wed, 13 Jul 2005 12:45:13 +0000 (12:45 +0000)
committermiljenko <miljenko>
Wed, 13 Jul 2005 12:45:13 +0000 (12:45 +0000)
Added procedure nexec to exec.tcl.
nexec currently calls exec, in future some RPC "exec"

Bug found by:
Submitted by:
Requested by:
Reviewed by:
Approved by:
Obtained from:

editor.tcl
exec.tcl
hub.tcl
imunes.tcl
lanswitch.tcl
quagga.tcl
rj45.tcl
static.tcl
xorp.tcl

index d82952c47d25611b21f397e516fb1adddd0c92f8..76d93219339a576c8e4535cd1c01e630d7df001c 100755 (executable)
@@ -798,7 +798,7 @@ proc button3 { c x y } {
     if { $node != "" && $oper_mode == "exec" } {
        set cmd [[typemodel $node].shellcmd $node]
        if { $cmd != "" } {
-           exec xterm -sb -rightbar \
+           nexec xterm -sb -rightbar \
                -T "IMUNES: [getNodeName $node] (console)" \
                -e "vimage $node_id $cmd" &
        }
@@ -824,7 +824,7 @@ proc startethereal { c } {
         set interface "[ifcByPeer $n1 $n0]@$eid\_$n1"
     } 
     if { $interface != "" } {
-        exec ethereal -i $interface &
+        nexec ethereal -i $interface &
     }
     return
 }
index 3fd75a321a6470b1edd33abaa0076036b112e9ce..677fabb5d0da5def415d41cfd458f77f7a159855 100755 (executable)
--- a/exec.tcl
+++ b/exec.tcl
@@ -33,6 +33,9 @@
 # and Technology through the research contract #IP-2003-143.
 #
 
+proc nexec { args } {
+    eval exec $args
+}
 
 proc setOperMode { mode } {
     global oper_mode activetool nodes
@@ -40,7 +43,7 @@ proc setOperMode { mode } {
 
     # Verify that links to external interfaces are properly configured
     if { $mode == "exec" } {
-       set extifcs [exec ifconfig -l]
+       set extifcs [nexec ifconfig -l]
        set extifcs \
            [lreplace $extifcs [lsearch $extifcs lo0] [lsearch $extifcs lo0]]
        foreach node $nodes {
@@ -67,21 +70,21 @@ proc setOperMode { mode } {
     .bottom.oper_mode configure -text "$mode mode"
     set activetool select
     .left.select configure -state active
-    if { "$mode" == "exec" && [exec id -u] == 0} {
+    if { "$mode" == "exec" && [nexec id -u] == 0} {
        .menubar.experiment entryconfigure "Execute" -state disabled
        .menubar.experiment entryconfigure "Terminate" -state normal
        .menubar.edit entryconfigure "Undo" -state disabled
        .menubar.edit entryconfigure "Redo" -state disabled
        set oper_mode exec
-       set nmbufs [lindex [split [exec sysctl kern.ipc.nmbufs]] 1]
-       set nmbclusters [lindex [split [exec sysctl kern.ipc.nmbclusters]] 1]
+       set nmbufs [lindex [split [nexec sysctl kern.ipc.nmbufs]] 1]
+       set nmbclusters [lindex [split [nexec sysctl kern.ipc.nmbclusters]] 1]
        monitor_loop
        deployCfg
     } else {
        if {$oper_mode != "edit"} {
            vimageCleanup
        }
-       if {[exec id -u] == 0} {
+       if {[nexec id -u] == 0} {
            .menubar.experiment entryconfigure "Execute" -state normal
        } else {
            .menubar.experiment entryconfigure "Execute" -state disabled
@@ -108,7 +111,7 @@ proc statline {line} {
 
 
 proc createIfc {type hook} {
-    catch {exec ngctl mkpeer $type $hook $hook | tail -1} resp
+    catch {nexec ngctl mkpeer $type $hook $hook | tail -1} resp
     foreach elem [split [lindex [split $resp "\{\}"] 1]] {
        if {[string equal -length 6 $elem "name=\""]} {
            set name [string range $elem 6 [expr [string length $elem] - 2]]
@@ -122,28 +125,28 @@ set mac_byte5 0
 proc l3node.instantiate { eid node } {
     global mac_byte5
     set node_id "$eid\_$node"
-    exec vimage -c $node_id
-    exec vimage $node_id hostname [getNodeName $node]
+    nexec vimage -c $node_id
+    nexec vimage $node_id hostname [getNodeName $node]
 
     foreach ifc [ifcList $node] {
        switch -exact [string range $ifc 0 2] {
            eth {
                set ifid [createIfc eiface ether]
-               exec vimage -i $node_id $ifid $ifc
-               exec vimage $node_id ifconfig $ifc
+               nexec vimage -i $node_id $ifid $ifc
+               nexec vimage $node_id ifconfig $ifc
                set ether 40:00:aa:aa:00:$mac_byte5
                incr mac_byte5
-               exec vimage $node_id ifconfig $ifc link $ether
+               nexec vimage $node_id ifconfig $ifc link $ether
            }
            ser {
                set ifnum [string range $ifc 3 end]
                set ifid [createIfc iface inet]
-               exec ngctl mkpeer $ifid: cisco inet inet
-               exec ngctl connect $ifid: $ifid:inet inet6 inet6
-               exec ngctl msg $ifid: broadcast
-               exec ngctl name $ifid:inet hdlc$ifnum\@$node_id
-               exec vimage -i $node_id $ifid $ifc
-               exec vimage $node_id ifconfig $ifc
+               nexec ngctl mkpeer $ifid: cisco inet inet
+               nexec ngctl connect $ifid: $ifid:inet inet6 inet6
+               nexec ngctl msg $ifid: broadcast
+               nexec ngctl name $ifid:inet hdlc$ifnum\@$node_id
+               nexec vimage -i $node_id $ifid $ifc
+               nexec vimage $node_id ifconfig $ifc
            }
        }
     }
@@ -153,18 +156,18 @@ proc l3node.instantiate { eid node } {
     set cpumax [lindex [lsearch -inline $cpuconf {max *}] 1]
     set cpuweight [lindex [lsearch -inline $cpuconf {weight *}] 1]
     if { $cpumin != "" } {
-       exec vimage -m $node_id cpumin $cpumin
+       nexec vimage -m $node_id cpumin $cpumin
     }
     if { $cpumax != "" } {
-       exec vimage -m $node_id cpumax $cpumax
+       nexec vimage -m $node_id cpumax $cpumax
     }
     if { $cpuweight != "" } {
-       exec vimage -m $node_id cpuweight $cpuweight
+       nexec vimage -m $node_id cpuweight $cpuweight
     }
 
-    exec vimage $node_id sysctl net.inet.icmp.bmcastecho=1
-    exec vimage $node_id sysctl net.inet.icmp.icmplim=0
-    exec vimage $node_id ifconfig lo0 inet localhost
+    nexec vimage $node_id sysctl net.inet.icmp.bmcastecho=1
+    nexec vimage $node_id sysctl net.inet.icmp.icmplim=0
+    nexec vimage $node_id ifconfig lo0 inet localhost
 }
 
 
@@ -190,10 +193,10 @@ proc deployCfg {} {
 
     vimageCleanup
 
-    catch { exec mv /etc/resolv.conf /etc/resolv.conf.bak }
-    catch { exec kldload ng_ether }
-    catch { exec kldload ng_iface }
-    catch { exec kldload ng_eiface }
+    catch { nexec mv /etc/resolv.conf /etc/resolv.conf.bak }
+    catch { nexec kldload ng_ether }
+    catch { nexec kldload ng_iface }
+    catch { nexec kldload ng_eiface }
 
     foreach node $nodes {
        set node_id "$eid\_$node"
@@ -224,15 +227,15 @@ proc deployCfg {} {
                [lindex [[typemodel $lnode2].nghook $eid $lnode2 $ifname2] 0]
        set nghook2 \
                [lindex [[typemodel $lnode2].nghook $eid $lnode2 $ifname2] 1]
-       exec ngctl mkpeer $ngpeer1: pipe $nghook1 upper
-       exec ngctl name $ngpeer1:$nghook1 $lname
-       exec ngctl connect $lname: $ngpeer2: lower $nghook2
+       nexec ngctl mkpeer $ngpeer1: pipe $nghook1 upper
+       nexec ngctl name $ngpeer1:$nghook1 $lname
+       nexec ngctl connect $lname: $ngpeer2: lower $nghook2
 
-#exec ngctl msg $lname: setcfg "{ header_offset=14 }" ethernet
-#exec ngctl msg $lname: setcfg "{ header_offset=14 }" HDLC ???
+#nexec ngctl msg $lname: setcfg "{ header_offset=14 }" ethernet
+#nexec ngctl msg $lname: setcfg "{ header_offset=14 }" HDLC ???
 
        # Link parameters
-       exec ngctl msg $lname: setcfg \
+       nexec ngctl msg $lname: setcfg \
                "{ bandwidth=$bandwidth delay=$delay \
                   upstream={ BER=$ber duplicate=$dup } \
                   downstream={ BER=$ber duplicate=$dup } }"
@@ -253,12 +256,12 @@ proc deployCfg {} {
        }
     }
 
-    exec rm -fr /var/run/quagga
-    exec rm -f /usr/local/etc/quagga/Quagga.conf
-    exec ln -s /tmp/@ /var/run/quagga
-    exec ln -s /tmp/@/boot.conf /usr/local/etc/quagga/Quagga.conf
+    nexec rm -fr /var/run/quagga
+    nexec rm -f /usr/local/etc/quagga/Quagga.conf
+    nexec ln -s /tmp/@ /var/run/quagga
+    nexec ln -s /tmp/@/boot.conf /usr/local/etc/quagga/Quagga.conf
     foreach file { bgpd.conf ospfd.conf ripd.conf vtysh.conf zebra.conf } {
-       exec cp /dev/null /usr/local/etc/quagga/$file
+       nexec cp /dev/null /usr/local/etc/quagga/$file
     }
 
     foreach node $nodes {
@@ -268,12 +271,12 @@ proc deployCfg {} {
        set type [nodeType $node]
        set model [getNodeModel $node]
        if { [lsearch -exact {router pc host} $type] >= 0 } {
-           exec rm -fr /tmp/$node_id
-           exec mkdir /tmp/$node_id
-           exec chmod 1777 /tmp/$node_id
+           nexec rm -fr /tmp/$node_id
+           nexec mkdir /tmp/$node_id
+           nexec chmod 1777 /tmp/$node_id
            foreach ifc [ifcList $node] {
                set mtu [getIfcMTU $node $ifc]
-               exec vimage $node_id ifconfig $ifc mtu $mtu
+               nexec vimage $node_id ifconfig $ifc mtu $mtu
            }
 
            if { [getCustomEnabled $node] == true } {
@@ -292,7 +295,7 @@ proc deployCfg {} {
                puts $fileId $line
            }
            close $fileId
-           catch "exec vimage $node_id $bootcmd /tmp/$node_id/boot.conf &"
+           catch "nexec vimage $node_id $bootcmd /tmp/$node_id/boot.conf &"
        }
     }
 
@@ -302,28 +305,28 @@ proc deployCfg {} {
 
 proc vimageCleanup {} {
     set t_start [clock seconds]
-    set vimages [join [exec vimage -l | fgrep -v "    " | cut -d: -f 1]]
+    set vimages [join [nexec vimage -l | fgrep -v "    " | cut -d: -f 1]]
     set defindex [lsearch $vimages default]
     set vimages [lreplace $vimages $defindex $defindex]
 
     # Detach / destroy / reassign interfaces pipe, eiface, iface, bridge
-    set ngnodes [split [exec ngctl l | tail -n +3] "\r"]
+    set ngnodes [split [nexec ngctl l | tail -n +3] "\r"]
     foreach ngline $ngnodes {
        set node [lindex [eval list $ngline] 1]
        statline "Shutting down netgraph node $node"
-       catch "exec ngctl msg $node: shutdown"
+       catch "nexec ngctl msg $node: shutdown"
     }
 
     # Shut down all vimages
     foreach vimage $vimages {
        statline "Shutting down vimage $vimage"
-       catch {exec vimage $vimage kill -9 -1 2> /dev/null}
-       exec rm -fr /tmp/$vimage
-       exec vimage -d $vimage
+       catch {nexec vimage $vimage kill -9 -1 2> /dev/null}
+       nexec rm -fr /tmp/$vimage
+       nexec vimage -d $vimage
     }
-    catch { exec rm -f /usr/local/etc/quagga/Quagga.conf }
-    catch { exec rm -f /usr/local/xorp/config.boot }
-    catch { exec mv /etc/resolv.conf.bak /etc/resolv.conf }
+    catch { nexec rm -f /usr/local/etc/quagga/Quagga.conf }
+    catch { nexec rm -f /usr/local/xorp/config.boot }
+    catch { nexec mv /etc/resolv.conf.bak /etc/resolv.conf }
     statline "Cleanup completed in [expr [clock seconds] - $t_start] seconds."
 }
 
@@ -338,11 +341,11 @@ proc monitor_loop {} {
        return
     }
 
-    set cpu_load [expr ([lindex [split [exec sysctl kern.cp_time_avg]] end] + \
+    set cpu_load [expr ([lindex [split [nexec sysctl kern.cp_time_avg]] end] + \
                        5000) / 10000]
     .bottom.cpu_load config -text "CPU $cpu_load%"
 
-    set nstout [split [exec netstat -m] ]
+    set nstout [split [nexec netstat -m] ]
     set mbufs [lindex [split [lindex $nstout 0] /] 0]
     set clusts [lindex [split [lsearch -inline $nstout "*/$nmbclusters"] /] 0]
     set mbufp [expr $mbufs * 100 / $nmbufs]
@@ -383,7 +386,7 @@ proc execSetIfcQDisc { eid node ifc qdisc } {
        WFQ { set qdisc wfq }
        DRR { set qdisc drr }
     }
-    exec ngctl msg $ngnode: setcfg "{ $dir={ $qdisc=1 } }"
+    nexec ngctl msg $ngnode: setcfg "{ $dir={ $qdisc=1 } }"
 }
 
 
@@ -396,7 +399,7 @@ proc execSetIfcQDrop { eid node ifc qdrop } {
        drop-head { set qdrop drophead }
        drop-tail { set qdrop droptail }
     }
-    exec ngctl msg $ngnode: setcfg "{ $dir={ $qdrop=1 } }"
+    nexec ngctl msg $ngnode: setcfg "{ $dir={ $qdrop=1 } }"
 }
 
 
@@ -405,5 +408,5 @@ proc execSetIfcQLen { eid node ifc qlen } {
     set peers [linkEndpoints [lindex $target 0]]
     set dir [lindex $target 1]
     set ngnode "$eid\_[lindex $peers 0]-[lindex $peers 1]"
-    exec ngctl msg $ngnode: setcfg "{ $dir={ queuelen=$qlen } }"
+    nexec ngctl msg $ngnode: setcfg "{ $dir={ queuelen=$qlen } }"
 }
diff --git a/hub.tcl b/hub.tcl
index 9907d4af5ffc3c184e5325e009888b774cbb6be8..05001c05f8d7ef0fcfaacfc6a31627760ddd3aca 100755 (executable)
--- a/hub.tcl
+++ b/hub.tcl
@@ -38,11 +38,11 @@ set MODULE hub
 
 
 proc $MODULE.instantiate { eid node } {
-    catch {exec ngctl mkpeer hub anchor anchor | tail -1} resp
+    catch {nexec ngctl mkpeer hub anchor anchor | tail -1} resp
     foreach elem [split [lindex [split $resp "\{\}"] 1]] {
        if {[string equal -length 5 $elem "id=0x"]} {
            set id [string range $elem 5 end]
-           catch {exec ngctl name \[$id\]: "$eid\_$node"}
+           catch {nexec ngctl name \[$id\]: "$eid\_$node"}
        }
     }
     return
index b2f76b220f3c944b5b498fb0603a43d8d5eaffc8..7d37f83e20ff5d9742edb37a14c096d4cdaa605a 100755 (executable)
@@ -112,6 +112,9 @@ if { [file exists /usr/local/xorp/bin/xorp_rtrmgr] } {
     set supp_router_models "xorp $supp_router_models"
 }
 
+#proc nexec { args } {
+    #exec $args
+#}
 
 #
 # Initialization should be complete now, so let's start doing something...
index e55510214487533efa37bc5b7b818bac05385357..c34b1d41b2bebc45aaf2e48b06e9efd78a8e429d 100755 (executable)
@@ -38,11 +38,11 @@ set MODULE lanswitch
 
 
 proc $MODULE.instantiate { eid node } {
-    catch {exec ngctl mkpeer bridge anchor anchor | tail -1} resp
+    catch {nexec ngctl mkpeer bridge anchor anchor | tail -1} resp
     foreach elem [split [lindex [split $resp "\{\}"] 1]] {
        if {[string equal -length 5 $elem "id=0x"]} {
            set id [string range $elem 5 end]
-           catch {exec ngctl name \[$id\]: "$eid\_$node"}
+           catch {nexec ngctl name \[$id\]: "$eid\_$node"}
        }
     }
     return
index 36a4959928940229fc4263fb7b72cd53173314de..231a673b7495760406d60aa7cd12dbb0f3232a5c 100755 (executable)
@@ -93,7 +93,7 @@ proc $MODULE.shellcmd { node } {
 proc $MODULE.instantiate { eid node } {
     set node_id "$eid\_$node"
     l3node.instantiate $eid $node
-    exec vimage $node_id sysctl net.inet.ip.forwarding=1
+    nexec vimage $node_id sysctl net.inet.ip.forwarding=1
     return
 }
 
index 128d3c532b8631868d147a1f286cba57e1ab1ecd..0b76a1bf534d0d09b14572e0880cb7452802c456 100755 (executable)
--- a/rj45.tcl
+++ b/rj45.tcl
@@ -36,7 +36,7 @@
 
 proc rj45.instantiate { eid node } {
     set ifname [getNodeName $node]
-    exec ifconfig $ifname up
+    nexec ifconfig $ifname up
     return
 }
 
index 9db3efbebf9043a49e15c0be000557ebb934f69d..423bcae8f7d3a3aba70874c8ef29505d1e1e46be 100755 (executable)
@@ -79,7 +79,7 @@ proc $MODULE.shellcmd { node } {
 proc $MODULE.instantiate { eid node } {
     set node_id "$eid\_$node"
     l3node.instantiate $eid $node
-    exec vimage $node_id sysctl net.inet.ip.forwarding=1
+    nexec vimage $node_id sysctl net.inet.ip.forwarding=1
     return
 }
 
index 051732ae8fa32964b8283af21c19bc632a60cf4c..1a0256ae476abab653625c7cea9aa8b60935d783 100755 (executable)
--- a/xorp.tcl
+++ b/xorp.tcl
@@ -165,7 +165,7 @@ proc $MODULE.shellcmd { node } {
 proc $MODULE.instantiate { eid node } {
     set node_id "$eid\_$node"
     l3node.instantiate $eid $node
-    exec vimage $node_id sysctl net.inet.ip.forwarding=1
+    nexec vimage $node_id sysctl net.inet.ip.forwarding=1
     return
 }