Main Page Modules Data Structures File List Data Fields Globals Related Pages
Changes with libapreq2-2.03-dev (released June 12, 2004)
- C API [joes] "Objectify" cookie/jar API: s/apreq_(make|serialize)_cookie/apreq_cookie_$1/ and reordering args so the cookie/jar object is always the first argument. Macros added to provide source-compatibility with the old names.
- Perl API [joes] Added $upload->slurp($data), which reads the contents of the file upload "$upload" into the scalar "$data".
- C API [joes, randyk] apreq_run_(hook|parser) are macros, so they are capitalized now. Fixed apreq_params_as_string() and added apreq_params_as_array(). Reworked definitions of APREQ_DECLARE_HOOK, APREQ_DECLARE_PARSER and apreq_(parser|hook)_t, hopefully to be more Win32 friendly. Also updated the documentation.
- C API [joes] Compensate for a missing CRLF in empty file upload block, which actually complies with RFC 2046 Section 5.1.1. Konqueror (version unknown) and Mozilla 0.9.7 are known to emit such blocks.
- Perl API [joes] $req->upload() in list context failed to filter out non-uploads. Also $req->upload("nonexistent-key-name") segfaults.
- Perl test suite t/TEST.PL must run parent class' pre_configure to get the configuration right
- C API [joes] apreq_brigade_concat() wasn't supplying the final EOS bucket to large brigades (>256K), which somtimes caused the prefetch loop in mod_apreq.c's apreq_filter() to hang.
- Documentation [joes] CHANGES file reformatted, removing dates & other clutter as Stas suggests.
- C API [joes] Fixed bug in url_parser code- missing context brigade was needed to track key-value pairs which span multiple buckets.
- C API [joes] API modifications: removed struct apreq_cfg_t, adding new apreq_env hooks max_body, max_brigade_len, and temp_dir. Folded apreq_parsers.h into apreq_params.h and modified the arguments to apreq_run_parser() and apreq_run_hook(). Renamed apreq_parser_t's content_type as enctype and apreq_copy_brigade() as apreq_brigade_copy(). These changes make libapreq2.so.2.0.5 incompatible with earlier versions.
- Perl API [stas] Include ppport.h from blead-perl to support older perls. Add a proper support for ithreads.
- C API [Swen Schillig, joes] Fixed bug in calculation of Netscape cookie expiration dates. apr_time_t is measured in microseconds, not seconds, which threw off the arithmetic; apr_time_from_sec was needed for the conversion.
- C API [Max Kellermann] Fix segfault caused by invalid %-escape sequence in query string.
Changes with libapreq2-2.02-dev (released Nov 15, 2003)
- Perl API [joes] Fix bogus pool/cookie initializers in Apache::Cookie::set_attr(), which caused Apache::Cookie::new to segfault. Bug first reported to modperl list by Wolfgang Kubens.
Changes with libapreq2-2.01-dev (released Nov 10, 2003)
- build system [joes] Skip Apache::Test tests in env/ when Apache::Test is unavailable. This allows the C API to be build and installed without requiring Apache::Test (it is still a requirement for compiling the perl glue).
- C API mod_apreq.c [joes] Parser errors were creeping into the return value of apreq_filter, which breaks the "transparent tee" paradigm. This caused bogus "400 Bad Request" responses (first reported by Vladimir Dudo) to occur when libapreq2 was used by an output filter during a GET request (handled by apache2's default handler). The test suite has been updated accordingly.
- C API [joes] Incorporate libapreq_cgi into libapreq2 as the default environment, and add apreq_env_t and initializer apreq_env_module() to manage the environment at runtime (determining the environment at load-time was problematic on non-ELF systems).
Changes with libapreq2-2.00-dev (Oct 25, 2003)
- C API: libapreq_cgi.c [randyk, joes] CGI environment defined by env/libapreq_cgi.c is functional (with tests added to env/t). This library may soon be incorporated directly into libapreq2 as a default enviroment.
- C API: mod_apreq.c [joes] Added ctx->saw_eos to ensure we don't read from upstream filters after receiving an eos bucket. Otherwise it was possible for two eos buckets to appear when a prefetch read is involved, which breaks other modules like mod_proxy. This bug was uncovered by Philippe Chiasson. mod_apreq's apreq_env_majic_number bumped to reflect the added fixes.
- configure: --enable-perl-glue [joes] The --enable-perl-glue option integrates the perl glue into the normal Unix build cycle. It is disabled by default, but is silently reenabled if the user configures the source tree via Makefile.PL.
- C API [joes] Added apreq_header_attribute() and fixed mfd parser to allow "charset" attribute to appear in the Content-Type header. Sven Geisler points out that Opera 7.20 does generate such headers.
- C API [joes] Added versioning API following http://apr.apache.org/versioning.html apreq_env renamed apreq_env_name, and apreq_env_magic_number added to provide versioning for environments (modules). The header files are now installed to "include/apreq2", and the library is renamed "libapreq2". Also added an apreq2-config script based on apu-config.
- configure: static mod_apreq.c [Bojan Smojver, joes] Add --with-apache2-src configure option, along with --with-apr-config and --with-apu-config, and provide support for compiling mod_apreq into httpd as a static apache module.
- C API: mod_apreq.c [joes] Support for internal redirects added to the mod_apreq filter. This ensures any POST data prefetched in the main request gets passed along to the subrequest handler(s).
- C bugfix: apreq_decode [Graham Clark] If the source and destination strings are represented by the same pointer - e.g. if called as apreq_unescape(s) - string s is modified incorrectly in general. Patch includes new unit test.
- Perl API [joes] Added $req->parse, $req->status, & "preparse" logic to $req->param & $req->upload.
- C API [joes] Added "preparse" logic to apreq_params & apreq_uploads to bring behavior in line with libapreq-1.x.
- C API [joes] Dropped param->charset. Make apreq_brigade_concat public, so mod_apreq can use it for its ctx->spool brigade.
- Documentation [joes] Updated Cookie_pod to reflect API changes over v1.X.
- Documentation [joes] Added doxygen links to Apache::Request and Apache::Cookie perl docs.
- C API [joes] Added apreq_copy_brigade(bb) to apreq.h.
- C API [joes] The new filter-based design required a complete departure from libapreq-1.X codebase. libapreq-2 is based solely on APR, and to be fully functional, requires a supporting environment similar to Apache-2. A person wishing to port libapreq-2 to a new environment needs to provide definitions for the declarations in apreq_env.h.
- Perl API [joes] Aggregates are always collected into an APR::Table-based package. New table packages: Apache::Cookie::Table, Apache::Request::Table, and Apache::Upload::Table.
- Perl API [joes] Apache::Cookie->fetch now requires an "environment" argument ($r). Its return value is blessed into the Apache::Cookie::Jar class.
- Perl API [joes] Two new request lookup functions:
- $req->args - param lookup using only the query string
- $req->body - param lookup using only the POST data
Generated on Sat Jun 12 10:16:30 2004 for libapreq2 by
1.2.15