Changes for version 1.99_12
- Restore a proper behavior of all Registry handlers, but PerlRun, not to reset %INC to forget any .pl files required during the script's execution. [Stas]
- <Perl> are now evaluating code into one distinct namespace per container, similar to ModPerl::Registry scripts. [Philippe M. Chiasson]
- Fix ModPerl::MM::WriteMakefile to use the MODPERL_CCOPTS entry from Apache::BuildConfig, as it contains some flags added by mod_perl, which aren't in perl_ccopts and ap_ccopts. [Stas]
- Add the implementation of Apache::Connection::local_addr and Apache::Connection::remote_addr to the Apache::compat overridable functions. [Stas]
- Apache::compat's implementation of APR::URI::unparse, Apache::RequestRec::finfo and Apache::RequestRec::notes is now overridable and not enabled by default. [Stas]
- Apache::compat no longer enables functions which collide with mp2 API by default. It provides two new functions: override_mp2_api and restore_mp2_api to override and restore the original mp2 API. [Stas]
- For Win32, add a .bat extension to candidates for the apxs and apr-config utilities used in Apache::Build, so that the -x file test can potentially succeed [Randy Kobes]
- Plug a memory leak with 'perl-script' not cleaning up the temp vars created during the override of STDIN/STDOUT to use the :Apache IO layer [Stas]
- libgtop config (needed for enabling MOD_PERL_TRACE=m) is now searched using the gnome packaging tools if available (pkg-config for gnome-2.x and gnome-config for gnome-1.x) [Stas]
- Prevent a problem where an autovivified package (stash) prevents from modperl_mgv to load the file with that package (until now it was checking whether the stash existed already and skipped the loading if that was the case). Now checking %INC and attempting to load the module. Reporting the failure only if the module has failed to load and the stash is not defined (so that it's possible to autovivify packages without loading them from an external file). [Stas]
- MaxClients is now overridable from the t/TEST -maxclients command line option (it was hardcoded before). [Stas]
- Postpone the allocation of the wbucket in filters till the moment it's needed (if at all). Since non-streaming filters aren't going to use that buffer, it's a waste to allocate/free it. [Stas]
- Extend the autogenerated bug report to include information about installed modules of special interest (which may aid in understanding the bug report), such as CGI.pm, Apache::Request, LWP, etc. [Stas]
- As the test suite keeps on growing, it takes longer time to startup. Change the main test suite timeout to 180 secs for threaded mpms and 120 secs for non-threaded ones. [Stas]
- use plain malloc/free to allocate filter structs, since they could be invoked hundreds of times during a single request, causing huge memory demands if the memory is allocated from the pool, which gets destroyed only at the end of a request. [Stas]
- Fix a compilation error in APX.xs when MP_HAVE_APR_LIBS is not defined
- Fred Moyer <fred@taperfriendlymusic.org>
- fix a memory leak when $filter->ctx is used [Stas]
- fix buglet on Win32 (and potentially other non-Unix platforms) where not all files were being installed under a relative Apache2 subdirectory when MP_INST_APACHE2 was specified [Randy Kobes].
- deprecated APR::SockAddr::port_get()/APR::SockAddr::port_set() replaced with direct access to the port record via APR::SockAddr::port(). [Geoffrey Young, Stas]
- deprecated APR::URI::default_port_for_scheme() replaced with APR::URI::port_of_scheme() [Geoffrey Young]
- deprecated APR::SockAddr::ip_set() and APR::NO_TIMEOUT removed.
- Geoffrey Young
- Apache::MPM->is_threaded() replaces Apache::MPM_IS_THREADED
- Geoffrey Young
- fix "PerlSetVar Foo 0" so that $r->dir_config('Foo') returns 0, not undef
- Geoffrey Young
- add Apache::MPM class, along with show() and query() class methods
- Geoffrey Young
- add :mpmq import tag to Apache::Const [Geoffrey Young]
- Fix ModPerl::Registry handlers family to modify $0 only for the duration of the handler, by localizing it [Stas]
- Fix :Apache perlio's STDOUT to be reentrant + modules/include_subreq test [Stas]
- fix slurp_filename to always open the file and not try to guess whether filename has been already opened, as there is no reliable way to accomplish that [Stas]
- Apache->can_stack_handlers is now in Apache::compat (mp2 always can stack handlers) [Stas]
- add access to $r->finfo() and related APR::Finfo methods, such as $r->finfo->size(), $r->finfo->mtime(), and $r->finfo->stat() [Geoffrey Young]
- add :filetype import tag to APR::Const [Geoffrey Young]
- <Perl> sections now properly set $0 to the name of the configuration file they are in. [Philippe M. Chiasson]
- Apache::Status: provide a workaround for Config::myconfig() which fails under threads with (5.8.0 < perl < 5.8.3) [Elizabeth Mattijsen <liz@dijkmat.nl>]
- Fix Apache::Status::handler to return 'Apache::OK' [Juanma Barranquero <lektu@terra.es>]
- <Perl> sections now properly set filename and line number information, making error messages report the correct location. [Philippe M. Chiasson]
Changes for version 1.99_11
- add a build/win32_fetch_apxs script (called within the top-level Makefile.PL) to offer to fetch and install a Win32 development version of apxs and (apr|apu)-config [Randy Kobes]
- rewrite $r->read() and perlio read functions to use the same function, which completely satisfies the read request if possible, on the way getting rid of get_client_block and its supporting functions which have problems and will most likely will be removed from the httpd-API in the future. Directly manipulate bucket brigades instead. [Stas]
- Since Apache2.pm pops /foo/Apache2 dirs to the top of @INC, it now also takes care of keeping lib and blib dirs before the system dirs, so that previously installed libraries won't get loaded instead of the currently uninstalled libraries that are under test. [Stas]
- When 'make test' fails we now print the info on what to do next [Stas]
- At the end of 'make install' we now print the info how to proceed with mod_perl and what to do in the case of post-install problems
- Geoffrey Young
- Adjust the source to properly work with 5.8.2's new algorithm of dynamic re-hashing of hashes on hash collision attack. [Nicholas Clark <nick@ccl4.org>, Stas]. Add a test that mounts such an attack so we can verify that we can survive this rehashing. [Scott A Crosby <scrosby@cs.rice.edu>, Nicholas Clark <nick@ccl4.org>, Tels <perl_dummy@bloodgate.com>, Mark Jason Dominus <mjd@plover.com>, Stas]
- Standardize the Apache::PerlSections package name to it's plural form for clarity and so that the pod gets glued in it's proper place.
- Philippe M. Chiasson <gozer@cpan.org>
- return value from Perl callbacks are now passed directly to Apache without additional post-call manipulations (such as assuming HTTP_OK should really be OK). [Geoffrey Young]
- perl 5.8.1 w/ ithreads has a bug where it reports the wrong parent pid (as if the process was never forked), provide a local workaround (+ new test). [Rafael Garcia-Suarez <rgarciasuarez@free.fr>]
- overridden STD* streams now can be further overridden and will be properly restored, which allows functions like $r->internal_redirect work (+add tests) [Stas]
- implement perlio's getarg hook, which now allows duping STD* streams overloaded by modperl [Stas]
- Add PerlMapToStorageHandler [Geoffrey Young]
- callbacks are now expected to return a meaningful value (OK, SERVER_ERROR, etc) or return via an official API (exit, die, etc). relying on implicit returns from the last call evaluated by a subroutine may result in server errors. [Stas, Geoffrey Young]
- in the MP_MAINTAINER mode add the -Werror compilation flag when perl
Documentation
Apache::Test change logfile
Perl Interface for libapr and libaprutil Libraries
Perl Interface for APR Constants
An APR Perl IO layer
A Perl API for manipulating opaque string-content table
A Perl API for Apache request object
Perl Interface for Apache Constants
A Perl API for manipulating Apache configuration tree
A Perl API for Apache 2.0 Filtering
A Perl API for Apache 2.0 Filter Records
Perl API for Apache Logging Methods
Default Handler for Perl sections
Reload Perl Modules when Changed on Disk
A Perl API for Apache request object
Methods for work with Apache::Request object
Methods for work with Apache::Server object
Embedded interpreter status information
Executing SubProcesses from mod_perl
1.0 backward compatibility functions deprecated in 2.0
a helper module for mod_perl 1.0 to mod_perl 2.0 porting
A "subclass" of ModPerl::MM used for building mod_perl 2.0
A "subclass" of ExtUtils::MakeMaker for mod_perl 2.0
Map mod_perl 2.0 modules, objects and methods
Run unaltered CGI scripts under mod_perl
Run unaltered CGI scripts persistently under mod_perl
Run unaltered CGI scripts persistently under mod_perl
Cook mod_perl 2.0 Registry Modules
Compile ModPerl::RegistryCooker scripts at server startup
Helper mod_perl 2.0 Functions
Multi-Processing Model Modules
Modules
Test.pm wrapper with helpers for testing Apache
Test Configuration setup module
Provide MakeMaker Wrapper Methods
A parent class for generating bug/success reports
Send requests to your Apache test server
Run the test suite
Special Tests Sequence Failure Finder
Helper output generation functions
Utility functions for writing tests
A bundle to install all Apache-Test related modules
Methods for locating and parsing bits of Apache source code
Install Apache mod_perl2 and related modules
Functions to retrieve mod_perl specific env information.
Embed a Perl interpreter in the Apache/2.x HTTP server
Provides
in xs/APR/APR/APR.pm
in xs/APR/Const/Const.pm
in xs/APR/PerlIO/PerlIO.pm
in lib/APR/XSLoader.pm
in lib/Apache/compat.pm
in lib/Apache/compat.pm
in xs/Apache/Const/Const.pm
in lib/Apache/compat.pm
in xs/tables/current/Apache/ConstantsTable.pm
in lib/Apache/compat.pm
in xs/tables/current/Apache/FunctionTable.pm
in lib/Apache/ParseSource.pm
in lib/Apache/ParseSource.pm
in lib/Apache/PerlSections.pm
in lib/Apache/Reload.pm
in lib/Apache/compat.pm
in lib/Apache/compat.pm
in lib/Apache/compat.pm
in lib/Apache/SourceTables.pm
in lib/Apache/Status.pm
in xs/tables/current/Apache/StructureTable.pm
in lib/Apache/compat.pm
in Apache-Test/lib/Apache/Test5005compat.pm
in Apache-Test/lib/Apache/TestBuild.pm
in Apache-Test/lib/Apache/TestClient.pm
in Apache-Test/lib/Apache/TestClient.pm
in Apache-Test/lib/Apache/TestCommon.pm
in Apache-Test/lib/Apache/TestCommonPost.pm
in Apache-Test/lib/Apache/TestConfigC.pm
in Apache-Test/lib/Apache/TestConfigParse.pm
in Apache-Test/lib/Apache/TestConfigPerl.pm
in Apache-Test/lib/Apache/TestConfigC.pm
in Apache-Test/lib/Apache/TestHandler.pm
in Apache-Test/lib/Apache/TestHarness.pm
in Apache-Test/lib/Apache/TestReportPerl.pm
in Apache-Test/lib/Apache/TestRunPerl.pm
in Apache-Test/lib/Apache/TestSSLCA.pm
in Apache-Test/lib/Apache/TestServer.pm
in Apache-Test/lib/Apache/TestSmokePerl.pm
in Apache-Test/lib/Apache/TestSort.pm
in Apache-Test/lib/Apache/Test.pm
in lib/Apache/compat.pm
in lib/Apache/XSLoader.pm
in lib/Apache/compat.pm
in lib/Apache/porting.pm
in Apache-Test/lib/Apache/TestRequest.pm
in lib/ModPerl/BuildMM.pm
in lib/ModPerl/BuildOptions.pm
in lib/ModPerl/Code.pm
in xs/ModPerl/Const/Const.pm
in lib/ModPerl/FunctionMap.pm
in xs/tables/current/ModPerl/FunctionTable.pm
in lib/ModPerl/MM.pm
in lib/ModPerl/Manifest.pm
in lib/ModPerl/MapUtil.pm
in lib/ModPerl/MapUtil.pm
in lib/ModPerl/ParseSource.pm
in ModPerl-Registry/lib/ModPerl/PerlRun.pm
in ModPerl-Registry/lib/ModPerl/Registry.pm
in ModPerl-Registry/lib/ModPerl/RegistryBB.pm
in ModPerl-Registry/lib/ModPerl/RegistryCooker.pm
in ModPerl-Registry/lib/ModPerl/RegistryLoader.pm
in lib/ModPerl/StructureMap.pm
in lib/ModPerl/TestRun.pm
in lib/ModPerl/TestReport.pm
in lib/ModPerl/TestRun.pm
in lib/ModPerl/TypeMap.pm
in lib/ModPerl/WrapXS.pm
in Apache-Test/lib/Apache/Test5005compat.pm