Skip to content
CHANGES 389 KiB
Newer Older
Ryan Bloom's avatar
Ryan Bloom committed
Changes with Apache 2.0b1
  *) Apache is now IPv6-capable.  On systems where APR supports IPv6,
     Apache gets IPv6 listening sockets by default.  Additionally, the
     Listen, NameVirtualHost, and <VirtualHost> directives support IPv6
     numeric address strings (e.g., "Listen [fe80::1]:8080").
     [Jeff Trawick]

  *) Modify the install directory layout.  Modules are now installed in
     modules/.  Shared libraries should be installed in libraries/, but
     we don't have any of those on Unix yet.  All install directories
     are modifyable at configure time. [Ryan Bloom]

  *) Install all header files in the same directory on Unix. [Ryan Bloom]

  *) Get the functions in server/linked into the server, regardless of
     which modules linked into the server.  This uses the same hack 
     for Apache that we use for APR and apr-util to ensure all of the
     necessary functions are linked.  As a part of thise, the CHARSET_EBCDIC
     was renamed to AP_CHARSET_EBCDIC for namespace protection, and to make
     the scripts a bit easier.
     [Ryan Bloom]
  *) Rework the RFC1413 handling to make it thread-safe, use a timeout
     on the query, and remove IPv4 dependencies.  [Jeff Trawick]

  *) Get all of the auth modules to the point that they will install and
     be loadable into the server.  Our new build/install mechanism expects
     that all modules will have a common name format.  The auth modules 
     didn't use that format, so we didn't install them properly.
     [Ryan Bloom]

  *) API routines ap_pgethostbyname() and ap_pduphostent() are no longer
     available.  Use apr_getaddrinfo() instead.  [Jeff Trawick]

  *) Get "NameVirtualHost *" working in 2.0.  [Ryan Bloom]

  *) Return HTTP_RANGE_NOT_SATISFIABLE if the every range requested starts
     after the end of the response. [Ryan Bloom]

  *) Get byterange requests working with responses that do not have a
     content-length.  Because of the way byterange requests work, we have to
     have all of the data before we can actually do the byterange, so we
     can compute the content-length in the byterange filter.
     [Ryan Bloom]
Ryan Bloom's avatar
Ryan Bloom committed

  *) Get exe CGI's working again on Windows.
     [Allan Edwards]

  *) Get mod_cgid and mod_rewrite to work as DSOs by changing the way
     they keep track of whether or not their  post config hook has been
     called before.  Instead of a static variable (which is replaced when 
     the DSO is loaded a second time), use userdata in the process pool.
     [Jeff Trawick]

William A. Rowe Jr's avatar
 
William A. Rowe Jr committed

  *) Win32 now requires perl to complete the final install step for users
     to build + install on Win32.  Makefile.win now rewrites @@ServerRoot@
     and installs the conf, htdocs and htdocs/manual directories.
     [William Rowe]

  *) Make mod_include use a hash table to associate directive tags with
     functions.  This allows modules to implement their own SSI tags easily.
     The idea is simple enough, a module can insert it's own tag and function
     combination into a hash table provided by mod_include.  While mod_include
     parses an SSI file, when it encounters a tag in the file, it does a
     hash lookup to find the function that implements that tag, and passes
     all of the relevant data to the function.  That function is then
     responsible for processing the tag and handing the remaining data back
     to mod_include for further processing.
     [Paul J. Reder <rederpj@raleigh.ibm.com>]
  *) Get rid of ap_new_apr_connection().  ap_new_connection() now has 
     fewer parameters: the local and remote socket addresses were removed
     from the parameter list because all required information is available
     via the APR socket.  [Jeff Trawick]

  *) Distribution directory structure reorganized to reflect a
     normal source distribution with external install targets.
     [Roy Fielding]

  *) The MPMs that need multiple segments of shared memory now create
     two apr_shmem_t variables, one for each shared memory allocation.
     the problem is that we can't determine how much memory will be required
     for shared memory allocations once we try to allocate more than one
     variable.  The MM code automatically aligns the shared memory allocations,
     so we end up needing to pad the amount of shared memory we want based
     on how many variables will be allocated out of the shared memory segment.
     It is just easier to create a second apr_shmem_t variable, and two
     shmem memory blocks.
     [Ryan Bloom]

  *) Cleanup the export list a bit.  This creates a single unified list of
     functions exported by APR.  The export list is generated at configure
     time, and that list is then used to generate the exports.c file.
     Because of the way the export list is generated, we only export those
     functions that are valid on the platform we are building on.
     [Ryan Bloom]

  *) Enable logging the cookie with mod_log_config
     [Sander van Zoest <sander@covalent.net>]

  *) Fix a segfault in mod_info when it reaches the end of the configuration.
     [Jeff Trawick]

  *) Added lib/aputil/ as a placeholder for utility functions which are not
     specific to the Apache HTTP Server (but do not make sense with APR).
     The first utility is "apu_dbm": a set of functions to work with DBM
     files. This first version can be compiled for SDBM or GDBM databases.
     [Greg Stein]

  *) Complete re-write of mod_include.  This makes mod_include a filter that
     uses buckets directly.  This has now served the FAQ correctly.
     [Paul Reder <rederpj@raleigh.ibm.com>]

  *) Allow modules to specify the first filter in a sub_request when
     making the sub_request.  This keeps modules from having to change the
     output_filter immediately after creating the sub-request, and therefore
     skip the sub_req_output_filter.  [Ryan Bloom]

  *) Update ab to accept URLs with IPv6 literal address strings (in the
     format described in RFC 2732), and to build Host header fields in
     the same format.  This allows IPv6 literal address strings to be
     used with ab.  This support has been tested against Apache 1.3 with 
     the KAME patch, but Apache 2.0 does not yet work with this format
     of the Host header field.  [Jeff Trawick]

  *) Accomodate an out-of-space condition in the piped logs and the
     rotatelogs.c code, and no longer churn log processes for this
     condition.  [Victor J. Orlikowski]

  *) Add support for partial writes with apr_sendfile() to core_output_filter.
     [Greg Ames] 

Changes with Apache 2.0a8

  *) Add a directive to mod_mime so that filters can be associated with
     a given mime-type.
     [Ryan Bloom]

  *) Get multi-views working again.  We were setting the path_info
     field incorrectly if we couldn't find the specified file.
     [Ryan Bloom]

  *) Fix 304 processing.  The core should never try to send the headers
     down the filter stack.  Always, just setup the table in the request
     record, and let the header filter convert it to data that is ready
     for the network.
     [Ryan Bloom]

  *) More fixes for the proxy.  There are still bugs in the proxy code,
     but this has now proxied www.yahoo.com and www.ntrnet.net (my ISP)
     successfully.
     [Ryan Bloom]

  *) Fix params for apr_getaddrinfo() call in connect proxy handler.
     [Chuck Murcko]

  *) APR: Add new apr_getopt_long function to handle long options.
     [B. W. Fitzpatrick <fitz@red-bean.com>]

  *) APR: Change apr_connect() to take apr_sockaddr_t instead of hostname.
     Add generic apr_create_socket().  Add apr_getaddrinfo() for doing
     hostname resolution/address string parsing and building
     apr_sockaddr_t.  Add apr_get_sockaddr() for getting the address
     of one of the apr_sockaddr_t structures for a socket.  Change
     apr_bind() to take apr_sockaddr_t.  [David Reid and Jeff Trawick]

  *) Remove the BUFF from the HTTP proxy.  This is still a bit ugly, but
     I have proxied pages with it, cleanup will commence soon.
     [Ryan Bloom]

  *) Make the proxy work with filters.  This isn't perfect, because we
     aren't dealing with the headers properly.  [Ryan Bloom]

  *) Do not send a content-length iff the C-L is 0 and this is a head
     request.  [Ryan Bloom]

  *) Make cgi-bin work as a regular directory when using mod_vhost_alias
     with no VirtualScriptAlias directives. PR#6829 [Tony Finch]

  *) Remove BUFF from the PROXY connect handling. [Ryan Bloom]

  *) Get the default_handler to stop trying to deal with HEAD requests.
     The idea is to let the content-length filter compute the C-L before
     we try to send the data.  If we can get the C-L correctly, then we
     should send it in the HEAD response.
     [Ryan Bloom]
     
  *) The Header filter can now determine if a body should be sent based
     on r->header_only.  The general idea of this is that if we delay
     deciding to send the body, then we might be able to compute the
     content-length correctly, which will help caching proxies to cache
     our data better.  Any handler that doesn't want to try to compute
     the content-length can just send an EOS bucket without data and
     everything will just work.
     [Ryan Bloom]

  *) Add the referer to the error log if one is available.
Loading full blame...