1.34 - January 7, 2009

Remove quadratic memory allocation during multipart_buffer reads [joes]

have fill_buffer() completely fill the multipart_buffer. This bug is tickled by the FireFox 2.0 when doing ssl uploads:


move the mod_perl version detection to the top of Makefile.PL, so Apache-Test and other things won't fool around with %INC and confuse the detection code. [Stas]

1.33 - December 15, 2004

MacOSX docs tweaks [David Wheeler <david kineticode.com>]

fix Makefile.PL to properly skip the test suite if A-T requirements weren't satisfied [Stas]

require Apache::Test 1.13 to run perl tests (need() was added at that version) [Stas]

Fix `strEQ' redefined warnings in the perl build [Stas]

Upgrade license to the Apache License Version 2.0. [davidw, joes]


Fix mfd's Content-Type parser to deal with Opera 7.2's extra attributes. For details see


Bug first reported by Sven Geisler [joes].

1.31 - ongoing

added a proper implementation of the ithreads support. At the same time it should resolve the problem with perl 5.8.2 under threaded applications, since it no longer relies on the implicit context and passes aTHX around. [Stas]

1.30 - September 27, 2003

libapreq-1.3 is released.

1.25 - August 23, 2003

Michael G. Schwern's "play it safe" patch to c/Makefile.PL (applied patch submitted by Steve Hay). See


for details. [joes]

1.24 - August 23, 2003

Applied Steve Hay's Request.pm doc patch explaining the tempnam() dependence for Apache::Request::new()'s TEMP_DIR option. [joes]

1.23 - July 10, 2003

Applied Graham Clark's patch to cleanup apache_request.h macros. Added missing doc credits for Steve Hay in Request.pm. [joes]

1.22 - July 5, 2003

Open uploaded files with binary mode (relevant for Perl > 5.7), so as to be able to get the correct sizes on systems where such a mode makes a difference. Thanks to Steve Hay for first pointing out this problem. [randyk]

1.21 - June 25, 2003

Fix memory access problem with TEMP_DIR - see http://marc.theaimsgroup.com/?l=apreq-dev&m=105647058517842&w=2 Thanks to Jay Buffington for the spot. [joes]

1.2 - June 19, 2003

libapreq-1.2 released.

1.16 - June 19, 2003

Updated INSTALL & README documents to explain how to configure the tests. Apache::Test v1.03 is now a prerequisite for libapreq.

1.15 - June 13, 2003

Experimental support for SFIO is withdrawn.

1.14 - April 30, 2003

Add documentation for subclassing Apache::Request. [Steve Hay]

1.13 - April 18, 2003

Sync test suite uris with latest Apache::Test [Stas]

Patch mfd parser's Content-Disposition header to do case-insensitive matches on "name" & "filename" keywords. This feature allows uploads from Nokia Series 60 phones to work as expected. [Oskari 'Okko' Ojala]

Patch Request.xs to revert to using pre-1.1 $upload->fh code for pre-5.8 perls. This patch may get backed out prior to 1.2's release, unless it is known to resolve problems (zombies?) reported to occur with libapreq-1.1 uploads and pre-5.8 perls. [Joe]

1.12 - February 27, 2003

do a better mod_perl version checking, including the test for mod_perl 2.0. [Stas]

Applied IKEBE Tomohiro's patch for handling %uXXXX strings.

1.11 - February 27, 2003

Add req->nargs to C API to distinguish between query string and request body params.

1.05 - January 5, 2003

Include patch and supporting documentation for OS X [David Wheeler]. Temporarily revert test suite to Apache::test. [Joe Schaefer] Update Request.xs to avoid segfaults caused by empty file uploads via an upload_hook. The upload_hook isn't called in this case, which triggered a segfault in $upload->fh [Sven Geisler].

1.04 - November 5, 2002

Replace autogenerated files with BUILD.sh script. This is necessary for OS X support via libtool & friends. [Joe Schaefer]

1.02 - November 3, 2002

Added documentation for issues with '\0' bytes (encoded) in cookie strings. [Issac Goldstand]


add a basic test suite [Stas Bekman]

1.0 - February 21, 2002

update to Apache Software License, Version 1.1

work around bug in Mozilla 0.9.7, which fails to send a required CRLF with each empty file field. [Joe Schaefer <joe@sunstarsys.com>]

ignore empty cookie attributes; replace ap_getword calls with ap_getword_nulls for parsing "&" separator. brings the behavior of Apache::Cookie closer to that of CGI::Cookie, and hopefully improves the functionality of the C interface as well. [Maurice Aubrey]

make apache_cookie.h c++ compatible [Simon Tamás <simont@westel.hu>]

0.33 - June 17, 2001

$r->upload can be set to another Apache::Upload instance [dougm] based on patch from Dave LaMacchia <dml@topped-with-meat.com>

0.32 - April 4, 2001

fix $r->param( key => [ 0..9 ] ), convert to XS. [Joe Schaefer <joe@sunstarsys.com>] Thanks to Jody Biggs <jody@codegrok.com> for the spot and suggested fix.

req->upload_hook, req->hook_data added. [David Welton <davidw@innominate.it>]

upload->tempname, req->temp_dir; $upload->link(), $upload->tempname() added. [Joe Schaefer <joe@sunstarsys.com>]

handle cookies containing "&", "=" in data. [Joe Schaefer <joe@sunstarsys.com>]

$r->parms can be set to another Apache::Table instance [dougm]

fix compile errors when PerlIO is used [dougm, Randy Kobes <randy@theoryx5.uwinnipeg.ca>]

fix subclassing mechanism so the the value of an `r' or `_r' key can be a hash ref [dougm]

fix win32 build (requires mod_perl later than 1.24_01) [Randy Kobes <randy@theoryx5.uwinnipeg.ca>]

Handle cookies with names but no value [David Welton <davidw@prosa.it>]

AIX compile fixes [Jens-Uwe Mager <jum@helios.de>]

0.31_03 - December 23, 2000

Apache::Request->instance [Matt Sergeant <matt@sergeant.org>]

0.31_02 - December 17, 2000

autoconf support [Tom Vaughan <tvaughan@aventail.com>]

also parse r->args if content-type is multipart [Ville Skyttä <ville@office.popsystems.com>]

deal properly with Apache::Cookie->new(key => undef) thanks to Matt Sergeant for the spot

fix parsing of Content-type header to deal with charsets [Artem Chuprina <ran@ran.pp.ru>]

fix nasty bug when connection is broken during file upload thanks to Jeff Baker for the spot

multipart_buffer.[ch] renamed to apache_multipart_buffer.[ch]

0.31_01 - December 4, 2000

keep reusing same buffer when handling file uploads to prevent overzealous memory allocation [Yeasah Pell, Jim Winstead <jimw@apache.org>]

handle internet explorer for the macintosh bug that sends corrupt mime boundaries when image submit buttons are used in multipart/form-data forms [Yeasah Pell]

fix uninitialized variable in ApacheRequest_parse_urlencoded [Yeasah Pell]

0.31 - July 2, 1999

CGI.pm 2.53's path/domain defaults will be used with -DDEFINE=CGI_253

Apache::Cookie->new($r)->parse will properly return () instead of undef when there is no cookie header, thanks to Nick Tonkin for the spot

0.30_04 - May 13, 1999

pass Apache::/Apache::SubRequest:: object to sv_magic, so it does not go out of scope until the Apache::Request object does

0.30_03 - May 5, 1999

when attaching request_rec* to Apache::Request object, dont let Perl copy it

0.30_02 - April 30, 1999

always parse the query string (if present), including POST requests

fixed another bug related to path_info

fixed Apache::Cookie->path bug spotted by Jeffrey W. Baker

0.30_01 - January, 27 - 1999

added ApacheRequest_script_name (r->uri minus r->path_info)

added eg/c/testapreq/Makefile.apxs

C sources *.[ch] moved to its own c/ directory (e.g. for easy cvs import)

fixed bug in ApacheRequest_parse_urlencoded (possible core dump on GET request)

allow `;' URI attribute delimiter as per HTML 4.0 spec

allow sub-classing via _r/r key mechanism

don't use $VERSION variable name in Makefile.PL param() now uses set() instead of add() [Andreas J. Koenig <andreas.koenig@anima.de>]

0.20_01 - January 6, 1999

Apache::libapreq for compiler + linker flags

added documentation

now build and install libapreq.a and header files

move cookie functions to new apache_cookie.c and Apache::Cookie modules

new Apache::Upload class

added param() method

we are now a subclass of Apache (requires 1.16_02+)

adhere to Apache code style guide

add logic to parse GET requests [Larry Foard <larry@cp.net>]

fix apache_request.h not to use mod_perl.h and deal w/ g++ [Larry Foard <larry@cp.net>]

0.01 - October 23, 1998

original version [Doug MacEachern <dougm@cp.net>] basic framework for parsing HTTP cookies and POST data of types: application/x-www-form-urlencoded, multipart/form-data

1 POD Error

The following errors were encountered while parsing the POD:

Around line 165:

Non-ASCII character seen before =encoding in 'Tamás'. Assuming CP1252