# Description: identd script for roxirc under Windows variable socket "" if ![catch {socket -server [namespace current]::identrequest 113} err] { Echo .0 "\[ info \] Ident server started" set socket $err } else { Echo .0 "\[ info \] Ident server not started: $err" } proc identanswer {sock} { global tcl_platform fileevent $sock readable "" set tmp [read -nonewline $sock] if ![string match "\[1-9\]* , \[1-9\]*" $tmp] { puts $sock "0 , 0 : ERROR : UNDEFINED" close $sock Echo .0 "\[ info \] Identd replied: 0 , 0 : ERROR : UNDEFINED" return } puts $sock "$tmp : USERID : UNIX : $tcl_platform(user)" close $sock Echo .0 "\[ info \] Identd replied: $tmp : USERID : UNIX : $env(LOGNAME)" } proc identrequest {sock addy port} { Echo .0 "\[ info \] Ident request from $addy" fconfigure $sock -blocking 0 -buffering line fileevent $sock readable "[namespace current]::identanswer $sock" after 10000 "catch [list close $sock]" } proc unload { } { variable socket if {$socket != ""} { close $socket } }