# Description: add parsing for some extra server numerics like /stats, /lusers, and /trace package require roxirc 2.0 procs raw_200 raw_204 raw_205 raw_211 raw_212 raw_213 raw_214 raw_215 raw_219 \ raw_242 raw_243 raw_249 raw_250 raw_251 raw_252 raw_253 raw_254 raw_255 \ raw_256 raw_257 raw_258 raw_259 raw_262 raw_263 raw_265 raw_266 raw_351 proc raw_200 {header line} { global last trace if {$last != "200"} { set trace 1 Echo .0 "\[ trace \] Tracing to [lindex $header 5]" {trace default} } else { incr trace } Echo .0 "\[ trace \] [lindex $header 3]: $line [lindex $header 4] [lindex $header end] $line" {trace default} } proc raw_204 {header line} { Echo .0 "\[ trace \] [lindex $header 3]: [lindex $header 5] [lindex $header 6]" {trace default} } proc raw_205 {header line} { global last if {$last == "200"} { if {[llength $header] == 5} { Echo .0 "\[ trace \] [lindex $header 3]: $line [lindex $header 4]" {trace default} } else { Echo .0 "\[ trace \] [lindex $header 3]: [lindex $header 5] [lindex $header 6] [lindex $header end] $line" {trace default} } } else { Echo .0 "\[ trace \] [lindex $header 3]: $line [lrange $header 4 end]" {trace default} } } proc raw_211 {header line} { Echo .0 "\[ stats \] [join [lrange $header 3 end]]" {stats default} } proc raw_212 {header line} { Echo .0 "\[ stats \] [join [lrange $header 3 end]] $line" {stats default} } proc raw_213 {header line} { Echo .0 "\[ stats \] [lrange $header 3 end]" {stats default} } proc raw_214 {header line} { Echo .0 "\[ stats \] [lrange $header 3 end]" {stats default} } proc raw_215 {header line} { Echo .0 "\[ stats \] [lrange $header 3 end]" {stats default} } proc raw_219 {header line} { Echo .0 "\[ stats \] $line" {stats default} } proc raw_242 {header line} { Echo .0 "\[ stats \] $line" {stats default} } proc raw_243 {header line} { Echo .0 "\[ stats \] [lrange $line 3 end]" {stats default} } proc raw_249 {header line} { Echo .0 "\[ stats \] $line" {stats default} } proc raw_250 {header line} { global last if {$last == "242"} { Echo .0 "\[ stats \] $line" {stats default} } else { Echo .0 "\[ lusers \] $line" {lusers default} } } proc raw_251 {header line} { Echo .0 "\[ lusers \] $line" {lusers default} } proc raw_252 {header line} { Echo .0 "\[ lusers \] [lindex $header end] $line" {lusers default} } proc raw_253 {header line} { Echo .0 "\[ lusers \] [lindex $header end] $line" {lusers default} } proc raw_254 {header line} { Echo .0 "\[ lusers \] [lindex $header end] $line" {lusers default} } proc raw_255 {header line} { Echo .0 "\[ lusers \] $line" {lusers default} } proc raw_256 {header line} { Echo .0 "\[ admin \] $line" {admin default} } proc raw_257 {header line} { Echo .0 "\[ admin \] $line" {admin default} } proc raw_258 {header line} { Echo .0 "\[ admin \] $line" {admin default} } proc raw_259 {header line} { Echo .0 "\[ admin \] $line" {admin default} } proc raw_262 {header line} { global trace if [info exists trace] { Echo .0 "\[ trace \] End of trace to [lindex $header end], $trace hops" {trace default} unset trace } else { Echo .0 "\[ trace \] End of trace to [lindex $header end], 0 hops" {trace default} } } proc raw_263 {header line} { Echo .0 "\[ server \] $line" {server default} } proc raw_265 {header line} { Echo .0 "\[ users \] $line" {users default} } proc raw_266 {header line} { Echo .0 "\[ users \] $line" {users default} } proc raw_351 {header line} { Echo .0 "\[ version \] [lrange $header 3 end] $line" {version default} } proc unload {} {} proc help {window line} { Echo $window "\[ help \] Adds parsing for the following numeric replies: [string map "[namespace current]::raw_ {}" [info commands [namespace current]::raw_*]]" {help default} } #foreach x [info commands [namespace current]::raw_*] { # eval {proc $x [info args $x] "puts \"header: \$header\nline: \$line\n\"\n[info body $x]"} #}