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.