CHANGES revision 141b1a93f508248cbc0e9a124cc38041eb3e2562
62dadd654b88164ac263978699c78aa01647a39bYuri PankovChanges with Apache 2.0.14-dev
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Move more code from the http module into the core server. This
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov is core code, basically the default handler, the default input
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov and output filters, and all of the core configuration directives.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov All of this code is required in order for the server to work, with or
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov without HTTP. The server is closer to working without the HTTP
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov module, although there is still more to do. [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Fix a number of SGI compile warnings throughout the server. Fix some
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov bad parameters to apr_bucket_read(). Fix a bad statement in
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov ap_method_in_list(). For the mod_rewrite cache use apr_time_t
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov consistently; we were mixing apr_time_t and time_t in invalid ways
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov before. In load_file(), call apr_dso_error() instead of
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov apr_strerror() so that we get a more specific string on some platforms.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov PR #6980 [Jeff Trawick]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Allow modules to query the MPM about it's execution profile. This
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov query API can and should be extended in the future, but for now,
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov max_daemons, and threading or forking is a very good start.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Jon Travis <jtravis@covalent.net>]
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy *) Modify mod_include to send blocks of data no larger than 9k.
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy Without this, mod_include will wait until the whole file is parsed,
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy or the first tag is found to send any data to the client.
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy [Paul J. Reder <rederpj@raleigh.ibm.com>]
6849994e8263545ed3c0f6f5676e47b38e14f63eSebastien Roy *) Fix mod_info, so that <Directory> and <Location> directives are
6849994e8263545ed3c0f6f5676e47b38e14f63eSebastien Roy not displayed twice when displaying the current configuration.
6849994e8263545ed3c0f6f5676e47b38e14f63eSebastien Roy [Ryan Morgan <rmorgan@covalent.net>]
6849994e8263545ed3c0f6f5676e47b38e14f63eSebastien Roy *) Add config directives to override DEFAULT_ERROR_MSG and
6849994e8263545ed3c0f6f5676e47b38e14f63eSebastien Roy DEFAULT_TIME_FORMAT. This was sent in as PR 6193.
6849994e8263545ed3c0f6f5676e47b38e14f63eSebastien Roy [Dan Rench <drench@xnet.com>]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Get mod_info building and loading on Win32. [William Rowe]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Begin to move protocol independant functions out of mod_http. The goal
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov is to have only functions that are HTTP specific in the http directory.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri PankovChanges with Apache 2.0.13
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Don't assume that there will always be multiple calls to the byterange
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov filter. It is possible that we will need to do byteranges with only
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov one call to the filter. [Ryan Morgan <rmorgan@covalent.net>]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Move the error_bucket definition from the http module to the
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov core server. Every protocol will need this ability, not just
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy HTTP. [Ryan Bloom]
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien RoyChanges with Apache 2.0.12
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy *) Modify mod_file_cache to save pre-formatted strings for
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov content-length and last-modified headers for performance.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Mike Abbot <mja@trudge.engr.sgi.com>]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Namespace protect IOBUFSIZ since it is exposed in the API.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Jon Travis <jtravis@covalent.net>]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Use "Basic" authentication instead of "basic" in ab, as the spec
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov says we should. [Andre Breiler <andre.breiler@rd.bbc.co.uk>]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Fix a seg fault in mod_userdir.c. We used to use the pw structure
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov without ever filling it out. This fixes PR 7271.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Taketo Kabe <kabe@sra-tohoku.co.jp> and
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov Cliff Woolley <cliffwoolley@yahoo.com>]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Add a couple of GCC attribute tags to printf style functions.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Jon Travis <jtravis@covalent.net>]
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy *) Add the correct language tag for interoperation with the Taiwanese
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy versions of MSIE and Netscape. [Clive Lin <clive@CirX.ORG>] PR#7142
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Migrate the perchild MPM to use the new apr signal child, and
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov APR thread functions. [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Close one copy of the CGI's stdout before creating the new process.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov The CGI will still have stdout, because we have already dup'ed it.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov This keeps Apache from waiting forever to send the results of a CGI
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov process that has forked a long-lived child process.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Taketo Kabe <kabe@sra-tohoku.co.jp>]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Remove the rest of the pthreads functions from the threaded MPM.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov This requires the APR support for a signal thread that was just
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov added. [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Make mod_dir use a fixup for sending a redirect to the browser.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov Before this, we were using a handler, which doesn't make much
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov sense, because the handler wasn't generating any data, it would
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov either return a redirect error code, or DECLINED. This fits the
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov current hooks better. [Ryan Morgan <rmorgan@covalent.net>]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Make the threaded MPM use APR threads instead of pthreads.
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy *) Get mod_tls to the point where it actually appears to work in all cases.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) implement --enable-modules and --enable-mods-shared for "all" and
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov "most". [Greg Stein]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Move the threaded MPM to use APR locks instead of pthread locks.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Rename mpmt_pthread to threaded. This is more in line with the
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov fact that mpmt_pthread shouldn't be using pthreads directly, and
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov it is a smaller name that doesn't tie into anything.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Rename the module structures so that the exported symbol matches
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov the file name, and it is easier to automate the installation
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov process (generating LoadModule directives from the module filenames).
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Martin Kraemer]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Remove the coalesce filter. With the ap_f* functions, this filter
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov is no longer needed. [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri PankovChanges with Apache 2.0.11
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Remove the dexter MPM. Perchild is the same basic idea, but it has the
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov added feature of allowing a uid/gid per child process. If no
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov uid/gid is specified, then Perchild behaves exactly like dexter.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Get perchild building again. [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Don't disable threads just because we are using the prefork MPM.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov If somebody wants to compile without threads, they must now add
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov --disable-threads to the configure command line. [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Begin to move the calls to update_child_status into common code, so
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov that each individual MPM does not need to update the scoreboard itself.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Allow mod_tls to compile under Unix boxes where openssl has been
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov installed to the system include files.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Gomez Henri <new-httpd@slib.fr>]
6849994e8263545ed3c0f6f5676e47b38e14f63eSebastien Roy *) Cleanup the mod_tls configure process. This should remove any need
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov to hand-edit any files. We require OpenSSL 0.9.6 or later, but
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov configure doesn't check that yet. [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Add a very early prototype of SSL support (in mod_tls.c). It is
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov vital that you read modules/tls/README before attempting to build
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov it. [Ben Laurie]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Fix a potential seg fault on all platforms. David Reid fixed this
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov on BEOS, but the problem could happen anywhere, so we don't want
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov to #ifdef it. [Cliff Woolley <cliffwoolley@yahoo.com>]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Add new LogFormat directive, %D, to log time it takes to serve a
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov request in microseconds. [Bill Stoddard]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Change AddInputFilter and AddOutputFilter to SetInputFilter and
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov SetOutputFilter. This corresponds nicely with the other Set
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov directives, which operate on containers while the Add* directives
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov tend to work directly on extensions. [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Cleanup the header handling a bit. This uses the apr_brigade_*
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov functions for the buffering so that we don't need to compute
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov the length of the headers before we actually create the header
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov buffer. [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Allow filters to buffer data using the ap_f* functions. These have
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov become macros that resolve directly to apr_brigade_*.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Get the Unix MPM's to do a graceful restart again. If we are going
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov to register a cleanup with ap_cleanup_scoreboard, then we have to
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov kill the cleanup with the same function, and that function can't be
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov static. [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Install all required header files. Without these, it was not
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov possible to compile some modules outside of the server.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Fix the AliasMatch directive in Apache 2.0. When we brought a patch
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov forward from 1.3 to 2.0, we missed a single line, which broke regex
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov aliases. [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) We have a poor abstraction in the protocol. This is a temporary
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov hack to fix the bug, but it will need to be fixed for real. If
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov we find an error while sending out a custom error response, we back
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov up to the first non-OK request and send the data. Then, when we send
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov the EOS from finalize_request_protocol, we go to the last request,
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov to ensure that we aren't sending an EOS to a request that has already
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov received one. Because the data is sent on a different request than
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov the EOS, the error text never gets sent down the filter stack. This
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov fixes the problem by finding the last request, and sending the data
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov with that request. [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Make the server status page show the correct restart time, and
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov thus the proper uptime. [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Move the CGI creation logic from mod_include to mod_cgi(d). This
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov should reduce the amount of duplicate code that is required to
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov create CGI processes.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Paul J. Reder <rederpj@raleigh.ibm.com>]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) ap_new_connection() closes the socket and returns NULL if a socket
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov call fails. Usually this is due to a connection which has been
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov reset. [Jeff Trawick]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Move the Apache version information out of httpd.h and into release.h.
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy This is in preparation for the first tag with the new tag and release
6849994e8263545ed3c0f6f5676e47b38e14f63eSebastien Roy system. [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Begin restructuring scoreboard code to enable adding back in
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov the ability to use IPC other than shared memory.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov Get mod_status working on Windows again. [Bill Stoddard]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Make mod_status work with 2.0. This will work for prefork,
6849994e8263545ed3c0f6f5676e47b38e14f63eSebastien Roy mpmt_pthread, and dexter. [Ryan Bloom]
6849994e8263545ed3c0f6f5676e47b38e14f63eSebastien Roy *) Correct a typo in httpd.conf.
6849994e8263545ed3c0f6f5676e47b38e14f63eSebastien Roy [Kunihiro Tanaka <tanaka@apache.or.jp>] PR#7154
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Really fix mod_rewrite map lookups this time. [Tony Finch]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Get the correct IP address if ServerName isn't set and we can't
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov find a fully-qualified domain name at startup.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov PR#7170 [Danek Duvall <dduvall@eng.sun.com>]
6849994e8263545ed3c0f6f5676e47b38e14f63eSebastien Roy *) Make mod_cgid work with SuExec. [Ryan Bloom]
6849994e8263545ed3c0f6f5676e47b38e14f63eSebastien Roy *) Adopt apr user/group name features for mod_rewrite. Eliminates some
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov 'extra' stat's for user/group since they should never occur, and now
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov resolves the SCRIPT_USER and SCRIPT_GROUP, including on WinNT NTFS
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov volumes. [William Rowe]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Adopt apr features to simplify mod_includes. This changes the
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov behavior of the USER_NAME variable, unknown uid's are now reported
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov as USER_NAME="<unknown>" rather than the old user#000 result.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov WinNT now resolves USER_NAME on NTFS volumes. [William Rowe]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Adopt apr features for simplifing mod_userdir, and accept the new
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov Win32/OS2 exceptions without hiccuping. [William Rowe]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Replace configure --with-optim option by using and saving the
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov environment variable OPTIM instead. This is needed because configure
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov options do not support multiple flags separated by spaces.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Roy Fielding]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Fix some byterange handling. If we get a byte range that looks like
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov "-999999" where that is past the end of the file, we should return
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov a PARTIAL CONTENT status code, and return the whole file as one big
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov byterange. This matches the 1.3 handling now. [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Make the error bucket a real meta-data bucket. This means that the
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov bucket length is 0, and a read returns NULL data. If one of these
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov buckets is passed down after the headers are sent, this data will
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov just be ignored. [Greg Stein]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) The prefork MPM wasn't killing child processes correctly if a restart
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov signal was received while the process was serving a request. The child
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov process would become the equivalent of a second parent process. If
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov we break out of the accept loop, then we need to do die after cleaning
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov up after ourselves. [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Change the Prefork MPM to use SIGWINCH instead of SIGUSR1 for graceful
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov restarts. [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Modify the apr_stat/lstat/getfileinfo calls within apache to use
6849994e8263545ed3c0f6f5676e47b38e14f63eSebastien Roy the most optimal APR_FINFO_wanted bits. This spares Win32 from
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov performing very expensive owner, group and permission lookups
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov and allows the server to function until these apr_finfo_t fields
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov are implemented under Win32. [William Rowe]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Support for typedsafe optional functions - that is functions exported by
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov optional modules, which, therefore, may or may not be present, depending
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov on configuration. See the experimental modules mod_optional_fn_{ex,im}port
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov for sample code. [Ben Laurie]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) filters can now report an HTTP error to the server. This is done
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov by sending a brigade where the first bucket is an error_bucket.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov This bucket is a simple bucket that stores an HTTP error and
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov a string. Currently the string is not used, but it may be needed
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov to output an error log. The http_header_filter will find this
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov bucket, and output the error text, and then return
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov AP_FILTER_ERROR, which informs the server that the error web page
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy has already been sent. [Ryan Bloom]
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy *) If we get an error, then we should remove all filters except for
6849994e8263545ed3c0f6f5676e47b38e14f63eSebastien Roy those critical to serving a web page. This fixes a bug, where
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov error pages were going through the byterange filter, even though
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov that made no sense. [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Relax the syntax checking of Host: headers in order to support
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov iDNS. PR#6635 [Tony Finch]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Cleanup the byterange filter to use the apr_brigade_partition
6849994e8263545ed3c0f6f5676e47b38e14f63eSebastien Roy and apr_bucket_copy functions. This removes a lot of very messy
6849994e8263545ed3c0f6f5676e47b38e14f63eSebastien Roy code, and hopefully makes this filter more stable.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Remove AddModule and ClearModuleList directives. Both of these
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov directives were used to ensure that modules could be enabled
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov in the correct order. That requirement is now gone, because
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov we use hooks to ensure that modules are in the correct order.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) When SuExec is specified, we need to add it to the list of
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov targets to be built. If we don't, then any changes to the
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov configuration won't affect SuExec, unless 'make suexec' is
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy specifically run. [Ryan Bloom]
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy *) Cleaned out open_file from mod_file_cache, as apr now accepts
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov the APR_XTHREAD argument to open a file for consumption by
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov parallel threads on win32. [William Rowe]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Correct a bug in determining when we follow symlinks. The code
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov expected a stat -1 result, not an apr_status_t positive error.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov Also check if the APR_FINFO_USER fields are valid before we
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov follow the link. [William Rowe]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Move initgroupgs, ap_uname2id and ap_gname2id from util.c to
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov mpm_common.c. These functions are only valid on some platforms,
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov so they should not be in the main-line code. [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Remove ap_chdir_file(). This function is not thread-safe,
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov and nobody is currently using it. [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Do not try to run make depend if there are no .c files in the
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov current directory, doing so makes `make depend` fail.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Ryan Bloom]
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy *) Update highperformance.conf to work with either prefork or
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov pthreads mpms. [Greg Ames]
6849994e8263545ed3c0f6f5676e47b38e14f63eSebastien Roy *) Stop checking to see if this is a pipelined request if we know
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov for a fact that it isn't. Basically, if r->connection->keepalive == 0.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov This keeps us from making an extra read call when serving a 1.0
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov request. [Ryan Bloom and Greg Stein]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Fix the handling of variable expansion look-ahead in mod_rewrite,
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov i.e. syntax like %{LA-U:REMOTE_USER}, and also fix the parsing of
6849994e8263545ed3c0f6f5676e47b38e14f63eSebastien Roy more complicated nested RewriteMap lookups. PR#7087 [Tony Finch]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Fix the RFC number mentioned when complaining about a missing
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov Host: header. PR#7079 [Alexey Toptygin <alexeyt@wam.umd.edu>]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Fix an endless loop in ab which occurred when ab was posting
6849994e8263545ed3c0f6f5676e47b38e14f63eSebastien Roy and the server dropped the connection unexpectedly.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Jeff Trawick]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Fix a segfault while handling request bodies in ap_http_filter().
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov This problem has been seen with mod_dav usage as well as with
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov requests where the body was just being discarded. [Jeff Trawick]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Some adjustment on the handling and automatic setting (via
6849994e8263545ed3c0f6f5676e47b38e14f63eSebastien Roy hints.m4) of various compilation flags (eg: CFLAGS). Also,
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov add the capability to specify flags (NOTEST_CFLAGS and
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov NOTEST_LDFLAGS) which are used to compile Apache, but
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov not used during the configuration process. Useful for
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov flags like "-Werror". [Jim Jagielski]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Stop using environment variables to force debug mode or
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov no detach. We now use the -D command line argument to
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov specify the correct mode. -DONE_PROCESS and -DNO_DETACH.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Greg Stein, Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Change handlers to use hooks. [Ben Laurie]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Stop returning copies of filenames from both apr_file_t and
6849994e8263545ed3c0f6f5676e47b38e14f63eSebastien Roy apr_dir_t. We pstrdup the filenames that we store in the
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov actual structures, so we don't need to pstrdup the strings again.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) mod_cgi: Fix some problems where the wrong error value was being
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov traced. [Jeff Trawick]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) EBCDIC: Fix some missing ASCII conversion on some protocol data.
6849994e8263545ed3c0f6f5676e47b38e14f63eSebastien Roy [Jeff Trawick]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Add generic hooks. [Ben Laurie]
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy *) Use a real pool to dup the error log descriptor. [Ryan Bloom]
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy *) Fix a segfault caused by mod_ext_filter when the external filter
6849994e8263545ed3c0f6f5676e47b38e14f63eSebastien Roy program does not exist. [Jeff Trawick]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Fix an output truncation error when on an HTTP >= 1.0 request an
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov object of size between DEFAULT_BUCKET_SIZE and AP_MIN_BYTES_TO_WRITE
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov was served through mod_charset_lite (or anything else that would
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov create a transient bucket in this size range). ap_bucket_make_heap()
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov silently failed (fixed), transient_setaside() discovered it, but
6849994e8263545ed3c0f6f5676e47b38e14f63eSebastien Roy ap_save_brigade() ignored it (fixed). [Jeff Trawick]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Ignore \r\n or \n when using PEEK mode for input filters. The problem
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov is that some browsers send extra lines at the end of POST requests, and
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov we don't want to delay sending data back to the user just because the
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov browser isn't well behaved. [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Get SuEXEC working again. We can't send absolute paths to suExec
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov because it refuses to execute those programs. SuEXEC also wasn't
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov always recognizing configuration changes made using the autoconf
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov setup. [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Allow the buildconf process to find the config.m4 files in the correct
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov order. Basically, we can now name config.m4 files as config\d\d.m4,
6849994e8263545ed3c0f6f5676e47b38e14f63eSebastien Roy and we will sort them correctly when inserting them into the build
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov process. [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Get mod_cgid to use apr calls for creating the actual CGI process.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov This also allows mod_cgid to use ap_os_create_priviledged_process,
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov thus allowing for SuExec execution from mod_cgid. Currently, we do
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov not support everything that standard SuExec supports, but at least
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov it works minimally now. [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Allow SuExec to be configured from the ./configure command line.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Update some of the docs in README and INSTALL to reflect some of
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov the changes in Apache 2.0 [Cliff Woolley <cliffwoolley@yahoo.com>]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) If we get EAGAIN returned from the call to apr_sendfile, then we
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov need to call sendfile again. This gets us serving large files
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov such as apache_2.0a9.tar.gz on FreeBSD again. [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Get the support programs building cleanly again.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Cliff Woolley <cliffwoolley@yahoo.com>]
6849994e8263545ed3c0f6f5676e47b38e14f63eSebastien Roy *) The Apache/Win32 Apache.exe and dll's now live in bin. The
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov current directory logic now backs up over bin/ to determine the
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov server root from the Apache.exe path.
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy *) Apache/Win32 now follows the standard conventions of mod_foo.so
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov loadable modules, dynamic libs are all named libfoo.dll, and the
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov makefile.win populates the include, lib and libexec directories.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Apache is now IPv6-capable. On systems where APR supports IPv6,
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov Apache gets IPv6 listening sockets by default. Additionally, the
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov Listen, NameVirtualHost, and <VirtualHost> directives support IPv6
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov numeric address strings (e.g., "Listen [fe80::1]:8080").
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Jeff Trawick]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Modify the install directory layout. Modules are now installed in
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov modules/. Shared libraries should be installed in libraries/, but
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov we don't have any of those on Unix yet. All install directories
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov are modifyable at configure time. [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Install all header files in the same directory on Unix. [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Get the functions in server/linked into the server, regardless of
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov which modules linked into the server. This uses the same hack
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy for Apache that we use for APR and apr-util to ensure all of the
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov necessary functions are linked. As a part of thise, the CHARSET_EBCDIC
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov was renamed to AP_CHARSET_EBCDIC for namespace protection, and to make
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov the scripts a bit easier.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Rework the RFC1413 handling to make it thread-safe, use a timeout
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov on the query, and remove IPv4 dependencies. [Jeff Trawick]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Get all of the auth modules to the point that they will install and
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov be loadable into the server. Our new build/install mechanism expects
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov that all modules will have a common name format. The auth modules
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov didn't use that format, so we didn't install them properly.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) API routines ap_pgethostbyname() and ap_pduphostent() are no longer
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov available. Use apr_getaddrinfo() instead. [Jeff Trawick]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Get "NameVirtualHost *" working in 2.0. [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Return HTTP_RANGE_NOT_SATISFIABLE if the every range requested starts
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov after the end of the response. [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Get byterange requests working with responses that do not have a
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov content-length. Because of the way byterange requests work, we have to
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov have all of the data before we can actually do the byterange, so we
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov can compute the content-length in the byterange filter.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Get exe CGI's working again on Windows.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Allan Edwards]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Get mod_cgid and mod_rewrite to work as DSOs by changing the way
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov they keep track of whether or not their post config hook has been
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov called before. Instead of a static variable (which is replaced when
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov the DSO is loaded a second time), use userdata in the process pool.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Jeff Trawick]
62dadd654b88164ac263978699c78aa01647a39bYuri PankovChanges with Apache 2.0a9
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Win32 now requires perl to complete the final install step for users
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov to build + install on Win32. Makefile.win now rewrites @@ServerRoot@
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov and installs the conf, htdocs and htdocs/manual directories.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [William Rowe]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Make mod_include use a hash table to associate directive tags with
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov functions. This allows modules to implement their own SSI tags easily.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov The idea is simple enough, a module can insert it's own tag and function
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov combination into a hash table provided by mod_include. While mod_include
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov parses an SSI file, when it encounters a tag in the file, it does a
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy hash lookup to find the function that implements that tag, and passes
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy all of the relevant data to the function. That function is then
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov responsible for processing the tag and handing the remaining data back
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy to mod_include for further processing.
6849994e8263545ed3c0f6f5676e47b38e14f63eSebastien Roy [Paul J. Reder <rederpj@raleigh.ibm.com>]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Get rid of ap_new_apr_connection(). ap_new_connection() now has
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov fewer parameters: the local and remote socket addresses were removed
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov from the parameter list because all required information is available
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov via the APR socket. [Jeff Trawick]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Distribution directory structure reorganized to reflect a
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov normal source distribution with external install targets.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Roy Fielding]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) The MPMs that need multiple segments of shared memory now create
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov two apr_shmem_t variables, one for each shared memory allocation.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov the problem is that we can't determine how much memory will be required
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov for shared memory allocations once we try to allocate more than one
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov variable. The MM code automatically aligns the shared memory allocations,
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov so we end up needing to pad the amount of shared memory we want based
6849994e8263545ed3c0f6f5676e47b38e14f63eSebastien Roy on how many variables will be allocated out of the shared memory segment.
6849994e8263545ed3c0f6f5676e47b38e14f63eSebastien Roy It is just easier to create a second apr_shmem_t variable, and two
6849994e8263545ed3c0f6f5676e47b38e14f63eSebastien Roy shmem memory blocks.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Cleanup the export list a bit. This creates a single unified list of
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov functions exported by APR. The export list is generated at configure
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov time, and that list is then used to generate the exports.c file.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov Because of the way the export list is generated, we only export those
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov functions that are valid on the platform we are building on.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Enable logging the cookie with mod_log_config
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Sander van Zoest <sander@covalent.net>]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Fix a segfault in mod_info when it reaches the end of the configuration.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Jeff Trawick]
6849994e8263545ed3c0f6f5676e47b38e14f63eSebastien Roy *) Added lib/aputil/ as a placeholder for utility functions which are not
6849994e8263545ed3c0f6f5676e47b38e14f63eSebastien Roy specific to the Apache HTTP Server (but do not make sense with APR).
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov The first utility is "apu_dbm": a set of functions to work with DBM
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov files. This first version can be compiled for SDBM or GDBM databases.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Greg Stein]
6849994e8263545ed3c0f6f5676e47b38e14f63eSebastien Roy *) Complete re-write of mod_include. This makes mod_include a filter that
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov uses buckets directly. This has now served the FAQ correctly.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Paul Reder <rederpj@raleigh.ibm.com>]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Allow modules to specify the first filter in a sub_request when
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov making the sub_request. This keeps modules from having to change the
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov output_filter immediately after creating the sub-request, and therefore
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov skip the sub_req_output_filter. [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Update ab to accept URLs with IPv6 literal address strings (in the
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov format described in RFC 2732), and to build Host header fields in
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov the same format. This allows IPv6 literal address strings to be
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov used with ab. This support has been tested against Apache 1.3 with
6849994e8263545ed3c0f6f5676e47b38e14f63eSebastien Roy the KAME patch, but Apache 2.0 does not yet work with this format
6849994e8263545ed3c0f6f5676e47b38e14f63eSebastien Roy of the Host header field. [Jeff Trawick]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Accomodate an out-of-space condition in the piped logs and the
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov rotatelogs.c code, and no longer churn log processes for this
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov condition. [Victor J. Orlikowski]
6849994e8263545ed3c0f6f5676e47b38e14f63eSebastien Roy *) Add support for partial writes with apr_sendfile() to core_output_filter.
62dadd654b88164ac263978699c78aa01647a39bYuri PankovChanges with Apache 2.0a8
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Add a directive to mod_mime so that filters can be associated with
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov a given mime-type.
6849994e8263545ed3c0f6f5676e47b38e14f63eSebastien Roy *) Get multi-views working again. We were setting the path_info
6849994e8263545ed3c0f6f5676e47b38e14f63eSebastien Roy field incorrectly if we couldn't find the specified file.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Fix 304 processing. The core should never try to send the headers
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov down the filter stack. Always, just setup the table in the request
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov record, and let the header filter convert it to data that is ready
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov for the network.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) More fixes for the proxy. There are still bugs in the proxy code,
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov but this has now proxied www.yahoo.com and www.ntrnet.net (my ISP)
6849994e8263545ed3c0f6f5676e47b38e14f63eSebastien Roy successfully.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Fix params for apr_getaddrinfo() call in connect proxy handler.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Chuck Murcko]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) APR: Add new apr_getopt_long function to handle long options.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [B. W. Fitzpatrick <fitz@red-bean.com>]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) APR: Change apr_connect() to take apr_sockaddr_t instead of hostname.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov Add generic apr_create_socket(). Add apr_getaddrinfo() for doing
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov hostname resolution/address string parsing and building
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov apr_sockaddr_t. Add apr_get_sockaddr() for getting the address
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov of one of the apr_sockaddr_t structures for a socket. Change
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov apr_bind() to take apr_sockaddr_t. [David Reid and Jeff Trawick]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Remove the BUFF from the HTTP proxy. This is still a bit ugly, but
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov I have proxied pages with it, cleanup will commence soon.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Make the proxy work with filters. This isn't perfect, because we
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov aren't dealing with the headers properly. [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Do not send a content-length iff the C-L is 0 and this is a head
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov request. [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Make cgi-bin work as a regular directory when using mod_vhost_alias
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov with no VirtualScriptAlias directives. PR#6829 [Tony Finch]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Remove BUFF from the PROXY connect handling. [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Get the default_handler to stop trying to deal with HEAD requests.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov The idea is to let the content-length filter compute the C-L before
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov we try to send the data. If we can get the C-L correctly, then we
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov should send it in the HEAD response.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) The Header filter can now determine if a body should be sent based
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov on r->header_only. The general idea of this is that if we delay
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov deciding to send the body, then we might be able to compute the
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy content-length correctly, which will help caching proxies to cache
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy our data better. Any handler that doesn't want to try to compute
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov the content-length can just send an EOS bucket without data and
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov everything will just work.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Add the referer to the error log if one is available.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Markus Gyger <mgyger@itr.ch>]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Mod_info.c has now been ported to Apache 2.0. As a part of this
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov change, the root of the configuration tree has been exposed to modules
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov as ap_conftree.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Ryan Morgan <rmorgan@covalent.net>]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Get the core_output_filter to use the bucket interface directly.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov This keeps us from calling the content-length filter multiple times
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov for a simple static request.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) We are sending the content-type correctly now.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Ryan Bloom and Will Rowe]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) APR on FreeBSD: Fix a bug in apr_sendfile() which caused us to report
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov a bogus bytes-sent value when the only thing being sent was trailers
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov and writev() returned an error (or EAGAIN). [Jeff Trawick]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Get SINGLE_LISTEN_UNSERIALIZED_ACCEPT working again. This uses the
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov hints file to determine which platforms define
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov SINGLE_LISTEN_UNSERIALIZED_ACCEPT.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Ryan Bloom]
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy *) APR: add apr_get_home_directory() [Jeff Trawick]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Initial import of 1.3-current mod_proxy. [Chuck Murcko]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Not all platforms have INADDR_NONE defined by default. Apache
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov used to make this check and define INADDR_NONE if appropriate,
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov but APR needs the check too, and I suspect other applications will
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov as well. APR now defines APR_INADDR_NONE, which is always a valid
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov value on all platforms.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Branko �ibej <brane@xbc.nu>]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Destroy the pthread mutex in lock_intra_cleanup() for PR#6824.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Shuichi Kitaguchi <ki@hh.iij4u.or.jp>]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Relax the syntax checking of Host: headers in order to support
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov iDNS. PR#6635 [Tony Finch]
6849994e8263545ed3c0f6f5676e47b38e14f63eSebastien Roy *) When reading from file buckets we convert to an MMAP if it makes
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov sense. This also simplifies the default handler because the
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov default handler no longer needs to try to create MMAPs.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) BUFF has been removed from the main server. The BUFF code will remain
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy in the code until it has been purged from the proxy module as well.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Byteranges have been completely re-written to be a filter. This
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov has been tested, and I believe it is working correctly, but it could
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov doesn't work for the Adobe Acrobat plug-in. The output almost matches
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov the output from 1.3, the only difference being that 1.3 includes
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov a content-length in the response, and this does not.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) APR read/write functions and bucket read functions now operate
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov on unsigned integers, instead of signed ones. It doesn't make
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov any sense to use signed ints, because we return the error codes,
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov so if we have an error we should report 0 bytes read or written.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Always compute the content length, whether it is sent or not.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov The reason for this, is that it allows us to correctly report
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov the bytes_sent when logging the request. This also simplifies
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov content-length filter a bit, and fixes the actual byte-reporing
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Remove AP_END_OF_BRIGADE definition. This does not signify what
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov it says, because it was only used by EOS and FLUSH buckets. Since
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov neither of those are required at the end of a brigade, this was
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov really signifying FLUSH_THE_DATA, but that can be determined better
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov by checking AP_BUCKET_IS_EOS() or AP_BUCKET_IS_FLUSH. EOS and FLUSH
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov buckets now return a length of 0, which is actually the amount of data
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov read, so they make more sense.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Allow the core_output_filter to save some data past the end of a
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov request. If we get an EOS bucket, we only send the data if it
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov makes sense to send it. This allows us to pipeline request
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov responses. As a part of this, we also need to allocate mmap
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov buckets out of the connection pool, not the request pool. This
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov allows the mmap to outlive the request.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Make blocking and non-blocking bucket reads work correctly for
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov sockets and pipes. These are the only bucket types that should
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov have non-blocking reads, because the other bucket types should
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov ALWAYS be able to return something immediately.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) In the Apache/Win32 console window, accept Ctrl+C to stop the
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov server, but use Ctrl+Break to initiate a graceful restart
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov instead of duplicating behavior. [John Sterling]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Patch mod_autoindex to set the Last-Modified header based on
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov the directory's mtime, and add the ETag header. [William Rowe]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Merge the 1.3 patch to add support for logging query string in
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov such a way that "%m %U%q %H" is the same as "%r".
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Bill Stoddard]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Port three log methods from mod_log_config 1.3 to 2.0:
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov CLF compliant '-' byte count, method and protocol.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Bill Stoddard]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Add a new LogFormat directive, %c, that will log connection
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov status at the end of the response as follows:
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov 'X' - connection aborted before the response completed.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov '+' - connection may be kept-alive by the server.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov '-' - connection will be closed by the server.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Bill Stoddard]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Expand APR for WinNT to fully accept and return utf-8 encoded
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov Unicode file names and paths for Win32, and tag the Content-Type
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov from mod_autoindex to reflect that charset if the the feature
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov macro APR_HAS_UNICODE_FS is true. [William Rowe]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Compute the content length (and add appropriate header field) for
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov the response when no content length is available and we can't use
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov chunked encoding. [Jeff Trawick]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Changed ap_discard_request_body() to use REQUEST_CHUNKED_DECHUNK,
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov so that content input filters get dechunked data when using
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov the default handler. Also removed REQUEST_CHUNKED_PASS.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Sascha Schumann]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Add mod_ext_filter as an experimental module. This module allows
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov the administrator to use external programs as filters. Currently,
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov only filtering of output is supported. [Jeff Trawick]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Most Apache functions work on EBCDIC machines again, as protocol
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov data is now translated (again). [Jeff Trawick]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Introduce ap_xlate_proto_{to|from}_ascii() to clean up some of
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov the EBCDIC support. They are noops on ASCII machines, so this
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov type of translation doesn't have to be surrounded by #ifdef
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov CHARSET_EBCDIC. [Jeff Trawick]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Fix mod_include. tag commands work again, and the server will
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov send the FAQ again. This also allows mod_include to set aside
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov buckets that include partial buckets.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Ryan Bloom and David Reid]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Add suexec support back. [Manoj Kasichainula]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Lingering close now uses the socket directly instead of using
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy BUFF. This has been tested, but since all we can tell is that it
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov doesn't fail, this needs to be really hacked on.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Allow filters to modify headers and have those headers be sent to
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov the client. The idea is that we have an http_header filter that
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov actually sends the headers to the network. This removes the need
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov for the BUFF to send headers.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Charset translation: mod_charset_lite handles translation of
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov request bodies. Get rid of the xlate version of ap_md5_digest()
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov since we don't compute digests of filtered (e.g., translated)
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov response bodies this way anymore. (Note that we don't do it at
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov all at the present; somebody needs to write a filter to do so.)
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Jeff Trawick]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Input filters and ap_get_brigade() now have a input mode parameter
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov (blocking, non-blocking, peek) instead of a length parameter.
6849994e8263545ed3c0f6f5676e47b38e14f63eSebastien Roy *) Update the mime.types file to the registered media types as
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov of 2000-10-19. PR#6613 [Carsten Klapp <carsten.klapp@home.net>,
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy *) Namespace protect some macros declared in ap_config.h
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy *) Support HTTP header line folding with input filtering.
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy *) Mod_include works again. This should still be re-written, but at
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov least now we can serve an SHTML page again.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Begin to remove BUFF from the core. Currently, we keep a pointer
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov to both the BUFF and the socket in the conn_rec. Functions that
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov want to use the BUFF can, functions that want to use the socket,
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov can. They point to the same place.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) apr_psprintf doesn't understand %lld as a format. Make it %ld.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Tomas "�gren" <stric@ing.umu.se>]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) APR pipes on Unix and Win32 are now cleaned up automatically when the
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov associated pool goes away. (APR pipes on OS/2 were already had this
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov logic.) This resolvs a fatal file descriptor leak with CGIs.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Jeff Trawick]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) The final line of the config file was not being read if there was
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy no \n at the end of it. This was caused by apr_fgets returning
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy APR_EOF even though we had read valid data. This is solved by
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy making cfg_getline check the buff that was returned from apr_fgets.
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy If apr_fgets return APR_EOF, but there was data in the buf, then we
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov return the buf, otherwise we return NULL.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Ryan Bloom]
6849994e8263545ed3c0f6f5676e47b38e14f63eSebastien Roy *) Piped logs work again in the 2.0 series.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Restore functionality broken by the mod_rewrite security fix:
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov rewrite map lookup keys and default values are now expanded
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov so that the lookup can depend on the requested URI etc.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov PR #6671 [Tony Finch]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Tighten up the syntax checking of Host: headers to fix a
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy security bug in some mass virtual hosting configurations
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy that can allow a remote attacker to retrieve some files
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy on the system that should be inaccessible. [Tony Finch]
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy *) Add a pool bucket type. This bucket is used for data allocated out
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy of a pool. If the pool is cleaned before the bucket is destroyed, then
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy the data is converted to a heap bucket, allowing it to survive the
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy death of the pool.
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy *) Add a flush bucket. This allows modules to signal that the filters
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy should all flush whatever data they currently have. There is no way
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy to actually force them to do this, so if a filter ignores this bucket,
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy that's life, but at least we can try with this.
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy *) Add an output filter for sub-requests. This filter just strips the
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy EOS bucket so that we don't confuse the main request's core output
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy filter by sending multiple EOS buckets. This change also makes sub
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy requests start to send EOS buckets when they are finished.
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy *) Make ap_bucket_(read|destroy|split|setaside) into macros. Also
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy makes ap_bucket_destroy a return void, which is okay because it
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy used to always return APR_SUCCESS, and nobody ever checked its
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy return value anyway.
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy [Cliff Woolley <cliffwoolley@yahoo.com>]
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy *) Remove the index into the bucket-type table from the buckets
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy structure. This has now been replaced with a pointer to the
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy bucket_type. Also add some macros to test the bucket-type.
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy *) Renamed all MODULE_EXPORT symbols to AP_MODULE_DECLARE and all symbols
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy for CORE_EXPORT to AP_CORE_DECLARE (namespace protecting the wrapper)
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy and retitled API_EXPORT as AP_DECLARE and APR_EXPORT as APR_DECLARE.
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy All _VAR_ flavors changes to _DATA to be absolutely clear.
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy [William Rowe]
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy *) Add support for /, //, //servername and //server/sharename
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy parsing of <Directory> blocks under Win32 and OS2.
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy [Tim Costello, William Rowe, Brian Harvard]
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy *) Remove the function pointers from the ap_bucket type. They have been
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy replaced with a global table. Modules are allowed to register bucket
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy types and use then use those buckets.
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy *) mod_cgid: In the handler, shut down the Unix socket (only for write)
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy once we finish writing the request body to the cgi child process;
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy otherwise, the client doesn't hit EOF on stdin. Small request bodies
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy worked without this change (for reasons I don't understand), but large
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy ones didn't. [Jeff Trawick]
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy *) Remove file bucket specific information from the ap_bucket type.
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy This has been moved to a file_bucket specific type that hangs off
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy the data pointer in the ap_bucket type.
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy *) Input filtering now has a third argument. This is the amount of data
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy to read from lower filters. This argument can be -1, 0, or a positive
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy number. -1 means give me all the data you have, I'll deal with it and
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy let you know if I need more. 0 means give me one line and one line
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov only. A positive number means I want no more than this much data.
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy Currently, only 0 and a positive number are implemented. This allows
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy us to remove the remaining field from the conn_rec structure, which
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy has also been done.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Ryan Bloom]
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy *) Big cleanup of the input filtering. The goal is that http_filter
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy understands two conditions, headers and body. It knows where it is
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy based on c->remaining. If c->remaining is 0, then we are in headers,
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov and http_filter returns a line at a time. If it is not 0, then we are
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov in body, and http_filter returns raw data, but only up to c->remaining
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov bytes. It can return less, but never more.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Greg Ames, Ryan Bloom, Jeff Trawick]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) mod_cgi: Write all of the request body to the child, not just what
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov the kernel would accept on the first write. [Jeff Trawick]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Back out the change that moved the brigade from the core_output_filters
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov ctx to the conn_rec. Since all requests over a given connection
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov go through the same core_output_filter, the ctx pointer has the
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov correct lifetime.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Fix another bug in the send_the_file() read/write loop. A partial
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov send by apr_send would cause unsent data in the read buffer to
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov get clobbered. Complete making send_the_file handle partial
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov writes to the network.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Bill Stoddard]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Fix a couple of type fixes to allow compilation on AIX again
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Victor J. Orlikowski <v.j.orlikowski@gte.net>]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Fix bug in send_the_file() which causes offset to be ignored
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov if there are no headers to send.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Bill Stoddard]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Handle APR_ENOTIMPL returned from apr_sendfile in the core
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov filter. Useful for supporting Windows 9* with a binary
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov compiled on Windows NT.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Bill Stoddard]
62dadd654b88164ac263978699c78aa01647a39bYuri PankovChanges with Apache 2.0a7
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Reimplement core_output_filter to buffer/save bucket brigades
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov across multiple calls to the core_filter. The brigade will be
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov sent when either MIN_BYTES_TO_SEND or MAX_IOVEC_TO_WRITE
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov thresholds are hit or the EOS bucket is received.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Bill Stoddard]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Create experimental filter (buffer_filter) that coalesces bytes
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov into one large buffer before invoking the next filter in the
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov chain. This filter is particularly useful with the current
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov implementation of mod_autoindex when it inserted above the
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov chunk_filter. mod_autoindex generates a lot of brigades that
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov containing buckets holding just a few bytes each. The
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov buffer_filter coalesces these buckets into a single large bucket.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Bill Stoddard]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Add apr_sendfile() support into the core_output_filter.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Bill Stoddard]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Add apr_sendv() support into the core_output_filter.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Bill Stoddard]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Fix mod_log_config so that it compiles cleanly with BUFFERED_LOGS
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Mike Abbott <mja@sgi.com>]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Remove ap_send_fb. This is no longer used in Apache, and it doesn't
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov make much sense, because Apache uses buckets instead of BUFFs now.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) send_the_file now falls back to a read/write loop on platforms that
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov do not have sendfile.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Ryan Bloom and Brian Havard]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Install apachectl correctly, and substitute the proper values so
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov that it works again. [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Better(??) handle platforms that lack sendfile().
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Jim Jagielski]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) APR now has UUID generation/formatting/parsing support.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Greg Stein]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Begin the http_filter. This is an input filter that understands
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy the absolute basic amount required to parse an HTTP Request. The
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov goal is to be able to split headers from request body before passing
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov the data back to the other filters.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Bring forward from 1.3.13 the config directory implementation
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Jim Jagielski]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) install apxs if it is created
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Added APR_IS_STATUS_condition test macros to eliminate canonical error
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov conversions. [William Rowe]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Now that we have ap_add_input_filter(), rename ap_add_filter() to
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov ap_add_output_filter(). [Jeff Trawick]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Multiple build and configuration fixes
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov Build process:
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov -add datadir and localstatedir substitutions
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov -fix layout name
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov -fix logfilename misspelling
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov -fix evaluation of installation dir variables and
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov -replace $foobar by $(foobar) to be usefull in the makefile
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov Cross compile:
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy -add rules for cross-compiling in rules.mk. Okay, rule to check for
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov $CC_FOR_BUILD is still missing
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy -use CHECK_TOOL instead of CHECK_PROG for ranlib
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy -add missing "AR=@AR@" to severaly Makefile.in's
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov -cache result for "struct rlimit"
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov -compile all helper programs with native and cross compiler
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov and use the native version to generate header file
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov ["R�diger" Kuhlmann <Tadu@gmx.de>]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Prepare our autoconf setup for autoconf 2.14a and for cross-
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov ["R�diger" Kuhlmann <Tadu@gmx.de>]
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy *) Fix a bug where a client which only sends \n to delimit header
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy lines (netcat) gets a strange looking HTTP_NOT_IMPLEMENTED
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy message. Start working on ebcdic co-existance with input
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy [William Rowe, Greg Ames]
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy *) If mod_so is enabled in the server always create libexec, even
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy if there are no modules installed in this directory. This is a
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy requirement for APXS to work correctly.
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy *) Connection oriented output filters are now stored in the
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy conn_rec instead of the request_rec. This allows us to add the
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy output filter in the pre-connection phase instead of the
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov post_read_request phase, which keeps us from trying to write an
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov error page before we have a filter to write to the network.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Ryan Bloom, Jeff Trawick, and Greg Ames]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Cleaning up an mmap bucket no longer deletes the mmap. An
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov mmap can be used across multiple buckets (default_handler with
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov byte ranges, mod_file_cache, mod_mmap_static), so cleanup of
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov the mmap itself can't be associated with the bucket.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Jeff Trawick]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Add .dll caching directive ISAPICacheFile to mod_isapi.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [William Rowe]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Radical surgery to improve mod_isapi support under Win32.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov Includes a number of newer ServerSupportFunction calls, support
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov for ReadClient (in order to retrieve POSTs greater than 48KB),
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov and general bug fixes to more reliably load ISAPI .dll's and
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov prevent leaking handle resources. Note: There are still
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov discrepancies between IIS's and Apache's ServerVariables, and
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov async calls are still not supported. Additional warnings are
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov logged to facilitate debugging of unsupported ISAPI calls.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [William Rowe]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Add input filtering to Apache. The basic idea for the input
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov filters is the same as the ideas for output filters. The biggest
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov difference is that instead of calling ap_pass_brigade, ap_get_brigade
6849994e8263545ed3c0f6f5676e47b38e14f63eSebastien Roy should be called, and the order of execution for the filter itself is
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov different. When writing an output filter, a brigade is passed in,
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov and filters operate directly on that brigade, when done, they call
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov ap_pass_brigade. Input filters are the exact opposite. Because input
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov is not a push operation, filters first call ap_get_brigade. When this
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy function returns, the input filter will be left with a valid brigade.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov The input filter should then operate on the brigade, and return.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Fix building on BSD/OS using its native make. The build system
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov falls back to the BSD .include directive on that host platform.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Sascha Schumann]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Expand dbmmanage to allow -d -m -s -p options for Crypt, MD5,
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov SHA1 and plaintext password encodings. Make feature tests a
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov bit more flexible. [William Rowe]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Charset translation: mod_charset_lite handles output content
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov translation in a filter. mod_charset_lite no longer ignores
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov subrequests. A bunch of cruft related to BUFF's support for
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov translating request and response bodies was removed.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Jeff Trawick]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Move the addition of the CORE filter to the post_read_request
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov hook in http_core.c. This removes the need to add the filter in
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov multiple places and allows for an SSL module to be added much
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov simpler. [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Fix a security problem that affects certain configurations of
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov mod_rewrite. If the result of a RewriteRule is a filename that
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov contains expansion specifiers, especially regexp backreferences
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov $0..$9 and %0..%9, then it may be possible for an attacker to
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov access any file on the web server. [Tony Finch]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Fix a bug where errors that are detected during early request parsing
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov don't produce visible HTTP error messages at the browser, because
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov the core_filter wasn't present. [Greg Ames]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Provide apr_socklen_t as a portability aid.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Victor J. Orlikowski]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Overhaul of dbmmanage to allow a groups arg (as in Apache 1.2)
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov as well as a comment arg to the add, adduser and update cmds.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov update allows the user to clear or preserve pw/groups/comment.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov Fixed a bug in dbmmanage that prevented the check option from
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov parsing a password followed by :group... text. Corrected the
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov seed calcualation for Win32 systems, and added -lsdbm support.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [William Rowe]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Configured mod_auth_dbm to compile with sdbmlib under Win32.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [William Rowe]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Avoid a segfault when parsing .htaccess files. An
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov uninitialized tree pointer was passed to ap_build_config().
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Jeff Trawick]
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy *) Change the way that inet_addr & inet_network are checked for
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov in APR's configure process to allow BeOS BONE to correctly
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy find them. With this change BeOS BONE now builds from source
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy with no problems. [David Reid]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Fix a bug in apr_create_process() for Unix. The NULL signifying
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov the end of the parameters to execve() was stored in the wrong
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov location, overlaying the storage beyond the newargs[] array and
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov also passing uninitialized storage to execve(), which would
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov sometimes fail with EFAULT. [Jeff Trawick]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Fix a bug parsing configuration file containers. With a sequence
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov like this in the config file
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov (blank line)
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov the second container would be terminated at the blank line due to
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov sediment in the buffer from reading the prior </IfModule> and an
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov error message would be generated for the real </IfModule> for the
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov second container. Also due to this problem, any two characters
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov could be used for "</" in the close of a container.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Jeff Trawick]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) ap_add_filter prototype changed to remove the ctx pointer. The
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov pointer still remains in the filter structure, but it can not be
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov a part of the ap_add_filter prototype. The reason is that when
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov the core uses AddFilter to add a filter to the stack it doesn't
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov know how to allocate the ctx pointer, or even how much memory should
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov be allocated. The filters will have to be responsible for allocating
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov the ctx memory when they need it.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Add an AddFilter directive. This directive takes a list of filters
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov that should be activated for the requested resource.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) apr_snprintf(): Get quad format strings working on OS/390 (and perhaps
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov some other platforms). [Jeff Trawick]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Modify mod_include to be a filter. Currently, it has only been tested
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov on actual files, but it should work for CGI scripts too.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) apr_putc(), apr_puts() for Unix: handle buffered files and interrupted
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov writes. apr_flush() for Unix: handle interrupted writes.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Jeff Trawick]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) NameVirtualHost can now take "*" as an argument instead of
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov an IP address. This allows you to create a purely name-based
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov virtual hosting server that does not have any IP addresses in
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov the configuration file and which ignores the local address
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov of any connections. PR #5595, PR #4455 [Tony Finch]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Fix some compile warnings in mod_mmap_static.c
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Mike Abbott <mja@sgi.com>]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Fix chunking problem with CGI scripts. The general problem was that
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov the CGI modules were adding an EOS bucket and then the core added an
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov EOS bucket. The chunking filter finalizes the chunked response when it
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov encounters an EOS bucket. Because two EOS buckets were sent, we
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov finalized the response twice. The fix is to make sure we only send one
6849994e8263545ed3c0f6f5676e47b38e14f63eSebastien Roy EOS, by utilizing a flag in the request_rec.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) apr_put_os_file() now sets up the unget byte appropriately on Unix
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov and Win32. Previously, the first read from an apr_file_t set up via
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov apr_put_os_file() would return a '\0'. [Jeff Trawick]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Mod_cgid now creates a single element bucket brigade, with a pipe
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov bucket, instead of using BUFF's and ap_r*.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) APRVARS.in no longer overwrites the EXTRA_LIBS variable.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Mike Abbott <mja@sgi.com>]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Remove ap_bopenf from buff code. This required modifying the file_cache
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov code to use APR file's directly instead of going through BUFFs.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Fix compile break on some platforms for mod_mime_magic.c
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [John K. Sterling <sterling@covalent.net>]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Fix merging of AddDefaultCharset directive.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov PR #5872 (1.3) [Jun Kuriyama <kuriyama@imgsrc.co.jp>]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Minor revamp of the rlimit sections of code. We now test
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov explicitly for setrlimit and getrlimit. Also, unixd_set_rlimit()
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov is now "available" even if the platform doesn't support
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov the rlimit family (it's just a noop though). [Jim Jagielski]
6849994e8263545ed3c0f6f5676e47b38e14f63eSebastien Roy *) Migrate the pre-selection of which MPM to use for specific
6849994e8263545ed3c0f6f5676e47b38e14f63eSebastien Roy platforms to hints.m4, which contains (or should contain)
6849994e8263545ed3c0f6f5676e47b38e14f63eSebastien Roy all platform specific "hints". [Jim Jagielski]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Remove IOLs from Apache. With filtering, IOLs are no longer necessary
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Add tables with non-string/binary values to APR.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Fix some bad calls to ap_log_rerror() in mod_rewrite.
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy [Jeff Trawick]
ca5345b6a28e9e9bfd0c135121d62c6b35a5390dSebastien Roy *) Update PCRE to version 3.2. [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Change the way buckets' destroy functions are called so that
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov they can be more directly used when changing the type of a
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov bucket in place. [Tony Finch]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Add generic support for reference-counting the resources used by
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov buckets, and alter the HEAP and MMAP buckets to use it. Change
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov the way buckets are initialised to support changing the type of
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov buckets in place, and use it when setting aside TRANSIENT buckets.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov Change the implementation of TRANSIENT buckets so that it can be
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov mostly shared with IMMORTAL buckets, which are now implemented.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Tony Finch]
62dadd654b88164ac263978699c78aa01647a39bYuri PankovChanges with Apache 2.0a6
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Add support to Apache and APR for dsos on OS/390. [Greg Ames]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Add a chunking filter to Apache. This brings us one step closer
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov to removing BUFF. [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) ap_add_filter now adds filters in a LIFO fashion. The first filter
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov added to the stack is the last filter to be called. [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Apache 2.0 has been completely documented using Scandoc. The
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov docs can be generated by running 'make docs'. [Ryan Bloom]
6849994e8263545ed3c0f6f5676e47b38e14f63eSebastien Roy *) Add filtered I/O to Apache. This is based on bucket brigades,
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov Currently the buckets still use BUFF under the covers, but that
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov should change quickly. The only currently written filter is the
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov core filter which just calls ap_bwrite. [The Apache Group]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) APR locks on Unix: Let APR_LOCKALL locks work when APR isn't
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov built with thread support. [Jeff Trawick]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Abort configuration if --with-layout was specified and there's
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov no layout definition file. [Ken Coar]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Add support for '--with-port=n' option to configure. [Ken Coar]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Add support for extension methods for the Allow response header
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov field, and an API routine for accessing r->allowed and the
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov list of extension methods in a unified manner. [Ken Coar]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) mod_cern_meta: fix broken file reading loop in scan_meta_file().
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Rob Simonson <simo@us.ibm.com>]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Get xlate builds working again. The apr renaming in 2.0a5 broke
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov APACHE_XLATE builds. [Jeff Trawick]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) A configuration file parsing problem was fixed. When the
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov configuration file started with an IfModule/IfDefine container,
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov only the last statement in the container would be retained.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Jeff Trawick]
62dadd654b88164ac263978699c78aa01647a39bYuri PankovChanges with Apache 2.0a5
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Perchild is serving pages after passing them to different child
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov processes. There are still a lot of bugs, but this does work. I
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov have made requests against the same installation of Apache, and had
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov different servers use different user IDs to serve the responses.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov This change moves to using socketpair instead of an AF_UNIX socket.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Perchild MPM still doesn't work perfectly, but it is serving pages.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov It can't seem to pass between child processes yet, but I think we
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov are closer now than before. This moves us back to using Unix
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov Domain Sockets. [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) libapr functions and types renamed with apr_ prefix.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov #include "apr_compat.h" for 1.3.x backwards compat
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Fix problems with APR sockaddr handling on Win32. It didn't always
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov return the right information on the local socket address.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Gregory Nicholls <gnicholls@level8.com>]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) ap_recv() on Win32: Set bytes-read to 0 on error.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Gregory Nicholls <gnicholls@level8.com>]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Add an option to not detach from the controlling terminal without
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov going into single process mode. This allows for much easier
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov debugging of the process startup code. [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) ab: don't use perror() to report the failure of an APR function.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Jeff Trawick]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Make dexter, mpmt_pthread, and perchild MPMs not destroy the
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov scoreboard on graceful restarts.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Fix segfault/SIGSEGV when running gzip from mod_mime_magic.c.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov An invalid ap_proc_t was passed to ap_create_process().
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Jeff Trawick]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Allow modules to register filters. Those filters are still
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov never called, but this is a step in the right direction.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Ryan Bloom and Greg Stein]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Register the mod_cgid daemon process for cleanup so that it is
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov killed at termination if it does not die when the parent gets
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov SIGTERM. This change is to fix occasional problems where the
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov process stays around. Bugs in similar logic in mod_rewrite and
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov mod_include were also fixed. [Jeff Trawick]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Fix a bug in the time handling. Basically, we were imploding a time
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov in ap_parseHTTPdate, but it had bogus data in the exploded time format.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov Namely, tm_usec and tm_gmtoff were not filled out. ap_implode_time
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov uses those two fields to adjust the time value. Because of the HTTP
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov spec, both of those values can be zero'ed out safely. This fixes
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov the bug correctly. [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Fix a couple of place in the Windows code where the wrong error
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov code was being returned. [Gregory Nicholls <gnicholls@level8.com>]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Fix POOL_DEBUG (at least for prefork mpm). [Dean Gaudet]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Added the APR_EOL_STR macro for platform dependent differences in
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov logfiles and other raw text (such as all APR files). Fixes logfiles
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov not terminated with cr/lf sequences in Win32. [William Rowe]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Move all strings functions in APR to src/lib/apr/strings and create
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov apr_strings.h for the prototypes. [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) APR lock fixes: when using SysV sems, flock(), or fcntl(), be sure
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov to repeat the syscall until we stop getting EINTR. I noticed a
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov related problem at termination (SIGTERM) on FreeBSD when using
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov fcntl(). Apache 1.3 had these new loops too. Also, make the flock()
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov implementation work properly with child init. Previously, ap_lock()
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov was essentially a no-op because all children were using different
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov locks and thus nobody ever blocked. [Jeff Trawick]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) The htdocs/ tree has been moved out of the CVS source tree into
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov a separate area for easier development. This has NO EFFECT on
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov end-users or Apache installations. [Ken Coar]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Integrate the mod_dav module for WebDAV protocol handling. This
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov adds the dav and dav_fs modules, the SDBM library, and additional
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov XML handling utilities. [Greg Stein]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Clean out obsolete names (from httpd.h) for the HTTP Status Codes
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Greg Stein]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Update the lib/expat-lite/ library (bring forward changes from
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov the Apache 1.3 repository). [Greg Stein]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) If sizeof(long long) == sizeof(long), then prefer long in APR
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov configure.in. [Dave Hill <ddhill@zk3.dec.com>]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Add ap_sendfile for Tru64 Unix. Also, add an error message for
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov machines where sendfile is detected, but nobody has written ap_sendfile.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Dave Hill <ddhill@zk3.dec.com>]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Compile fixes in mod_mmap_static. [Victor J. Orlikowski]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) ab would start up more connections than needed, then quit when the
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov desired number were finished. Also fixed a logic error involving
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov ab keepalives. [Victor J. Orlikowski]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) WinNT: Implement non-blocking pipes with timeouts to communicate
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov with CGIs. Apache 2.0a4 had non-blocking pipes but without
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov timeouts (i.e, if a timeout was specified, the pipe reverted to
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov a full blocking pipe). Now the behaviour is more in line with
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov Unix non-blocking pipes.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Bill Stoddard]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) WinNT: Implement accept socket reuse. Using mod_file_cache to
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov cache open file handles along with accept socket reuse enables
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov Apache 2.0 to serve non-keepalive requests for static files at
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov 3x the rate of Apache 1.3.(e.g, Apache 1.3 will serve 400 rps
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov and Apache 2.0 will serve almost 1200 rps on my system).
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Bill Stoddard]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Merge mod_mmap_static function into mod_file_cache. mod_file_cache
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov supports two config directives, mmapfile (same behavious as
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov mod_mmap_static) and cachefile. Use the cachefile directive
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov to cache open file handles. This directive only works on systems
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov that have implemented the ap_sendfile API. cachefile works today
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov on Windows NT, but has not been tested on any flavors of Unix.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Bill Stoddard]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Cleanup the configuration. With the last few changes the
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov configuration process automatically:
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov inherits information about how to build from APR. Allowing
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov APR to inform Apache that it should or should not use -ldl
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov Detects which mod_cgi should be used mod_cgi or mod_cgid,
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov based on the threading model
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov Apache calls APR's configure process before finishing it's
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov configuration processing, allowing for more information flow
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov between the two.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Change Unix and Win32 ap_setsockopt() so that APR_SO_NONBLOCK
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov with non-zero argument makes the socket non-blocking. BeOS and
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov OS/2 already worked this way. [Jeff Trawick]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) ap_close() now calls ap_flush() for buffered files, so write
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov operations work a whole lot better on buffered files.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Jeff Trawick]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Fix error messages issued from MPMs which explain where to change
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov compiled-in limits (e.g., ThreadsPerChild, MaxClients, StartTreads).
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) ap_create_pipe() now leaves pipes in blocking state. (This helps
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov reduce the number of syscalls on Unix.) ap_set_pipe_timeout() is
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov now the way that the blocking state of a pipe is manipulated.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov ap_block_pipe() is gone. [Jeff Trawick]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Correct the problem where the only local host name that the IP stack
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov can discover are 'undotted' private names. If no fully qualified
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov domain name can be identified, the default ServerName will be set to
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov the machine's IP address string. A warning is always provided if the
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov ServerName not specified, but assumed. Solves PR6215 [William Rowe]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Repair problems with config file processing which caused segfault
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov at init when virtual hosts were defined and which caused ServerName to
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov be ignored when there was no valid DNS setup. [Jeff Trawick]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Removed pointless ap_is_aborted macro function. [Roy Fielding]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Add ap_sendfile implementation for AIX
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Victor J. Orlikowski]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Repair C++ compatibility in ap_config.h, apr_file_io.h,
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Tyler J. Brooks <tylerjbrooks@home.com>, Jeff Trawick]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Bring the allocation and pool debugging code back into a working
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov state. This will need to be tested as so far it's only been used on
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov BeOS. [David Reid]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Change configuration command setup to be properly typesafe when in
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov maintainer mode. Note that this requires a compiler that can initialise
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov unions. [Ben Laurie]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Turn on buffering for config file reads. Part of this was to
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov repair buffered I/O support in Unix and implement buffered
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov ap_fgets() for all platforms. [Brian Havard, Jeff Trawick]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Win32: Fix problem where UTC offset was not being set correctly
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov in the access log. Problem reported on news group by Jerry Baker.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Bill Stoddard]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Fix segfault when reporting this type of syntax error:
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov "</container> without matching <container> section", where
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov container is VirtualHost or Directory or whatever.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Jeff Trawick]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Prevent the source code for CGIs from being revealed when using
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov mod_vhost_alias and the CGI directory is under the document root
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov and a user makes a request like http://www.example.com//cgi-bin/cgi
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov as reported in <news:960999105.344321@ernani.logica.co.uk>
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Tony Finch]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Add support for the new Beos NetwOrking Environment (BONE)
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) xlate: ap_xlate_conv_buffer() now tells the caller when the
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov final input char is incomplete; ap_bwrite_xlate() now handles
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov incomplete final input chars. [Jeff Trawick]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Yet another update to saferead/halfduplex stuff -- need to ensure
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov that a bhalfduplex call occurs before logging or else DNS and
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov such can delay the last packet of the response. [Dean Gaudet]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Some syscall reduction in APR on unix -- don't seek when setting
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov up an mmap; and don't fcntl() more than once per socket.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Dean Gaudet]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) When mod_cgid is started as root, the cgi daemon now switches
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov to the configured User/Group (like other httpd processes)
6849994e8263545ed3c0f6f5676e47b38e14f63eSebastien Roy instead of continuing as root. [Jeff Trawick]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) The prefork MPM now uses an APR lock for the accept() mutex.
6849994e8263545ed3c0f6f5676e47b38e14f63eSebastien Roy It has not been getting a lock at all recently. httpd -V now
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov displays APR's selection of the lock mechanism instead of the
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov symbols previously respected by prefork. [Jeff Trawick]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Change the mmap() feature test to check only for existence.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov The previous check required features not used by Apache.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Fix a couple of bugs in mod_cgid: The cgi arguments were
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov sometimes mangled. The len parm to accept() was not
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov initialized, leading sometimes to an endless loop of failed
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov accept() calls on OS/390 and anywhere else that failed the call
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov if the len was negative. Use <sys/un.h> for struct sockaddr_un
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov instead of declaring it ourselves to fix a compilation problem
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov on Solaris. [Jeff Trawick]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Add Resource limiting code back into Apache 2.0. [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Fix zombie process problem with mod_cgi. [Jeff Trawick]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Port mod_mmap_static to 2.0. Make it go faster. [Greg Ames]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Fix storage overlay when loading dsos. Symptom: Apache dies at
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov initialization if ALLOC_DEBUG is defined; no known symptom
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov otherwise. [Jeff Trawick]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Fix typo in configure script when checking for mod_so. bash
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov doesn't seem to have a problem but /bin/sh on Solaris does.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov Symptom: "./configure: test: unknown operator =="
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Jeff Trawick]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Rebind the Win32 NT and 9x services control into the MPM.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov All console, WinNT SCM and Win9x pseudo-service control code is
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov now wrapped within the WinNT MPM.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [William Rowe]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Make a copy of getenv("PATH") before storing for later use. Some
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov getenv() implementations use the same storage for successive calls.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov CGIs on OS/390 had a bad PATH due to this. [Jeff Trawick]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Server Tokens work in 2.0 again. This also propogates the change
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov to allow just the product name in the server string using
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov PRODUCT_ONLY.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri PankovChanges with Apache 2.0a4
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) EBCDIC: Rearrange calls to ap_checkconv() so that most handlers
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov won't need to call it. [Greg Ames, Jeff Trawick]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Move pre_config hook call to between configuration read and config
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov tree walk. This allows all modules to implement pre_config hooks
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov and know that they will be called at an appropriate time.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) mod_cgi, mod_cgid: Make ScriptLog directive work again.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Jeff Trawick]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Add pre-config hooks back to all modules.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Fix a SIGSEGV in ap_md5digest(), which is used when you have
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov ContentDigest enabled and we can't/don't mmap the file.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Jeff Trawick]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) We now report the correct line number for syntax errors in config
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov files. [Ryan Bloom, Greg Stein, Jeff Trawick]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Brought mod_auth_digest up to synch with 1.3, fixed ap_time_t-
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov related bugs, and changed shmem/locking to use apr API. Shared-mem
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov is currently disabled, however, because of problems with graceful
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov restarts. [Ronald Tschal�r]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Fix corruption of IFS variable in --with-module= handling.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov Depending on the user's shell or customization thereof, there
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov would be errors generating ap_config_auto.h later in the configure
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov procedure. [Jeff Trawick]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) mod_cgi: Restore logging of stderr from child process when ScriptLog
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov isn't used (as in 1.3), except that on Unix it is now logged via
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov ap_log_rerror() instead of by the child having STDERR_FILENO refer
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov to the error log. [Greg Ames, Jeff Trawick]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Add '-D' argument processing for run time configuration defines.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [William Rowe]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Organize http_main.c as independent code, such that no code or
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov global data is exported from it. WIN32 will dynamically link it
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov to the server core, so this will prevent mutual dependency.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [William Rowe]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Add separate dynamic linkage tags APR_EXPORT(), APR_EXPORT_NONSTD()
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov and APR_VAR_EXPORT to correctly resolve apr functions and globals.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [William Rowe]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Add Win9x service execution and Ctrl+C/Ctrl+Break/Shutdown handlers.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [William Rowe, Jan Just Keijser <KEIJSERJJ@logica.com>]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Add mod_charset_lite for configuring character set translation.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Jeff Trawick]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Add '-n' option to htpasswd to make it print its user:pw record
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov on stdout rather than having to frob a text file. [Ken Coar]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) Fix saferead. Basically, we flush the output buffer if a read on the
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov input will block.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Ryan Bloom]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) APR: Add ap_xlate_get_sb() so that an app can find out whether or not
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov a conversion is single-byte only. [Jeff Trawick]
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov *) BEOS: ap_shutdown should return APR_SUCCESS or errno. Note that
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov the BeOS 5.0 documentation says that shutdown doesn't work yet.
62dadd654b88164ac263978699c78aa01647a39bYuri Pankov [Roy Fielding]
in 1.3's ebcdic.c. [Jeff Trawick]
buffer if the implementation knows how to use it (i.e., if L_tmpnam
*) Configure creates config.nice now containing your configure
options. Syntax: ./config.nice [--more-options]
*) Fix mm's memcpy/memset macros, pointer arithmetic was broken.
*) The ab program in the src/support directory is now portable using
*) Finished move of ap_md5 routines to apr_md5. Removed ap_md5.h.
Apache.dsw created to bring together all the pieces. Create new file
os/win32/BaseAddr.ref to define module base addresses (to prevent
*) More FAQs and answers from comp.infosystems.www.servers.unix.
fix up from Apache 1.3. #include'ing "ap_mpm.h" fixes up an
we can use ReadFileScatter and WriteFileGather in readwrite.c.
fixes to mod_so.c.
Makefile.win includes the same user interface as the old
*) Put in Korean and Norwegian index.html pages (2.0 and 1.3)
config file. E.g. 'ServerAdmin ${POSTMASTER}'. As commited
it does this on a line by line basis; i.e. if the envvar
ErrorDocument XXX /local/uri
ErrorDocument XXX http://valid/url
*) Changed 'CacheNegotiatedDocs' from its present/not-present
done with --with-module=/path/to/module. Modules can only be added
*) Enable Apache to use sendfile/TransmitFile API
*) Make file I/O and network I/O writev/sendv APIs consistent.
bytes_read/bytes_written is always valid (never -1). Plus
some fixes to buff.c to correct problems introduced by the
*) buff.c has been converted to no longer use errno.
automatically for developers from src/Configure.
*) Fixed building of src/support/htpasswd.c
*) Moved mod_auth_digest.c from experimental to standard. [Roy Fielding]
*) Support line-continuation feature in config.option file and
*) Implement WINNT Win32 MPM from original Win32 code in http_main.c
(per default used the config.option file).
calling order to be specified on a per-hook/per-module basis.
*) os/unix/unixd.[ch]: detach, setuid, setgid, stuff which will be common
*) mpm_prefork: throw away all the alarm/timeout crud; and clean up the
of alloc.c for now. [Dean Gaudet]
based on IP/port. [Ben Laurie]
*) I/O layering and BUFF revamp. See docs/buff.txt. [Dean Gaudet]
docs/initial_blurb.txt. [Dean Gaudet]
an absolute path to the ./libexec directory where the libhttp.ep file
routines are now called ap_base64* and are 'plain' (i.e., no
pool access or anything clever). Inside util.c the routines acting
*) Fixed assumption of absolute paths in binbuild.sh. [Tony Finch]
src/support/httpd.exp. [Bill Stoddard, Randy Terbush]
*) Make ap_sha1.c compile for EBCDIC platforms: replace remaining LONG
*) PORT: Improved compilation and DSO support on Sequent DYNIX/ptx.
*) Local struct mmap in http_core.c conflicted with system structure
*) Added updated mod_digest as modules/experimental/mod_auth_digest.
*) CIDR addresses such as a.b.c.d/24 where d != 0 weren't handled
*) RewriteLock/RewriteMap didn't work properly with virtual hosts.
*) PORT: Support for compaq/tandem/com.
Netscape servers. See support/SHA1 for more information.
Caused the separation of ap_md5.c into md5, sha1 and a general
ap_checkpass.c with just a validate_passwd routine. Added a
couple of flags to support/htpasswd. Some reuse of the to64()
with ASCII/EBCDIC conversions in "ident" query.
are combined, and duplicate tokens (e.g., "Vary: host, host" or
install the DSO; useful for editing httpd.conf with apxs. Fix
create duplicate LoadModule/AddModule entries; apxs can now be
used to re- enable/disable a module. [Wilfredo Sanchez]
Win 95 users may need to update their TCP/IP stack to pick up
Winsock 2. (See http://www.microsoft.com/windows95/downloads/)
error.log when CGI scripts fail. This makes Apache on Win32
*) Fix `make r' test procedure in src/regex/: ap_isprint was not found.
*) Add DSO support for DGUX 4.x using gcc. Tested on x86 platforms.
*) Add the new mass-vhost module (mod_vhost_alias.c) developed and
parent/child process management code.
*) Fix ndbm.h include problems with brain-dead glibc >= 2.1 which
has ndbm.h in a non-standard db1/ subdir. PR#4431, PR#4528
*) Determine AP_BYTE_ORDER for ap_config_auto.h and already
content-types are "text/html;parameters". PR#4524 [Ken Coar]
*void. When the OS/platform/compiler supports quads, ap_snprintf()
*) Add RULE_EXPAT, the src/lib/ directory structure, and a modified copy
(e.g., HTTP/0.9 or HTTP/1.1) of the request. [Ken Coar]
*) Switch to /bin/sh5 in APACI on Ultrix and friends to avoid problems with
their brain-dead /bin/sh. [Ralf S. Engelschall] PR#4372
*) mod_include's fsize/flastmod should allow only relative paths, just
*) Add iconsdir, htdocsdir, and cgidir to config.layout.
*) Fix minor but annoying bug with the test for Configuration.tmpl
in unix/os.c, and don't install the dyld error handlers, which
*) Add functionality to the install-bindist.sh script created by
binbuild.sh to use tar when copying distribution files to the
install-bindist.sh now detects the local perl5 path to install
src/modules/proxy_util.c where a NULL filepointer and
have assurance about how string manipulators (e.g., tr) will
*) Add "opt" (SysV-style) layout to config.layout. [Raymond S Brand
*) Fix number of bytes copied by read_connection() in src/support/ab.c
*) Make sure RewriteLock can be used only in the global context, (i.e.
uncompress/gzip, but those tools sometimes do not produce
*) PORT: deal with UTS compiler error in http_protocol.c
binary (e.g., image file) in the first place.
*) support/htpasswd now permits the password to be specified on the
apache -n apache1 -i -f c:/httpd.conf
Installs apache as service 'apache1' and associates c:/httpd.conf
Installs apache as service 'apache2'. httpd.conf is located under
the default server root (/apache/conf/httpd.conf).
apache -n apache3 -i -d c:/program files/apache
c:/program files/apache.
*) Correct the signed/unsigned character handling for the MD5 routines;
*) OS/2: Rework CGI handling to use spawn*() instead of fork/exec, achieving
*) proxy ftp: instead of using the hardwired string "text/plain" as
<Directory proxy:ftp://some.host>
DefaultType gargle/blurb
*) Be more smart in APACI's configure script when determining the UID/GID
the number of fork()s from one/request to just the odd one an hour.
*) Added proxy, auth and header support to src/support/ab.c. Added a
README file to src/support/
*) Fix sed-substitutions in `make install': path elements like `httpd/conf'
(for instance from an APACI configure --sysconfdir=/etc/httpd/conf
*) PORT: Add support for FreeBSD 4.x [Ralf S. Engelschall]
the reboot prompt (which is only given if MSVCRT.DLL system
*) WIN32: Apache.exe now contains an icon. [Paul Sutton]
*) Using APACI, the main config file (usually httpd.conf) was
*) Move the directive `ExtendedStatus' in httpd.conf-dist-win _after_ the
DSO/DLL section because it's a directive from mod_status and isn't
against libap.a and use its ap_snprintf() instead of sprintf() to avoid
*) Add Apple's Mac OS X Server Layout "Rhapsody" to config.layout.
*) Add cgidir, htdocsdir, iconsdir variables to Makefile.tmpl in order
*) Use proper pid_t type for saving PIDs in alloc.c. [John Bley]
in http_core.c. [John Bley, Roy Fielding]
*) src/support/: The ApacheBench benchmark program was overhauled by
*) Added -S option to install.sh so that options can be passed to
is *not* given in the argument list; i.e., the logical negation
*) Win32: Add global symbols missing from ApacheCore.def. [Carl Olsen]
to util.c for parsing an HTTP header field value to extract the next
code different from 500. This allows the proxy to, e.g., return
as "com.name" to be served. [Paul Sutton] PR#3769.
make subtasking easier on the OSD/POSIX mainframe environment.
ap_compat.h. [David White <david@persimmon.com>] PR#3725
*) Make NDBM file suffix determination for mod_rewrite more accurate, i.e.
*) Let src/Configure be aware of CFLAGS options starting with plus
signs as it's the case for the HP/UX compiler.
and this makes its functions available to things in src/support.
*) WIN32: Created new makefiles Makefile_win32.txt (normal build)
and Makefile_win32_debug.txt (debug build) that work on Win95.
nmake /f Makefile_win32.txt # compiles normal build
nmake /f Makefile_win32.txt install # compiles and installs
nmake /f Makefile_win32.txt clean # removes compiled junk
nmake /f Makefile_win32_debug.txt # compiles debug build
nmake /f Makefile_win32_debug.txt install
nmake /f Makefile_win32_debug.txt clean
*) Small fix for mod_env.html: The module was documented as to be _not_
*) Instead of fixing a bug in the generation procedure for config.status (a
making sure the src/support/ tools are _forced_ to be build last (they
*) Fix installation procedure: Now that os-inline.c is actually used (a
recently fixed bug prevented this) we need to also install os-include.c
`escape' and `unescape' were added which can be used to escape/unescape
to/from hex-encodings in URLs parts (this is especially useful in
*) Major overhaul of mod_negotiation.c, part 2.
- added ap_array_pstrcat() to alloc.c for efficient concatenation
*) Major overhaul of mod_negotiation.c, part 1.
revision (draft-ietf-http-v11-spec-rev-06.txt).
e.g. no feature negotiation). Removed old experimental version.
negotiation results are consistent across backup/restores and mirrors
*) RFC2396 allows the syntax http://host:/path (with no port number)
*) When modules update/modify the file name in the configfile_t structure,
*) The hashbang emulation code in ap_execve.c would interpret
#!/hashbang/scripts correctly, but failed to fall back to a
o fixed auto-suffix handling now that config.layout exists.
config.layout and every path now can be marked this way (not only the
SINGLE_LISTEN_UNSERIALIZED_ACCEPT to NetBSD/OpenBSD section
of ap_config.h to allow serialized accept for multiport listens.
*) PORT: Fixed a misplaced #endif for NetBSD/OpenBSD section
of ap_config.h that would skip several defines if DEFAULT_GROUP
strcasecmp, so allow it in ap_config.h. [Amiel Lee Yee] PR#3247
*) Fix ordering of definitions in ap_config.h so that ap_inline is
*) Make generation of src/Configuration.apaci more robust: It failed to
another (e.g. cgi vs. fastcgi). We now check for mod_XXX, libXXX and even
*) In src/Configure remove the SERVER_SUBVERSION support (already deprecated
*) Allow special options -Wc,xxx and -Wl,xxx on APXS compile/link command.
IS to the compiler/linker command. [Ralf S. Engelschall]
config.layout. Custom layouts are possible by using FILE:ID as the
The config.layout file consists of <Layout ID>..</Layout> sections
extension (e.g., .fr, .de) can be labelled as being some other
*) mod_include.c:handle_perl() now properly tests for OPT_INCNOEXEC
*) Updated mime.types to reflect current Internet media types
Improved mod_actions.c so that it can use any of the methods
defined in httpd.h. Added ap_method_number_of(method) for
*) Fix problems with handling of UNC names (e.g., \\host\path)
*) Move a typedef to fix compile problems on Linux with 1.x kernels.
*) http_config.c would respond with 501 (Method Not Implemented) if a
should have been a 500 response. Likewise, mod_proxy.c would responsd
on-the-fly/batch permute the order of two modules (mod_foo and mod_bar)
mod_foo with the begin of the module list, i.e. it `moves' the module to
which permutes mod_foo with the end of the module list, i.e. it `moves'
on container start lines (e.g., it wouldn't spot
*) Fix Berkeley-DB/2.x support in mod_auth_db: The data structures were not
httpd.conf-dist* files. The srm and access files now contain
only comments, and httpd.conf has all the combined contents in
*) PORT: DSO/ELF support for FreeBSD 3.0.
*) Fix http://localhost/ hints in top-level INSTALL document.
ap_config.h. [Brian Havard]
*) PORT: Add Pyramid DC/OSx support to configuration mechanism.
*) PORT: Fix sys/resource.h handling for Amdahl's UTS 2.1
*) Correct comment in mod_log_config.c about its internals.
handle the creation of modules.c [Jim Jagielski]
and to avoid problems under platforms where only version 2.x is present.
*) Remove redundant substitutions in top-level Makefile.tmpl.
platforms where `nogroup' exists in /etc/group. [Ralf S. Engelschall]
the possibility to override it manually via APACI or src/Configuration.
existance of the file under /usr/include, too.
*) Fix possible buffer overflow situation in suexec.c.
*) Fix documentation of ProxyPass/ProxyPassReverse according to the
in /home/user, not in /, therefore clicking on "../" in the
dump core for replies with invalid headers (e.g., duplicate
plop gmon.out profile data for each child [Doug MacEachern]
config.status script to be immune against arguments with whitespaces.
script `buildinfo.sh' which is both more flexible and already proofed to
*) Make ab.c again pass ``gcc -Wall -Wshadow -Wpointer-arith -Wcast-align
*) Remove bad reference to non-existing SERVER_VERSION in mod_rewrite.html
*) Bump up MAX_ENV_FLAGS in mod_rewrite.h from the too conservatice limit of
variables in one RewriteRule and had to patch mod_rewrite.h for every
*) Make sure the config.status file is not overridden when just
See include/ap_mmn.h for more details. [Randy Terbush]
*) Cleanup of the PrintPath/PrintPathOS2 helper functions. Avoid
following the same idea as "MSVC vs WIN32". Additionally the src/os/emx/
directory was renamed to src/os/os2/ for consistency.
linking the DSOs, i.e. PIC libs and shared libs. Currently the rule is
*) Add correct `model' MIME types from RFC2077 to mime.types file.
*) Fixed examples in mod_rewrite.html document.
*) Update the mod_rewrite.html document to correctly reflect the situation
Makefile.tmpl: The umask+cp approach didn't work as expected (especially
*) Fix `distclean' and `clean' targets in src/Makefile.tmpl to have same
src/helper/mkdir.sh script. [Ralf S. Engelschall]
`search' entries in /etc/resolv.conf.
INSTALL file because a lot of users don't read htdocs/manual/dso.html
[Knut A.Syed <Knut.Syed@nhh.no>] PR#2674
(compilers complained) and the .so.V.R.P filename extension was adjusted
*) Disable the incorrect entry for application/msword in the
*) Fix broken RANLIB handling in src/Configure (the entry from
src/Configuration.tmpl was ignored) and additionally force RANLIB to
*) Autogenerate some HAVE_XXXXX_H defines in conf_auto.h (determined via
TestCompile) instead of defining them manually in conf.h based on less
OS-type and/or OS-version identifiers to discover whether a system header
required by HTML 3.2 and later) to mod_mime_magic's conf/magic.
*) Add Dynamic Shared Object (DSO) support for SCO5 (OpenServer 5.0.x).
*) Fix the Guess-DSO-flags-from-Perl stuff in src/Configure: "perl" was
*) PORT: remove broken test for MAP_FILE in http_main.c.
*) PORT: Change support/apachectl to use "kill -0 $pid" to test if the
but case-insensitive platforms). New #define for this added to conf.h
*) Enable DSO support for OpenBSD in general, not only for 2.x, because it
also works for OpenBSD 1.x. [Ralf S. Engelschall]
of a config.status script (as GNU Autoconf does) which remembers the used
*) Correct initialization of variable `allowed_globals' in http_main.c
multipart/x-mixed-replace;boundary=ThisRandomString.
modules/xxx/Makefile's to avoid problems with SVR4 Make under "full-DSO"
<Directory /> section of the default access.conf-dist
*) Fix symbol export list (src/support/httpd.exp) after recent
solved by another helper script findprg.sh which searches for Perl and
*) Remove the system() call from htpasswd.c, which eliminates a system
dependancy. ["M.D.Parker" <mdpc@netcom.com>] PR#2332
*) PORT: helpers/GuessOS updates for various versions for NCR SVR4.
*) Fix recently introduced Win32 child spawning code in mod_rewrite.c which
configure and src/Configure depend on this.
*) Changes usage of perror/fprintf to stderr to more proper ap_log_error
*) PORT: QNX needed a #include <sys/mman.h>; and now it uses flock
spawn_child was obsoleted and moved to compat.h
*) Fix src/support/httpd.exp (DSO export file which is currently only
``RewriteRule ^myscript$ - [T=application/x-httpd-cgi]'' This was often
*) Fix discrepancy in proxy_ftp.c which was causing failures when
*) Support for the NCR MP/RAS 3.0
*) The LDFLAGS_SHLIB_EXPORT variable of src/Configuration[.tmpl] was
not retrieved in src/Configure and thus was not useable.
- SUBDIRS is now generated in src/Makefile only and not in
Makefile.config because it is a local define for this location.
- update the "depend" targets in Makefile.tmpl files to use $(OSDIR), too.
- replaced SHLIB_OBJS/SHLIBS_OBJ consistently with OBJS_PIC because OBJS
- replaced ugly xx-so.o/xx.so-o hack with a clean and consistent usage
of xxx.lo as GNU libtool does with its PIC objects
- reduce local complexity in modules Makefile.tmpl by moving the last
*) WIN32: Make Win32 work again after the /dev/null DoS fix.
*) When opening "configuration" files (like httpd.conf, htaccess
and htpasswd), Apache will not allow them to be non-/dev/null
necessary. Long-term fix is to either serialize the chdir/spawn combo
htdocs/manual/suexec.html document before using the suexec-related
and htdocs/manual/suexec.html documents.
UID/GID and safe PATH, too.
- overhauled mkshadow.sh script: now its more IFS-safe and approx. twice
*) Add a note to httpd.conf-dist that apache will on some systems fail
and not the original statically list from modules.c
confusion with the next point and reduces the Makefile.tmpl complexity
6. The modules.c generation was extended to now contain two
of loading/linking (we use load=link+load & link=activate instead of
*) Fix the generated mod_xxx.c from "apxs -g -f xxx" after the
*) Add a comment to mod_example.c showing the format of a FLAG command
places in the code (e.g. DATE_GMT). PR#1551
*) get/set_module_config are trivial enough to be better off inline. Worth
*) Fix off-by-one error in ap_proxy_date_canon() in proxy_util.c
*) Fix debug log messages for BS2000/OSD: instead of logging the whole
*) Make sure the referer_log and agent_log entries in the default httpd.conf
*) WIN32: Make roots of filesystems (e.g. c:/) work. [Ben Laurie]
from mod_so.c to Configure because first it needs $PLAT etc. and second
AIX variants should work fine, too. Even AIX 3.x should work). This is
which we put into a os/unix/os-dso-aix.c file.
*) Fix two bugs in select() handling in http_main.c.
side-effect this reduces some subdir fiddling in configure+Makefile.tmpl.
"make root=/tmp/apache install" for rolling the package without bristling
*) Workaround braindead AWK's when generating ap_config.h: The split() and
*) Fix DEBUG_CGI situation in mod_cgi.c [David MacKenzie] PR#2114
*) Make sure that "make install" doesn't overwrite the `mime.types' and
*) PORT: Dynamic Shared Object (DSO) support for OpenBSD 2.x
variables) to avoid side-effects in "src/Configure" when the user
*) Provide backward compatibility from some old src/Configuration.tmpl
*) NeXT required strdup() in support/logresolve.c
ap_snprintf, and ap_psprintf). See include/ap.h for docs.
*) Because /usr/local/apache is the default prefix the ``configure
to `char *' under OSF1 and FreeBSD 2.x where it is defined this way
*) PORT: Make sure some AWK's don't fail in src/Configure with "string too
long" errors when generating the MODULES entry for src/Makefile
*) Make sure src/Configure doesn't complain about the old directory
/usr/local/etc/httpd/ when APACI is used. [Lars Eilebrecht]
*) Adding DSO support for the HP/UX platform by emulating the dlopen-style
interface via the similar but proprietary HP/UX shl_xxx-style system
APACI Makefile.tmpl "install" target more robust for sensible UnixWare
- Apache provided general functions (e.g., ap_cpystrn)
- Public API functions (e.g., palloc, bgets)
cross-object usage) but should be (e.g., new_connection)
For backward source compatibility a new header file named compat.h was
dummy.so file (containing dummy references to all global symbols) the
Placing the Apache core code itself into a DSO library named libhttpd.so.
where we perhaps exploit this libhttpd.so mechanism for providing nifty
inside the src subtree (i.e. for non-APACI users). Following GNU Makefile
to the mak/dsp files. [Alexei Kosut]
*) Add documentation file and src/Configuration.tmpl entry for the
*) Now src/Configure uses a fallback strategy for the shared object support
and installation of the support tools from the src/support/ area.
dynamic shared object (DSO) mechanism [mod_so.c]. The trick here is that
Apache C header files (PREFIX/include) and the new APXS tool
(SBINDIR/apxs). The intend is to provide a handy tool for third-party
modules, from trivial ones (single mod_foo.c) to complex ones (like PHP3
*) Modify the log directives in httpd.conf-dist files to use CustomLog
script and a corresponding top-level "Makefile.tmpl" file. The goal is
the old src/Configure stuff in batch and additionally installs the
routines. Use this to replace http_bprintf.c. Add new routines
is necessary on at least Solaris where the /etc/rc?.d scripts
http://.../cgi-bin/...?http%3A%2F%2F... references) [Martin Kraemer]
the mod_proxy.html and corrected the hyperlink to it in the
new_features_1.3.html document. [Ralf S. Engelschall] PR#1348
*) Fix a bug in the src/helpers/fp2rp script and make it a little bit
*) Add the new ApacheBench program "ab" to src/support/: This is derived
*) src/include/ap_config.h now wraps it's #define's with #ifndef/#endif's
*) [PORT] For A/UX change the OS-#define for -DAUX to -DAUX3.
the ugly export kludge, makes the one-liner file mod_mime.h obsolete, and
*) util.c cleanup and speedup. [Dean Gaudet]
modules as shared objects. Especially Solaris 2.x, SunOS 4.1, IRIX and
*) The Configure script now generates src/include/ap_config.h which
"http://host" url is treated as if a similar "Host:" header had been
supplied. This change was made to support future HTTP/1.x protocols
*) API: Cleanup of code in http_vhost.c, and remove vhost matching
*) API: A new source module main/util_uri.c; It contains a routine
user; /* user name, as in http://user:passwd@host:port/ */
password; /* password, as in http://user:passwd@host:port/ */
a username can contain when trying to expand it via /etc/passwd.
*) Hide Proxy-Authorization from CGI/SSI/etc just like Authorization is
reads fail. ["M.D.Parker" <mdpc@netcom.com>] PR#1827
*) Source file dependencies in Makefile.tmpl files throughout the
htdocs/manual/known_client_problems.html are in the default
(like mod_dld for Win32). This replaces mod_dld.c. Use SharedModule
header files are in the src/include directory. The -Imain -Iap
and mod_rewrite) have not been moved to src/include; nor have
calls that use too small an initial guess, see alloc.c.
because the key/value is a constant, or the value has been built
Note that it is easy to get code subtly wrong if you pass a key/value
safe thing to do is to pass key/values which are in the pool of
i.e. if the table is part of a subrequest, a value from the main
usage, enabled by defining POOL_DEBUG. See alloc.c for more details.
*) API: "typedef array_header table" removed from alloc.h, folks should
HAVE_MMAP/SHMGET #defines strictly are informational that the
Unixware 1.x appears to have the same SIGHUP bug as solaris does with
*) PORT: A/UX can handle single-listen accepts without mutex
*) suexec errors now include the errno/description. [Marc Slemko] PR#1543
*) Some const declarations in mod_imap.c that were added for debugging
*) The src/main/*.h header files have had #ifndef wrappers added to
multiple paths (e.g., in .c files as well as other .h files).
src/ap/ap.h, to ease their use in non-httpd applications. [Ken Coar]
set with SetEnv/BrowserMatch and similar directives.
(the Siemens BS2000/OSD family) in the POSIX subsystem
Located in libap.a. [Jim Jagielski]
alloc.c (affects win32 only). [Ben Hyde]
server itself (like the src/support tools). [Ken Coar]
It also wouldn't handle "AddIconByType (TXT,/icons/text.gif text/*"
htdocs/manual/misc/known_client_problems.html#257th-byte) can happen
can be used by items in src/support among other things.
(e.g., <Directory>) where they're invalid. [Martin Kraemer]
for fgetc() and fgets() on SunOS 4.x. [Martin Kraemer, Ben Hyde]
subdirectory htdocs/manual/vhost/. [Lars Eilebrecht <sfx@unix-ag.org>]
[M.D.Parker] PR#1352
*) Inherit a bugfix to fnmatch.c from FreeBSD sources.
breaking on some systems. [Bhaba R.Misra <system@vt.edu>] PR#1368
*) A mild SIGTERM/SIGALRM race condition was eliminated.
*) Warn user that default path has changed if /usr/local/etc/httpd
*) PORT: On AIX 1.x files can't be named '@', fix the proxy cache
Document this a bit more in src/PORTING. [Dean Gaudet] PR#467
*) WIN32: Make index.html and friends work under Win95. [Ben Laurie]
*) Default pathname has been changed everywhere to /usr/local/apache
*) PORT: UnixWare 2.x requires -lgen for syslog.
[M.D.Parker <mdpc@netcom.com>] PR#1284
*) New support tool: src/support/split-logfile, a sample Perl script which
*) Makefile.tmpl was not using $CFLAGS in the link phase.
*) Add debugging code to alloc.c. Defining ALLOC_DEBUG provides a
Purify. See main/alloc.c for more details. [Dean Gaudet]
be used for whatever reason is appropriate (i.e. format() warnings
gcc >= 2.7.x (so that we have fewer support issues with older
Also removed the auto-generated link to www.apache.org that was the
*) suexec.c wouldn't build without -DLOG_EXEC. [Jason A. Dour]
*) Fixed error in proxy_util.c when looping through multiple host IP
buffered writes -- that is, it will buffer up to PIPE_BUF (i.e. 4k)
*) API: New register_other_child() API (see http_main.h) which allows
*) API: New piped_log API (see http_log.h) which implements piped logs,
Some things (like RewriteMaps) were checked/performed even if they
*) Removal of mod_auth_msql.c from the distribution. There are many
http://modules.apache.org/ It would be nice to offer a generic
Makefile on the fly based on Makefile.tmpl and Configuration.
*) support/httpd_monitor is no longer distributed because the
the headers/contents of the request. It does not run during subrequests
USE_xxx_SERIALIZED_ACCEPT in conf.h. xxx is FCNTL for fcntl(),
- Linux 2.x uses flock instead of fcntl
- Solaris 2.x uses pthreads
*) PORT: The semantics of accept/select make it very desirable to use
Modules can be dropped into modules/extra, or in their own
modules/standard. All other source code is in main. OS-specific
match "/home/a/andrew/public_html", now it only matches things
/dev/tty, etc.)
and cidr syntax (i.e. 10.1.0.0/16). PR#762
Apache would omit the chunk header/footer on the next block. Cleaned
e.g. when max_requests_per_child is reached, etc.
*) PORT: QNX mmap() support for faster/more reliable scoreboard handling.
setting. The define MAX_SPAWN_RATE can be used to raise/lower
in a language that by default does buffering (e.g. perl) this
*) PORT: Allow for use of n32bit libraries under IRIX 6.x
*) PORT: Linux: Attempt to detect glibc based systems and include crypt.h
*) PORT: QNX doesn't have initgroups() which support/suexec.c uses.
rect /url.hrm 10 20 30 40
braindead SunOS 4.1.x, allow env variables to be set even on rules with
i.e. now mod_rewrite no longer has a shared copyright. Instead is is
See http_config.h for more details. [Dean Gaudet]
LoadModule/LoadFile directives. Note that module DLLs must be
Module autoindex_module mod_autoindex.o
*) popendir/pclosedir created to properly protect directory scanning.
*) Makefile.nt added - to build all the bits from the command line:
nmake -f Makefile.nt
httpd.h. [Dean Gaudet]
the SFIO library calls sfread/sfwrite if B_SFIO is defined at
*) Turn off chunked encoding after sending terminating chunk/footer
*) SECURITY: When a client connects to a particular port/addr, and
actually be reached via that port/addr. [Ed Korthof <ed@organic.com>]
*) Support virtual hosts with wildcard port and/or multiple ports
and mod_include.c. [Dean Gaudet]
Also removed the auto-generated link to www.apache.org that was the
htdocs/manual/misc/known_client_problems.html#257th-byte) can happen
*) #ifdef wrap a few #defines in httpd.h to make life easier on
*) Fix MPE compilation error in mod_usertrack.c. [Mark Bixby]
should consider comparing against src/modules/standard/mod_include.c
*) suexec.c wouldn't build without -DLOG_EXEC. [Jason A. Dour]
minus WIN32/NT stuff, but plus copyright removement.
under Solaris 2.x (up through 2.5.1). It has been fixed.
lockfile in any location. It previously defaulted to /usr/tmp/htlock.
*) Add a placeholder in modules/Makefile to avoid errors with certain
*) USE_FLOCK_SERIALIZED_ACCEPT is now default for FreeBSD, A/UX, and
redirect flag, e.g. R=permanent, the permanent status was lost.
*) PORT: Support for Maxion/OS SVR4.2 Real Time Unix. [no name given] PR#383
*) PORT: fix problem compiling http_bprintf.c with gcc under SCO
*) Fixed open timestamp fd in proxy_cache.c [Chuck Murcko]
directive and the DEFAULT_TYPE symbol in httpd.h. Changed the value
of DEFAULT_TYPE to match the documented default (text/plain).
*) In mod_proxy.c, check return values for proxy_host2addr() when reading
the connection (e.g., when user presses Stop). Apache will now stop
*) Rearrange Configuration.tmpl so that mod_rewrite has higher priority
htdocs/manual/stopping.html for details on stopping and
*) The default handler now logs invalid methods or URIs (i.e. PUT on an
buffer or write inside buff.c or fread'ing from a CGI's output,
*) Use /bin/sh5 on ULTRIX. [P. Alejandro Lopez-Valencia] PR#369
*) Add UnixWare compile/install instructions. [Chuck Murcko]
*) Add macro for memmove to conf.h for SUNOS4. [Marc Slemko]
*) More signed/unsigned port fixes. [Dean Gaudet]
*) suexec.c doesn't close the log file, allowing CGIs to continue writing
*) Improved generation of modules/Makefile to be more generic for
*) Fixed overlaying of request/sub-request notes and headers in
*) Port to UXP/DS(V20) [Toshiaki Nomura <nom@yk.fujitsu.co.jp>]
*) changed status check mask in proxy_http.c from "HTTP/#.# ### *" to
- Changed send_dir() to remove user/passwd from displayed URL.
select/accept and keep-alive requests, fixed several bugs regarding
*) Tweak byteserving code (e.g. serving PDF files) to work around
Emit Content-Length header when sending multipart/byteranges.
*) Port to HI-UX/WE2. [Nick Maclaren]
regex/regcomp.c since that file also used a NEXT define.
*) Portability Fix: NeXT lacks unistd.h so we wrap it's inclusion
*) Remove mod_fastcgi.c from the distribution. This module appears
continue to be easily available at http://www.fastcgi.com/
*) Fixed bug in modules/Makefile that wouldn't allow building in more
- execution restricted to UID/GID > 100
*) Replace references to make in Makefile.tmpl with $(MAKE).
*) Add ProxyBlock directive w/IP address caching. Add IP address
*) Remove requirement for ResourceConfig/AccessConfig if not using
2. initgroups() on Linux 2.0.x clobbers gr->grid.
*) Reset timeout while reading via get_client_block() in mod_cgi.c
*) Add the ability to pass different Makefile.tmpl files to Configure
*) proxy_http.c bugfixes: [Chuck Murcko]
1) fixes possible NULL pointer reference w/NoCache
*) mod_include.c bugfixes:
*) Added definitions for S_IWGRP and S_IWOTH to conf.h [Ben Laurie]
http_protocol.c [Roy Fielding]
*) Replaced use of index() in mod_expires.c with more appropriate
*) In helpers/CutRule, replaced "cut" invocation with "awk" invocation
*) Updated helpers/GuessOS for ...
SCO UnixWare 2.1.1 (requires a separate set of #defines in conf.h)
and fixed something in helpers/PrintPath [Ben Laurie]
*) Not listed. See <http://www.apache.org/docs/new_features_1_2.html>
*) mod_env now turned on by default in Configuration.tmpl.
b) truncated hostnames/ip address in the logs
*) Not listed. See <http://www.apache.org/docs/new_features_1_1.html>
*) Internal redirects which occur in mod_dir.c now preserve the
*) Fix for POSIX compliance in waiting for processes in alloc.c.
which works similar to PidFile (in httpd.conf) [Rob Hartill]
*) Include sys/resource.h in the correct place for SunOS4 [Sameer Parekh]
*) the pstrcat call in mod_cookies.c didn't have an ending NULL,
*) Add strerror function to util.c for SunOS4 [Randy Terbush]
*) patch to get Apache compiled on UnixWare 2.x, recommended as
a temporary measure, pending rewrite of rfc931.c. [Chuck Murcko]
*) past changes to http_config.c to only use the
*) Remove uses of MAX_STRING_LEN/HUGE_STRING_LEN from several routines.
and the server provider uses relative links; as file.html
*) Not listed. See <http://www.apache.org/docs/new_features_1_0.html>
*) Fixed potential FILE* leak in http_main.c [Ben Laurie]
*) Eliminated some bogus Linux-only #defines in conf.h [Aram Mirzadeh]
*) Nuked bogus #define in httpd.h [David Robinson]
*) gcc -Wall no longer complains about an unused variable when util.c
*) Rationalize handling of BSD in conf.h and elsewhere [Randy Terbush,
*) Suppress -Wall warning by casting const away in util.c [Aram Mirzadeh]
subprocesses, including the SIGTERM/pause/SIGKILL routine, until
causing certain extremely marginal cases (e.g., ScriptAlias of a
*particular* index.html file) to fail. [David Robinson]
*) Cleaned up compiler warning from mod_access.c [Robert Thau]
*) Cleaned up comments in mod_cgi.c [Robert Thau]
"/path/to/some/link/" follows the link. [Thau, Fielding]
*) Doesn't reset DirectoryIndex to 'index.html' when
*) Clarified init code and nuked bogus warning in mod_access.c
*) Corrected several directives in sample srm.conf
*) Fixed ScriptAlias/Alias interaction by moving ScriptAlias handling to
mod_alias.c, merging it almost completely with handling of Alias, and
using a special file created for the purpose in /usr/tmp, and
which try to print out the last-modified date). [Eric Hagberg/Robert
*) <!--exec cgi="/some/uri/here"--> always treats the item named by the
*) POST to CGI works on A/UX [Jim Jagielski]
it seems to work well enough without it (even in a 10 hits/sec
workout), and the overhead for the locking under A/UX is
*) Fixed portability problems with mod_cookies.c [Cliff Skolnick]
*) Further de-Berklize mod_cookies.c; change the bogus #include. [Brian
Behlendorf/Eric Hagberg]
*) More improvements to default Configuration for A/UX [Jim Jagielski]
*) SunOS lib-function prototypes in conf.h conditionalized on __GNUC__,
*) Scoreboard file (/tmp/htstatus.*) no longer publically writable.
properly. (One-line fix to http_protocol.c).
*) Corrected cgi-src/Makefile entry for new imagemap script. [Alexei Kosut]
*) Nuked Shambhala name from src/README; had already cleaned it out
*) Set config file locations properly if not set in httpd.conf
*) Fixed mod_imap.c --- relative paths with base_uri referer don't
be nice if mod_dir.c was robust enough to handle that, but for now,
/tmp/htstatus.*, on which each process has an independent file
*) Moved FCNTL_SERIALIZED_ACCEPT defines into conf.h (that's what
*) Incidental code cleanups in http_main.c --- stop dragging
*) Fixed auth_name-related typos in http_core.c [Brian Behlendorf]
Also, fixed auth typo in http_protocol.c unmasked by this fix.
*) Reordered modules in modules.c so that Redirect takes priority
the same SIGTERM/pause/SIGKILL routine used to ding an errant CGI
*) Fixed silly typo in http_main.c which was suddenly fatal in HP-UX.
*) mod_core.c --- default_type returns DEFAULT_TYPE (the compile-time
memory area every time). Fix is in mod_dir.c. [Paul Sutton]
*) Changes to http_main.c --- root server no longer plays silly
*) mod_dir.c bug fixes: ReadmeName and HeaderName
*) http_request.c now calls unescape_url() more places where it
*) Generalized cleanup interface in alloc.c --- any function can be
registered with alloc.c as a cleanup for a resource pool;
*) More changes in alloc.c --- new cleanup_for_exec() function,
registered with the alloc.c machinery before the server exec()s a
*) Fixed basic thinkos in mod_dbm_auth.c [rst, reported by Mark Cox]
in alloc.c [rst]