Skip to content
CHANGES 401 KiB
Newer Older
Ryan Bloom's avatar
Ryan Bloom committed
Changes with Apache 2.0b1
  *) Cleanup the header handling a bit.  This uses the apr_brigade_*
     functions for the buffering so that we don't need to compute
     the length of the headers before we actually create the header
     buffer.  [Ryan Bloom]

  *) Allow filters to buffer data using the ap_f* functions.  These have
     become macros that resolve directly to apr_brigade_*.  
     [Ryan Bloom]

  *) Get the Unix MPM's to do a graceful restart again.  If we are going
     to register a cleanup with ap_cleanup_scoreboard, then we have to
     kill the cleanup with the same function,  and that function can't be
     static.  [Ryan Bloom]

  *) Install all required header files.  Without these, it was not
     possible to compile some modules outside of the server.
     [Ryan Bloom]

  *) Fix the AliasMatch directive in Apache 2.0.  When we brought a patch
     forward from 1.3 to 2.0, we missed a single line, which broke regex
     aliases.  [Ryan Bloom]

  *) We have a poor abstraction in the protocol.  This is a temporary
     hack to fix the bug, but it will need to be fixed for real.  If
     we find an error while sending out a custom error response, we back
     up to the first non-OK request and send the data.  Then, when we send
     the EOS from finalize_request_protocol, we go to the last request,
     to ensure that we aren't sending an EOS to a request that has already
     received one.  Because the data is sent on a different request than
     the EOS, the error text never gets sent down the filter stack.  This
     fixes the problem by finding the last request, and sending the data
     with that request.  [Ryan Bloom]

  *) Make the server status page show the correct restart time, and
     thus the proper uptime. [Ryan Bloom]

  *) Move the CGI creation logic from mod_include to mod_cgi(d).  This
     should reduce the amount of duplicate code that is required to
     create CGI processes.
     [Paul J. Reder <rederpj@raleigh.ibm.com>]

  *) ap_new_connection() closes the socket and returns NULL if a socket
     call fails.  Usually this is due to a connection which has been 
     reset.  [Jeff Trawick]

  *) Move the Apache version information out of httpd.h and into release.h.
     This is in preparation for the first tag with the new tag and release
     system.  [Ryan Bloom]

  *) Begin restructuring scoreboard code to enable adding back in
     the ability to use IPC other than shared memory.
     Get mod_status working on Windows again. [Bill Stoddard]
  *) Make mod_status work with 2.0.  This will work for prefork,
     mpmt_pthread, and dexter.  [Ryan Bloom]

  *) Correct a typo in httpd.conf.
     [Kunihiro Tanaka <tanaka@apache.or.jp>] PR#7154 

  *) Really fix mod_rewrite map lookups this time. [Tony Finch]

  *) Get the correct IP address if ServerName isn't set and we can't
     find a fully-qualified domain name at startup.
     PR#7170 [Danek Duvall <dduvall@eng.sun.com>]

  *) Make mod_cgid work with SuExec.  [Ryan Bloom]
William A. Rowe Jr's avatar
 
William A. Rowe Jr committed
  *) Adopt apr user/group name features for mod_rewrite.  Eliminates some
     'extra' stat's for user/group since they should never occur, and now
     resolves the SCRIPT_USER and SCRIPT_GROUP, including on WinNT NTFS
     volumes.  [William Rowe]

William A. Rowe Jr's avatar
 
William A. Rowe Jr committed
  *) Adopt apr features to simplify mod_includes.  This changes the
     behavior of the USER_NAME variable, unknown uid's are now reported
     as USER_NAME="<unknown>" rather than the old user#000 result.
     WinNT now resolves USER_NAME on NTFS volumes.  [William Rowe]

William A. Rowe Jr's avatar
 
William A. Rowe Jr committed
  *) Adopt apr features for simplifing mod_userdir, and accept the new
     Win32/OS2 exceptions without hiccuping.  [William Rowe]
William A. Rowe Jr's avatar
 
William A. Rowe Jr committed

  *) Replace configure --with-optim option by using and saving the
     environment variable OPTIM instead.  This is needed because configure
     options do not support multiple flags separated by spaces.
     [Roy Fielding]

  *) Fix some byterange handling.  If we get a byte range that looks like
     "-999999" where that is past the end of the file, we should return 
     a PARTIAL CONTENT status code, and return the whole file as one big
     byterange.  This matches the 1.3 handling now.  [Ryan Bloom]

  *) Make the error bucket a real meta-data bucket.  This means that the
     bucket length is 0, and a read returns NULL data.  If one of these
     buckets is passed down after the headers are sent, this data will
     just be ignored.  [Greg Stein]

  *) The prefork MPM wasn't killing child processes correctly if a restart
     signal was received while the process was serving a request.  The child
     process would become the equivalent of a second parent process.  If
     we break out of the accept loop, then we need to do die after cleaning
     up after ourselves.  [Ryan Bloom]

  *) Change the Prefork MPM to use SIGWINCH instead of SIGUSR1 for graceful
     restarts.  [Ryan Bloom]

William A. Rowe Jr's avatar
 
William A. Rowe Jr committed
  *) Modify the apr_stat/lstat/getfileinfo calls within apache to use
     the most optimal APR_FINFO_wanted bits.  This spares Win32 from
     performing very expensive owner, group and permission lookups
     and allows the server to function until these apr_finfo_t fields
     are implemented under Win32.  [William Rowe]

  *) Support for typedsafe optional functions - that is functions exported by
     optional modules, which, therefore, may or may not be present, depending
     on configuration. See the experimental modules mod_optional_fn_{ex,im}port
     for sample code. [Ben Laurie]

  *) filters can now report an HTTP error to the server.  This is done
     by sending a brigade where the first bucket is an error_bucket.
     This bucket is a simple bucket that stores an HTTP error and
     a string.  Currently the string is not used, but it may be needed
     to output an error log.  The http_header_filter will find this
     bucket, and output the error text, and then return 
     AP_FILTER_ERROR, which informs the server that the error web page
     has already been sent.  [Ryan Bloom]

  *) If we get an error, then we should remove all filters except for
     those critical to serving a web page.  This fixes a bug, where
     error pages were going through the byterange filter, even though
     that made no sense.  [Ryan Bloom]

  *) Relax the syntax checking of Host: headers in order to support
     iDNS. PR#6635 [Tony Finch]

  *) Cleanup the byterange filter to use the apr_brigade_partition
     and apr_bucket_copy functions.  This removes a lot of very messy
     code, and hopefully makes this filter more stable.
     [Ryan Bloom]

  *) Remove AddModule and ClearModuleList directives.  Both of these
     directives were used to ensure that modules could be enabled
     in the correct order.  That requirement is now gone, because
     we use hooks to ensure that modules are in the correct order.
     [Ryan Bloom]

  *) When SuExec is specified, we need to add it to the list of
     targets to be built.  If we don't, then any changes to the
     configuration won't affect SuExec, unless 'make suexec' is
     specifically run.  [Ryan Bloom]

William A. Rowe Jr's avatar
 
William A. Rowe Jr committed
  *) Cleaned out open_file from mod_file_cache, as apr now accepts
     the APR_XTHREAD argument to open a file for consumption by
     parallel threads on win32.  [William Rowe]

  *) Correct a bug in determining when we follow symlinks.  The code
     expected a stat -1 result, not an apr_status_t positive error.
     Also check if the APR_FINFO_USER fields are valid before we
     follow the link.  [William Rowe]

  *) Move initgroupgs, ap_uname2id and ap_gname2id from util.c to
     mpm_common.c.  These functions are only valid on some platforms,
     so they should not be in the main-line code. [Ryan Bloom]

  *) Remove ap_chdir_file().  This function is not thread-safe,
     and nobody is currently using it.  [Ryan Bloom]

  *) Do not try to run make depend if there are no .c files in the
     current directory, doing so makes `make depend` fail.
     [Ryan Bloom]

   *) Update highperformance.conf to work with either prefork or
      pthreads mpms.  [Greg Ames] 

  *) Stop checking to see if this is a pipelined request if we know
     for a fact that it isn't.  Basically, if r->connection->keepalive == 0.
     This keeps us from making an extra read call when serving a 1.0
     request.  [Ryan Bloom and Greg Stein]

Tony Finch's avatar
Tony Finch committed
  *) Fix the handling of variable expansion look-ahead in mod_rewrite,
     i.e. syntax like %{LA-U:REMOTE_USER}, and also fix the parsing of
     more complicated nested RewriteMap lookups. PR#7087 [Tony Finch]

  *) Fix the RFC number mentioned when complaining about a missing
     Host: header. PR#7079 [Alexey Toptygin <alexeyt@wam.umd.edu>]

  *) Fix an endless loop in ab which occurred when ab was posting
     and the server dropped the connection unexpectedly.
     [Jeff Trawick]

  *) Fix a segfault while handling request bodies in ap_http_filter().  
     This problem has been seen with mod_dav usage as well as with 
     requests where the body was just being discarded.  [Jeff Trawick]
  *) Some adjustment on the handling and automatic setting (via
     hints.m4) of various compilation flags (eg: CFLAGS). Also,
     add the capability to specify flags (NOTEST_CFLAGS and
     NOTEST_LDFLAGS) which are used to compile Apache, but
     not used during the configuration process. Useful for
     flags like "-Werror". [Jim Jagielski]

Loading full blame...