#!/bin/sh # ifchecking - Copyright (C) 1999 Pat Thoyts # # ifup example program. Watch a network interface and show it's status. # # launch wish \ exec wish "$0" -- "$@" set rcs_id "\$Id: ifchecking,v 1.3 1999/05/29 17:28:12 pat Exp $" set version [lindex $rcs_id 2] proc gui { if_name } { wm title . "$if_name status" label .title -text "Interface $if_name" -relief groove label .number button .update -text "Update" -command "docheck $if_name" button .quit -text "Quit" -command exit pack .title -fill x pack .number -fill x pack .update -side left pack .quit -side right } proc docheck { if_name } { global errorCode set result [catch { exec ifup $if_name }] set res_code [lindex [split $errorCode " "] 2] if { $result && $res_code != 255} { .number configure -text "UP" wm iconname . "$if_name up" } else { .number configure -text "DOWN" wm iconname . "$if_name down" } } proc keepchecking { if_name interval } { docheck $if_name after $interval "keepchecking $if_name $interval" } set interface [lindex $argv 0] set interval [lindex $argv 1] if { "$interface" == "" || "$interface" == "-h" } { puts "usage: $argv0 \[\]" exit 1 } if { "$interval" != "" } { set r [catch { set interval [expr 1000 * $interval]} msg] if { $r } { puts "usage: $argv0 \[\]" exit 1 } } else { set interval 10000 } gui $interface keepchecking $interface $interval # Local variables: # mode: tcl # indent-tabs-mode: nil # End: