From f1863c25e2415ec671bf2b238166b29dfd3fb37e Mon Sep 17 00:00:00 2001 From: Josip Rodin Date: Mon, 14 Sep 2009 00:45:08 +0200 Subject: [PATCH] zamijenio ifconfig-l s internim parserom (just for kicks) --- ifconfig-l | 5 ----- linux/exec.tcl | 24 +++++++++++++++++++----- 2 files changed, 19 insertions(+), 10 deletions(-) delete mode 100755 ifconfig-l 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]] -- 2.39.5