diff --git a/shellbox.tcl b/shellbox.tcl index 241301c..007440a 100755 --- a/shellbox.tcl +++ b/shellbox.tcl @@ -23,13 +23,19 @@ # kill terminates the shell # -set version {$Id: shellbox.tcl,v 1.1 2002/10/23 08:50:50 zimoch Exp $} +set version {$Id: shellbox.tcl,v 1.2 2002/10/23 09:22:46 zimoch Exp $} proc createServer {port {paranoid 0}} { - if $paranoid { - socket -server connectionHandler -myaddr localhost $port - } else { - socket -server connectionHandler $port + if [catch { + if $paranoid { + socket -server connectionHandler -myaddr localhost $port + } else { + socket -server connectionHandler $port + } + } msg] { + puts stderr "Can't install server on port $port" + puts stderr $msg + exit 2 } puts "server started on port $port" } @@ -124,7 +130,12 @@ proc getClientlist {} { proc startProgram {} { global command pipe catch {close $pipe} - set pipe [open "|$command" RDWR] + if [catch { + set pipe [open "|$command" RDWR] + } msg] { + puts stderr $msg + exit 3 + } fconfigure $pipe -blocking no -buffering line gets $pipe if [eof $pipe] exit @@ -153,12 +164,12 @@ if {[lindex $argv 0] == "-paranoid"} { set port [lindex $argv 0] set command [lrange $argv 1 end] -if {![string is integer $port] || [llength command] == 0} { +if {![string is integer $port] || [llength $command] == 0} { puts stderr "usage: [file tail $argv0] \[-paranoid\] \[args\]" exit 1 } -createServer $port $paranoid startProgram +createServer $port $paranoid vwait forever