#!./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 "
" 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 }