#!./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.2 1996/10/30 14:38:01 mbrown 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 "
" 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 }