#!./tclsh # # echo-tcl -- # # Produce a page containing all FastCGI inputs # # Copyright (c) 1996 Open Market, Inc. # # See the file "LICENSE.TERMS" for information on usage and redistribution # of this file, and for a DISCLAIMER OF ALL WARRANTIES. # # $Id: echo-tcl,v 1.1 1997/09/16 15:36:28 stanleyg Exp $ # proc printEnv {label envArrayName} { upvar $envArrayName envArray puts "$label:
\n
"
    foreach name [lsort [array names envArray]] {
        puts "$name=$envArray($name)"
    }
    puts "

" } foreach name [array names env] { set initialEnv($name) $env($name) } set count 0 while {[FCGI_Accept] >= 0 } { incr count puts -nonewline "Content-type: text/html\r\n\r\n" puts "FastCGI echo (Tcl)" puts "

FastCGI echo (Tcl)

" puts "Request number $count

" if [info exists env(CONTENT_LENGTH)] { set len $env(CONTENT_LENGTH) } else { set len 0 } if {$len == 0} { puts "No data from standard input.

" } else { puts "Standard input:
\n

"
        for {set i 0} {$i < $len} {incr i} {
            set ch [read stdin 1]
            if {$ch == ""} {
                puts -nonewline "Error: Not enough bytes received "
                puts "on standard input

" break } puts -nonewline $ch } puts "\n

" } printEnv "Request environment" env printEnv "Initial environment" initialEnv }