Project description.

The Apache HTTP Server Project is an effort to develop and maintain an open-source HTTP server for modern operating systems including UNIX and Windows NT.

The goal of this project is to provide a secure, efficient and extensible server that provides HTTP services in sync with the current HTTP standards

Apache 1.3b3 Changelog
  • WIN32: Work around brain-damaged spawn calls that can't deal with spaces and slashes. [Ben Laurie]
  • WIN32: Fix the code so CGIs can use socket calls on Windows. The problem was that certain undocumented environment variables needed for sockets to work under Win32 were not being passed. [Frank Faubert ]
  • Add a "-V" command line flag to the httpd binary. This flag shows some of the defines that Apache was compiled with. It is useful for debugging purposes. [Martin Kraemer]
  • Start separating the ap_*() routines into their own library, so they can be used by items in src/support among other things. [Ken Coar] PR#512, 905, 1252, 1308
  • Give a more informative error when no AuthType is set. [Lars Eilebrecht]
  • Remove strtoul() use from mod_proxy because it isn't available on all platforms. [Marc Slemko] PR#1214
  • WIN32: Some Win32 systems terminated all responses after 16 kB. This turns out to be a bug in Winsock - select() doesn't always return the correct status. [Ben Laurie]
  • Directives owned by http_core can now use the new check_cmd_context() routine to ensure that they're not being used within a container (e.g., ) where they're invalid. [Martin Kraemer]
  • PORT: Recent changes made it necessary to add explicit prototype for fgetc() and fgets() on SunOS 4.x. [Martin Kraemer, Ben Hyde]
  • It was necessary to distinguish between resources which are allocated in the parent, for cleanup in the parent, and resources which are allocated in each child, for cleanup in each child. A new pool was created which is passed to the module child_init and child_exit functions; modules are free to register per-child cleanups there. This fixes a bug with reliable piped logs. [Dean Gaudet]
  • mod_autoindex wasn't displaying the ReadmeName file at the bottom unless it was also doing FancyIndexes, but it displayed the HeaderName file at the top under all circumstances. It now shows the ReadmeName file for simple indices, too, as it should. [Ken Coar] PR#1373
  • http_core was mmap()ing even in cases where it wasn't going to read the file. [Ben Hyde ]
  • Complete rewrite ;-) of mod_rewrite's URL rewriting engine: Now the rewriting engine (the heart of mod_rewrite) is organized more straight-forward, first time well documented and reduced to the really essential parts. All redundant cases were stripped off and processing now is the same for both per-server and per-directory context with only a minimum difference (the prefix stripping in per-dir context). As a side-effect some subtle restrictions and two recently discovered problems are gone: Wrong escaping of QUERY_STRING on redirects in per-directory context and restrictions on the substitution URL on redirects. Additionally some minor source cleanups were done. [Ralf S. Engelschall]
  • Lars Eilebrecht wrote a whole new set of Apache Vhost Internals documentation, examples, explanations and caveats. They live in a new subdirectory htdocs/manual/vhost/. [Lars Eilebrecht ]
  • If ap_slack fails to allocate above the low slack line it's a good indication that further problems will occur; it's a better indication than many external libraries give us when we actually run out of descriptors. So report it to the user once per restart. [Dean Gaudet] PR#1181
  • Change mod_include and mod_autoindex to use Y2K-safe date formats by default. [Ken Coar]
  • Add a "SuppressColumnSorting" option to the IndexOptions list, which will keep the column heading from being links for sorting the display. [Ken Coar, suggested by Brian Tiemann ] PR #1261
  • PORT: Update the LynxOS port. [Marius Groeger ]
  • Fix logic error when issuing a mmap() failed message with a non-zero MMAP_THRESHOLD. [David Chambers ] PR#1294
  • Preserve handler value on ProxyPass'ed requests by not calling find_types on a proxy'd request; fixes problems where some ProxyPass'ed URLs weren't actually passed to the proxy. [Lars Eilebrecht] PR#870
  • Fix a byte ordering problem in mod_access which prevented the old-style syntax (i.e. "a.b.c." to match a class C) from working properly. [Dean Gaudet] PR#1248, 1328, 1384
  • Fix problem with USE_FLOCK_SERIALIZED_ACCEPT not working properly. Each child needs to open the lockfile instead of using the passed file-descriptor from the parent. [Jim Jagielski] PR#1056
  • Fix the error logging in mod_cgi; the recent error log changes introduced a bug that prevented it from working correctly. [M.D.Parker] PR#1352
  • Default to USE_FCNTL_SERIALIZED_ACCEPT on HPUX to properly handle multiple Listen directives. [Marc Slemko] PR#872
  • Inherit a bugfix to fnmatch.c from FreeBSD sources. ["[KOI8-R] ?????? ??????" ] PR#1311
  • When a configuration parse complained about a bad directive, the logger would use whatever (unrelated) value was in errno. errno is now forced to EINVAL first in this case. [Ken Coar]
  • A sed command in the Configure script pushed the edge of POSIXness, breaking on some systems. [Bhaba R.Misra ] PR#1368
  • Solaris >= 2.5 was totally broken due to a mess up using pthread mutexes. [Roy Fielding, Dean Gaudet]
  • OS/2 Port updated; it should be possible to build OS/2 from the same sources as Unix now. [Brian Havard ]
  • Fix a year formatting bug in mod_usertrack. [Paul Eggert ] PR#1342
  • A mild SIGTERM/SIGALRM race condition was eliminated. [Dean Gaudet] PR#1211
  • Warn user that default path has changed if /usr/local/etc/httpd is found on the system. [Lars Eilebrecht]
  • Various mod_mime_magic bug fixes and cleanups: Uncompression should work, it should work on WIN32, and a few resource leaks and abort conditions are fixed. [Dean Gaudet] PR#1205
  • PORT: On AIX 1.x files can't be named '@', fix the proxy cache to use '%' instead of '@' in its encodings. [David Schuler ] PR#1317
  • Improve the warning message generated when the "server is busy". [Dean Gaudet] PR#1293
  • PORT: All ports which don't otherwise define DEF_WANTHSREGEX will get Spencer regex by default. This is to avoid having to discover bugs in operating system libraries. [Dean Gaudet]
  • PORT: "Fix" PR#467 by generating warnings on systems which we have not been able to get working USE_*_SERIALIZED_ACCEPT settings for. Document this a bit more in src/PORTING. [Dean Gaudet] PR#467
  • Ensure that one copy of config warnings makes it to the error_log. [Dean Gaudet]
  • Invent new structure and associated methods to handle config file reading. Add "custom" hook to use config file cfg_getline() on something which is not a FILE* [Martin Kraemer]
  • Make single-exe Windows install. [Ben Laurie and Eric Esselink]
  • WIN32: Make CGI work under Win95. [Ben Laurie and Paul Sutton]
  • WIN32: Make index.html and friends work under Win95. [Ben Laurie]
  • PORT: Solaris 2.4 needs Spencer regex, the system regex is broken. [John Line ] PR#1321
  • Default pathname has been changed everywhere to /usr/local/apache [Sameer ]
  • PORT: AIX now uses USE_FCNTL_SERIALIZED_ACCEPT. [David Bronder ] PR#849
  • PORT: i386 AIX does not have memmove. [David Schuler ] PR#1267
  • PORT: HPUX now defaults to using Spencer regex. [Philippe Vanhaesendonck , Omar Del Rio ] PR#482, 1246
  • PORT: Some versions of NetBSD don't automatically define __NetBSD__. Workaround by defining NETBSD. [Chris Craft ] PR#977
  • PORT: UnixWare 2.x requires -lgen for syslog. [Hans Snijder ] PR#1249
  • PORT: ULTRIX appears to not have syslog. [Lars Eilebrecht ]
  • PORT: Basic Gemini port (treat it like unixware212). ["Pavel Yakovlev (Paul McHacker)" ]
  • PORT: All SVR4 systems now use NET_SIZE_T = size_t, and use USE_SHMGET_SCOREBOARD. [Martin Kraemer]
  • Various improvements in detecting config file errors (missing closing directives for , etc. blocks, prohibiting global server settings in blocks, flagging unhandled multiple arguments to , etc.) [Martin Kraemer]
  • Add support to suexec wrapper program for mod_unique_id's UNIQUE_ID variable to provide this one to suexec'd CGIs, too. [M.D.Parker ] PR#1284
  • New support tool: src/support/split-logfile, a sample Perl script which splits up a combined access log into separate files based on the name of the virtual host (listed first in the log records by "%v"). [Ken Coar]