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.