Skip to content
CHANGES 407 KiB
Newer Older
     games with SIGCHLD, and so now detects and replaces dying
     children.  Child processes just die on SIGTERM, without taking
     the whole process group with them.  Potential problem --- if any
     child process refuses to die, we hang in restart.
     MaxRequestsPerChild may still not work, but it certainly works
     better than it did before this!  [Robert Thau]

  *) mod_dir.c bug fixes: ReadmeName and HeaderName
     work (or work better, at least); over-long description lines
     properly terminated. [Mark Cox]

  *) http_request.c now calls unescape_url() more places where it
     should [Paul Sutton].

  *) More directory handling bugs (reported by Cox)
     Parent Directory link is now set correctly. [Robert Thau]

Changes with Shambhala 0.5.1                                     04 Jul 1995

  *) Generalized cleanup interface in alloc.c --- any function can be
     registered with alloc.c as a cleanup for a resource pool;
     tracking of files and file descriptors has been reimplemented in
     terms of this interface, so I can give it some sort of a test.
     [Robert Thau]

  *) More changes in alloc.c --- new cleanup_for_exec() function,
     which tracks down and closes all file descriptors which have been
     registered with the alloc.c machinery before the server exec()s a
     child process for CGI or <!--#exec-->.  CGI children now get
     started with exactly three file descriptors open.  Hopefully,
     this cures the problem Rob H. was having with overly persistent
     CGI connections. [Robert Thau]

  *) Mutual exclusion around the accept() in child_main() --- this is
     required on at least SGI, Solaris and Linux, and is #ifdef'ed in
     by default on those systems only (-DFCNTL_SERIALIZED_ACCEPT).
     This uses fcntl(F_SETLK,...) on the error log descriptor because
     flock() on that descriptor won't work on systems which have BSD
     flock() semantics, including (I think) Linux 1.3 and Solaris.

     This does work on SunOS (when the server is idle, only one
     process in the pool is waiting on accept()); it *ought* to work
     on the other systems. [Robert Thau]

  *) FreeBSD and BSDI portability tweaks [Chuck Murcko]

  *) sizeof(*sa_client) bugfix from [Rob Hartill]

  *) pstrdup(..., NULL) returns NULL, [Randy Terbush]

  *) block_alarms() to avoid leaking the DBM* in dbm auth (this should
     be unnecessary if I go to the revised timeout-handling scheme).
     [Robert Thau]

  *) For NCSA bug-compatibility, set QUERY_STRING env var (to a null
     string) even if none came in with the request.  [Robert Thau]

  *) CHANGES file added to distribution ;-).

Changes with Shambhala 0.4.5

  *) mod_dld --- early dynamic loading support [rst]
  *) Add wildcard content handlers for XBITHACK; default_hander now
     invoked with that mechanism (as a handler hanging off mod_core) [rst]
  *) XBITHACK supported as a wildcard content-handler, and 
     configurable at run-time (not just at compile time, as in the
     "patchy server" releases) [rst]

Changes with Shambhala 0.4.4                                     30 Jun 1995

  *) Fixed basic thinkos in mod_dbm_auth.c [rst, reported by Mark Cox]
  *) Handle Addtype x/y .z [rst, reported by Cox]

Changes with Shambhala 0.4.3

  *) Fixed very dumb bug in mod_alias; "Alias" and "Redirect" are not
     synonymous [rst, terbush]

Changes with Shambhala 0.4.1                                     28 Jun 1995

  *) First-cut virtual host implementation; some refit in the config
     reading code, and log management, was necessary to support this [rst]
  *) Sub-pool machinery, originally added to avoid excessive storage
     allocation on listings of large directories (which turned out to
     be the problem that the 0.3 storage accounting was added to
     find).  Subrequests and mod_dir changed to use subpools.  [rst]
  *) More memory debugging --- free list consistency checks. [rst]
  *) Added err_headers to request_rec, with support elsewhere [rst]
  *) Other fixes to minor bugs in mod_dir and mod_includes [rst, terbush]

Changes with Shambhala 0.3                                       19 Jun 1995

  *) Switch ONE_PROCESS to a runtime command-line option (-X)
  *) Don't compile in mod_ai_backcompat by default
  *) Switch name of server from Apache to Shambhala in Makefile
  *) Add some accounting routines to track memory usage in the pools,
     for debugging

Changes with Shambhala 0.2

  *) Set DOCUMENT_ROOT CGI variable
  *) Add single-process debugging, as a compile-time option (ONE_PROCESS)
  *) Add critical section protection to handling of cleanup structures 
     in alloc.c [rst]
  *) Significant code reorg within the server core to group related
     functions together [rst]
  *) Correctly handle clients that hang up before sending any request
     [rst]
  *) Replace dying child processes. [rst]

Changes with Shambhala 0.1                                       12 Jun 1995

   Major rewrite of the pre-existing "patchy server" codebase, by
   Robert Thau (rst).  Significant portions of the server code, such
   as configuration-file handling and HTTP authentication support,
   were ripped out and rewritten from scratch.  Code that was not
   completely rewritten was significantly altered.

   Major changes with this release include:

   *) Introduction of the module API; in request handling, the central 
      machinery just dispatches to various modules, which actually do
      most of the work.  Configuration handling is similar --- modules
      declare their own commands, and the central machinery just
      dispatches to them.  

      API features from shambhala/0.1 were substantially unchanged in
      Apache 1.0 and 1.1.  (1.0 API features not yet present in this
      release, such as wildcard handlers and subpools, were added in
      subsequent Shambhala releases, and were also generally rst's
      work). 

   *) This release included the following modules:

      mod_access      (access control --- allow and deny directives),
      mod_alias       (Alias and Redirect commands),
      mod_auth        (straight HTTP authentication, based on flat-files)
      mod_auth_dbm    (same, with dbm files)
      mod_cgi         (CGI scripts and, in this release, ScriptAlias)
      mod_common_log  (CLF access logs; later renamed mod_log_common)
      mod_dir         (directory indexing)
      mod_include     (server-side includes)
      mod_mime        (AddType directives)
      mod_negotiation (content negotiation)
      mod_userdir     (support for users' public_html directories)

      It also included a mod_ai_backcompat, which was a private hack
      for back-compatibility with rst's own AI-lab servers.

      All of these modules were substantially complete, and functional 
      or nearly so (a few, which implemented features not in use at
      Thau's site, required patches of a few lines).

   *) sub-request machinery, to allow modules to determine how other
      modules would assign MIME types to a given file, or optionally
      serve its content (this is heavily used by mod_dir, mod_include
      and mod_negotiation).

   *) Resource pool system for keeping track of memory allocated and
      files opened in service of a particular request.  Much of the
      code in the modules (when they weren't rewrites) was adjusted to 
      replace a pervasive convention of using fixed-size buffers on
      the stack with an equally pervasive convention of using memory
      allocated with palloc().

   *) Reorganization of data structures associated with a given
      request to eliminate use of global variables and the troublesome 
      unmunge_name function (used in NCSA and early Apache releases to 
      attempt to determine the URI which mapped to a given filename
      --- a difficult proposition, given that it is easy to produce
      setups in which multiple URIs map to the same file).

   *) Source files renamed and rearranged

   *) Very simple pre-forking behavior --- parent process forked off a 
      fixed number of children, and then just waited for SIGHUP.

   *) Other more minor changes too numerous to list.

   This release included modified versions of a lot of code from the
   Apache 0.6.4 public release, plus an early pre-forking patch
   codeveloped by Robert Thau and Rob Hartill.

Changes with Apache 0.7.3                                        20 Jun 1995

   *) There were a bunch of changes between Apache 0.6.4 and 0.7.3 that
      were incorporated by Rob Hartill on the main branch while Robert Thau
      worked on the Shambhala rewrite above.  Most were merged into the
      Shambala architecture after Apache 0.8.0.

Changes with Apache 0.6.4                                        13 May 1995

   *) Patches by Rob Hartill, Cliff Skolnick, Randy Terbush, Robert Thau,
      and others.

Changes with Apache 0.5.1                                        10 Apr 1995

Changes with Apache 0.4                                          02 Apr 1995

  *) Patches by Brian Behlendorf, Andrew Wilson, Robert Thau,
     and Rob Hartill.

Changes with Apache 0.3                                          24 Mar 1995

  *) Patches by Robert Thau, David Robinson, Rob Hartill, and
     Carlos Varela.

Changes with Apache 0.2                                          18 Mar 1995

  *) Based on NCSA httpd 1.3 by Rob McCool and patches by CERT,
     Roy Fielding, Robert Thau, Nicolas Pioch, David Robinson,
     Brian Behlendorf, Rob Hartill, and Cliff Skolnick.