New FastCGI kit available now
Mark Brown (mbrown@OpenMarket.com)
Wed, 12 Jun 1996 13:57:07 -0400
Message-Id: <199606121757.NAA06337@breckenridge.openmarket.com>
To: fastcgi-developers@OpenMarket.com
Subject: New FastCGI kit available now
Date: Wed, 12 Jun 1996 13:57:07 -0400
From: Mark Brown <mbrown@OpenMarket.com>
A new FastCGI kit, identified as version 1.5, is available now.
Perl and Tcl binaries based on this kit are also available now.
This kit fixes a number of bugs that have been identified over the past
month, and makes some enhancements.
The examples/sample-store application is designed to be a lot
more instructive than "Hello, world" type examples. Check it out.
Here are the "What's New" notes, from the README file:
General:
Added a white paper on FastCGI application performance to the
doc directory. Generally brought the other docs up to date.
Rearranged the kit to put more emphasis on running FastCGI-capable
servers and less on running cgi-fcgi. Added
examples/conf/om-httpd.config, a config file that demonstrates all
of the example apps. (Would like to have similar configs for NCSA
and Apache.)
Added the tiny-authorizer and sample-store applications to
the examples. These are explained in the index.html.
C libraries:
Added the functions FCGX_Finish and FCGI_Finish. These functions
finish the current request from the HTTP server but do not begin a
new request. These functions make it possible for applications to
perform other processing between requests. An application must not
use its stdin, stdout, stderr, or environ between calling
FCGI_Finish and calling FCGI_Accept. See doc/FCGI_Finish.3 for
more information. The application examples/sample-store.c demonstrates
the use of FCGI_Finish.
Added conditional 'extern "C"' stuff to the .h files fcgi_stdio.h,
fcgiapp.h, and fcgiappmisc.h for the benefit of C++ applications
(suggested by Jim McCarthy).
Fixed two bugs in FCGX_VFPrintF (reported by Ben Laurie). These
bugs affected processing of %f format specifiers and of all format
specifiers containing a precision spec (e.g "%12.4g").
Fixed a bug in FCGX_Accept in which the environment variable
FCGI_WEBSERVER_ADDRS was being read rather than the specified
FCGI_WEB_SERVER_ADDRS. Fixed a bug in FCGX_Accept in which the
wrong storage was freed when FCGI_WEB_SERVER_ADDRS contained more
than one address or if the address check failed.
Changed FCGX_Accept to avoid depending upon accept(2) returning the
correct value of sin_family in the socketaddr structure for an
AF_UNIX connection (SCO returns the wrong value, as reported by Paul
Mahoney).
Changed the error retry logic in FCGX_Accept. FCGX_Accept now
returns -1 only in case of operating system errors that occur while
accepting a connection (e.g. out of file descriptors). Other errors
cause the current connection to be dropped and a new connection to
be attempted.
Perl:
Changed FCGI.xs to make it insensitive to Perl's treatment of
environ (we hope). Changed FCGI::accept so the initial environment
variables are not unset on the first call to FCGI::accept (or on
subsequent calls either). Added the echo-perl example
program. Added a workaround for the "empty initial environment bug"
to tiny-perl-fcgi. Changed the example Perl scripts to use a new
symbolic link ./perl, avoiding the HP-UX 32 character limit on the
first line of a command interpreter file.
Because the FastCGI-enabled Perl interpreter uses the C fcgi_stdio
library, it picks up all the changes listed above for C. There's
a new Perl subroutine FCGI::finish.
Tcl:
Fixed a bug in tclFCGI.c that caused the request environment
variables to be lost. Changed FCGI_Accept so the initial
environment variables are not unset on the first call to FCGI_Accept
(or on subsequent calls either). Added the echo-tcl example
program. Fixed another bug that caused Tcl to become confused by
file opens; as a side effect of this change, writes to stdout/stderr
that occur in an app running as FastCGI before FCGI_Accept is called
are no-ops rather than crashing Tcl. Changed the example Tcl
scripts to use a new symbolic link ./tclsh, avoiding the HP-UX 32
character limit on the first line of a command interpreter file.
Because the FastCGI-enabled Tcl interpreter uses the C fcgi_stdio
library, it picks up all the changes listed above for C; there's
a new Tcl command FCGI_Finish.
Java:
Fixed a sign-extension bug in FCGIMessage.java that caused bad encodings
of names and values in name-value pairs for lengths in [128..255].
Made small cleanups in the Java example programs to make them more
consistent with the other examples.