From: Josip Rodin Date: Sun, 13 Sep 2009 22:45:08 +0000 (+0200) Subject: zamijenio ifconfig-l s internim parserom (just for kicks) X-Git-Url: https://git.entuzijast.net/?a=commitdiff_plain;h=f1863c25e2415ec671bf2b238166b29dfd3fb37e;p=imunes.git zamijenio ifconfig-l s internim parserom (just for kicks) --- diff --git a/ifconfig-l b/ifconfig-l deleted file mode 100755 index 37c6ae6..0000000 --- a/ifconfig-l +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/sh -# ifconfig -l na BSD-u - -ip link show | awk '/^[0-9]+: / { a=$2; gsub(":", "", a); printf "%s ", a }'; echo - diff --git a/linux/exec.tcl b/linux/exec.tcl index 70c85a5..1d205bc 100755 --- a/linux/exec.tcl +++ b/linux/exec.tcl @@ -112,11 +112,25 @@ proc setOperMode { mode } { # Verify that links to external interfaces are properly configured if { $mode == "exec" } { - # space-separated popis interfacea (BSD ifconfig -l) - set extifcs [nexec ./ifconfig-l] - # izbaci loopback interface iz popisa (BSD lo) - set extifcs \ - [lreplace $extifcs [lsearch $extifcs lo] [lsearch $extifcs lo]] + # popis interfacea (BSD ifconfig -l) + set extifcs_p [open "| ip link show"] + set extifcs_s [read $extifcs_p] + if { [catch {close $extifcs_p} err] } { + puts "ip link show failed: $err" + } + set extifcs_o [split $extifcs_s \n] + set extifcs {} + foreach iplink_line $extifcs_o { + if { [ regexp -- {^\d+: ([^:]+): } $iplink_line -> extif ] == 0 } { + continue + } + # izbaci loopback interface iz popisa (BSD lo0) + if { $extif == "lo" } { + continue + } + #puts "external interface found: $extif" + lappend extifcs $extif + } foreach node $node_list { if { [nodeType $node] == "rj45" } { set i [lsearch $extifcs [getNodeName $node]]