| =head1 NAME | |
| Changes - Apache mod_perl changes logfile | |
| =head1 CHANGES | |
| all changes without author attribution are by Doug MacEachern | |
| Also refer to the Apache::Test changes log file, at Apache-Test/Changes | |
| =over 3 | |
| =item 2.0.9-dev | |
| Make sure modperl_interp_select uses r->server rather than the passed s | |
| parameter to find the interpreter pool to pull an interpreter from. This | |
| fixes an issue with vhosts with a separate interpreter pool and runtime | |
| dir-config merges that used to pull the interpreter from the wrong pool. | |
| [Torsten Foertsch] | |
| PerlInterpScope is now more advisory. Using $(c|r)->pnotes will bind | |
| the current interpreter to that object for it's lifetime. | |
| $(c|r)->pnotes_kill() can be used to prematurely drop pnotes and | |
| remove this binding. [Torsten Foertsch] | |
| Now correctly invokes PerlCleanupHandlers, even if they are the only | |
| handler type configured for that request [Torsten Foertsch] | |
| For threaded MPMs, change interpreter managment to a new, reference-counted | |
| allocation model. [Torsten Foertsch] | |
| Expose modperl_interp_pool_t via ModPerl::InterpPool, modperl_tipool_t | |
| via ModPerl::TiPool and modperl_tipool_config_t via ModPerl::TiPoolConfig | |
| [Torsten Foertsch] | |
| Expose modperl_interp_t via ModPerl::Interpreter [Torsten Foertsch] | |
| Fix t/compat/apache_file.t on Windows. Apache::File->tmpfile() wants TMPDIR | |
| or TEMP from the environment, or else defaults to /tmp. The latter is no | |
| good on Windows, so make sure the environment variables are passed through. | |
| (TEMP should be set to something suitable on Windows.) [Steve Hay] | |
| Fix t/api/err_headers_out.t with HTTP::Headers > 6.00. [Rolando | |
| <rolosworld@gmail.com>] | |
| Fix the build with VC++ and dmake (rather than nmake) on Windows. The | |
| Makefile generated by Apache2::Build uses shell commands for the manifest | |
| file, but neglected to tell dmake to use the shell. [Steve Hay] | |
| Don't write an 'rpm' target into the Makefile on Windows. It isn't relevant | |
| on Windows, and the (hard-coded, not MakeMaker-generated) recipe group has | |
| syntax which dmake doesn't understand. [Steve Hay] | |
| =item 2.0.8 April 17, 2013 | |
| Perl 5.16.3's fix for a rehash-based DoS makes it more difficult to invoke | |
| the workaround for the old hash collision attack, which breaks mod_perl's | |
| t/perl/hash_attack.t. Patch from rt.cpan.org #83916 improves the fix | |
| previously applied as revision 1455340. [Zefram] | |
| On Perl 5.17.6 and above, hash seeding has changed, and HvREHASH has | |
| disappeared. Patch to update mod_perl accordingly from rt.cpan.org #83921. | |
| [Zefram] | |
| Restore build with Perl 5.8.1, 5.8.2 etc: take care to use | |
| $Config{useithreads} rather than $Config{usethreads}, and supply definitions | |
| of Newx and Newxz as necessary. [Steve Hay] | |
| On Perl 5.17.9, t/apache/read2.t fails because an "uninitialized value" | |
| warning is generated for the buffer being autovivified. This is because | |
| the sv_setpvn() that's meant to vivify the buffer doesn't perform set | |
| magic; the warning is generated by the immediately following SvPV_force(). | |
| Patch to fix this from rt.cpan.org #83922. [Zefram] | |
| Fix t/perl/hash_attack.t to work with Perl 5.14.4, 5.16.3 etc, which | |
| contain a fix for CVE-2013-1667 (memory exhaustion with arbitrary hash | |
| keys). This resolves rt.perl.org #116863, from where the patch was taken. | |
| [Hugo van der Sanden] | |
| use APR::Finfo instead of Perl's stat() in ModPerl::RegistryCooker to | |
| generate HTTP code 404 even if the requested filename contains newlines | |
| [Torsten] | |
| Remove all uses of deprecated core perl symbols. [Steve Hay] | |
| Add branch release tag to 'make tag' target. [Phred] | |
| =item 2.0.7 June 5, 2012 | |
| Fix breakage caused by removal of PL_uid et al from perl 5.16.0. Patch from | |
| rt.cpan.org #77129. [Zefram] | |
| =item 2.0.6 April 24, 2012 | |
| Preserve 5.8 compatibility surrounding use of MUTABLE_CV [Adam Prime] | |
| Move code after declarations to keep MSVC++ compiler happy. [Steve Hay] | |
| Adopt modperl_pcw.c changes from httpd24 branch. [Torsten Foertsch] | |
| Pool cleanup functions must not longjmp. Catch these exceptions and turn | |
| them into warnings. [Torsten Foertsch] | |
| Fix a race condition in our tipool management. | |
| See http://www.gossamer-threads.com/lists/modperl/dev/104026 | |
| Patch submitted by: SalusaSecondus <salusa@nationstates.net> | |
| Reviewed by: Torsten Foertsch | |
| Ensure that MP_APXS is set when building on Win32 with MP_AP_PREFIX, | |
| otherwise the bundled Reload and SizeLimit builds will fail to find a | |
| properly configured Test environment. | |
| [Steve Hay] | |
| Fix a few REFCNT bugs. | |
| Patch submitted by: Niko Tyni <ntyni@debian.org> | |
| Reviewed by: Torsten Foertsch | |
| Correct the initialization of the build config in ModPerl::MM. The global | |
| variable was only being set once on loading the module, which was before | |
| Apache2::BuildConfig.pm had been written, leading to cwd and MP_LIBNAME | |
| being unset when writing the Reload and SizeLimit makefiles. | |
| [Steve Hay] | |
| Discover apr-2-config from Apache 2.4 onwards. [Gozer] | |
| Apache 2.4 and onwards doesn't require linking the MPM module directly in | |
| the httpd binary anymore. APXS lost the MPM_NAME query, so we can't assume | |
| a given MPM anymore. Introduce a fake MPM 'dynamic' to represent this. | |
| [Torsten Foertsch, Gozer] | |
| Perl 5.14 brought a few changes in Perl_sv_dup() that made a threaded apache | |
| segfault while cloning interpreters. | |
| [Torsten Foertsch] | |
| PerlIOApache_flush() and mpxs_Apache2__RequestRec_rflush() now no longer throw | |
| exceptions when modperl_wbucket_flush() fails if the failure was just a reset | |
| connection or an aborted connection. The failure is simply logged to the error | |
| log instead. This should fix cases of httpd.exe crashing when users press the | |
| Stop button in their web browsers. | |
| [Steve Hay] | |
| Fixed a few issues that came up with LWP 6.00: | |
| - t/response/TestAPI/request_rec.pm assumes HTTP/1.0 but LWP 6 uses 1.1 | |
| - t/api/err_headers_out.t fails due to a bug somewhere in LWP 6 | |
| - t/filter/TestFilter/out_str_reverse.pm sends the wrong content-length header | |
| [Torsten Foertsch] | |
| Bugfix: Apache2::ServerUtil::get_server{description,banner,version} cannot | |
| be declared as perl constants or they won't reflect added version components | |
| if Apache2::ServerUtil is loaded before the PostConfig phase. Now, they | |
| are ordinary perl functions. [Torsten Foertsch] | |
| Check for the right ExtUtils::Embed version during build [Torsten Foertsch] | |
| Take a lesson from rt.cpan.org #66085 and pass LD_LIBRARY_PATH if mod_env | |
| is present. Should prevent test failures on some platforms. | |
| [Fred Moyer] | |
| =item 2.0.5 February 7, 2011 | |
| The mod_perl PMC dedicates this release of mod_perl to Randy Kobes, who | |
| passed away in September 2010. Randy was a member of the mod_perl project | |
| management committee and a co-author of the mod_perl Developer's Cookbook. | |
| His work helped many Windows mod_perl users. His work with ppm files, and | |
| Win32 perl users will be sorely missed. He was kind, bright, and always | |
| willing to lend a hand on the mod_perl user's list. | |
| Prepare modperl for the upcoming perl 5.14 [Torsten Foertsch] | |
| Add lib/ModPerl/MethodLookup.pm to MANIFEST via lib/ModPerl/Manifest.pm | |
| RT #48103 reported by MARKLE@cpan.org | |
| [Fred Moyer] | |
| PerlIOApache_write() now throws an APR::Error object, rather than just a string | |
| error, if modperl_wbucket_write() fails. | |
| [Steve Hay] | |
| Authentication tests fail with LWP 5.815 and later | |
| [Doug Schrag] | |
| Concise test won't perform unless StatusTerse is set to ON | |
| [Doug Schrag] | |
| Look for a usable apxs in $ENV{PATH} if all other options fail, then prompt the user for one. | |
| [Phred] | |
| Work around bootstrap warnings when Apache2::BuildConfig has not been created yet. | |
| [Phred] | |
| Remove Apache::test compatibility (part of mod_perl 1.2.7), that code causes build issues and is 4 versions out of date. | |
| [Phred] | |
| Make sure perl is built either with multiplicity and ithreads or without | |
| both [Theory, Torsten] | |
| Support for "install_vendor" and "install_site" make targets [Torsten] | |
| Run tests on bundled pure perl Apache::* modules [Gozer, Phred] | |
| Implement a mini-preprocess language for map-files in xs/maps. | |
| [Torsten Foertsch] | |
| Implement APR::Socket::fileno [Torsten Foertsch] | |
| Export PROXYREQ_RESPONSE, a missing PROXYREQ_* constant [Gozer] | |
| Make sure standard file descriptors are preserved by the perl-script | |
| handler [Torsten Foertsch] | |
| Fix the filter init handler attribute check in | |
| modperl_filter_resolve_init_handler() [Torsten Foertsch] | |
| Make sure buffer is a valid SV in modperl_filter_read() [Torsten Foertsch] | |
| Move modperl_response_finish() out of modperl_response_handler_run in | |
| mod_perl.c [Torsten Foertsch] | |
| "MODPERL_INC= now correctly supported as an argument to Makefile.PL" | |
| [Torsten Foertsch] | |
| Fix an XSS issue in Apache2::Status reported by Richard J. Brain | |
| <richard@procheckup.com>. [Torsten Foertsch] | |
| Add NOTICE file to the distribution. [Joe Schaefer] | |
| Make sure Apache2::RequestIO::read doesn't clear the buffer on end of | |
| file and handle negative offsets and offsets that are larger than | |
| the current string length. [Torsten Foertsch] | |
| Fix a problem that could make APR::XSLoader and Apache2::XSLoader | |
| load the wrong shared library. [Torsten Foertsch] | |
| Fix compilation when using a non-threaded APR. | |
| [Gozer, Philip M. Gollucci] | |
| Make sure mod_perl's own ChildInitHandlers are run before user | |
| supplied ones. This fixes the incorrectly reported value of $$ | |
| at ChildInit time [Gozer] | |
| =item 2.0.4 April 16, 2008 | |
| Fix $r->location corruption under certain conditions | |
| [Gozer] | |
| Fix a crash when spawning Perl threads under Perl 5.10 | |
| [Gozer] | |
| Fix erratic behaviour when filters were used with Perl 5.10 | |
| [Gozer] | |
| Fix problems with redefinitions of perl_free as free and perl_malloc | |
| as malloc on Win32, as described at | |
| http://marc.info/?l=apache-modperl&m=119896407510526&w=2 | |
| [Tom Donovan] | |
| Fix a crash when running a sub-request from within a filter where | |
| mod_perl was not the content handler. [Gozer] | |
| Refactor tests to use keepalives instead of same_interp [Gozer, Phred] | |
| Apache2::Reload has been moved to an externally maintained | |
| CPAN distribution [Fred Moyer <fred@redhotpenguin.com>] | |
| PerlCleanupHandler are now registered with a subpool of $r->pool, | |
| instead of $r->pool itself, ensuring they run _before_ any other | |
| $r->pool cleanups [Torsten Foertsch] | |
| Fix a bug that would prevent pnotes from being cleaned up properly | |
| at the end of the request [Torsten Foertsch] | |
| On Win32, embed the manifest file, if present, in mod_perl.so, | |
| so as to work with VC 8 [Steve Hay, Randy Kobes] | |
| Expose apr_thread_rwlock_t with the APR::ThreadRWLock module | |
| [Torsten Foertsch] | |
| Don't waste an extra interpreter anymore under threaded MPMs when using a | |
| modperl handler [Torsten Foertsch] | |
| Fix a bug that could cause a crash when using $r->push_handlers() multiple | |
| times for a phase that has no configured handlers [Torsten Foertsch] | |
| Catch up with some httpd API changes | |
| 2.2.4: | |
| The full server version information is now included in the error log at | |
| startup as well as server status reports, irrespective of the setting | |
| of the ServerTokens directive. ap_get_server_version() is now | |
| deprecated, and is replaced by ap_get_server_banner() and | |
| ap_get_server_description(). [Jeff Trawick] | |
| 2.3.0: | |
| ap_get_server_version() has been removed. Third-party modules must | |
| now use ap_get_server_banner() or ap_get_server_description(). | |
| [Gozer] | |
| fixed Apache2::compat Apache2::ServerUtil::server_root() resolution | |
| issues [Joshua Hoblitt] | |
| *) SECURITY: CVE-2007-1349 (cve.mitre.org) | |
| fix unescaped variable interprolation in regular expression | |
| [Randal L. Schwartz <merlyn@stonehenge.com>, Fred Moyer <fred@redhotpenguin.com>] | |
| Make $r->the_request() writeable | |
| [Fred Moyer <fred@redhotpenguin.com>] | |
| fix ModPerl::RegistryCooker::read_script to handle all possible | |
| errors, previously there was a case where Apache2::Const::OK was | |
| returned on an error. [Eivind Eklund <eeklund@gmail.com>] | |
| a minor compilation warning resolved in modperl_handler_new_from_sv | |
| [Stas] | |
| a minor compilation warning resolved in modperl_gtop_size_string | |
| [Stas] | |
| Prevent direct use of _deprecated_ Apache2::ReadConfig in | |
| <Perl> sections with httpd Alias directives from | |
| incorrectly generating | |
| 'The Alias directive in xxxxx at line y will probably never match' | |
| messages. | |
| [Philip M. Gollucci <pgollucci@p6m78g.com>] | |
| Prevent Apache2::PerSections::symdump() from returning invalid | |
| httpd.conf snippets like 'Alias undef' | |
| [Philip M. Gollucci <pgollucci@p6m78g.com>] | |
| Require B-Size 0.9 for Apache2::Status which fixes | |
| Can't call method "script_name" on an undefined value | |
| [Philip M. Gollucci <pgollucci@p6m78g.com>] | |
| -march=pentium4 or anything with an = in it in CCFLAGS or @ARGV | |
| that gets passed to xs/APR/APR/Makefile.PL broke the @ARGV | |
| parsing. I.E. FreeBSD port builds when users had CPUTYPE | |
| set in /etc/make.conf. | |
| [Philip M. Gollucci <pgollucci@p6m7g8.com>] | |
| Fixes to get bleed-ithread (5.9.5+) to comile again. | |
| [Philip M. Gollucci <pgollucci@p6m7g8.com>] | |
| =item 2.0.3 November 28, 2006 | |
| Prevent things in %INC that are not stat() able | |
| from breaking Apache2::Status 'Loaded Modules' | |
| under fatal warnings. | |
| [Philip M. Gollucci <pgollucci@p6m7g8.com>] | |
| When using MP_AP_PREFIX on WIN32 make sure that its | |
| a valid directory. | |
| [Nikolay Ananiev <ananiev@thegdb.com>] | |
| Fix bug concerning 'error-notes' having no value on | |
| errordocument redirect. | |
| [Guy Albertelli II <guy@albertelli.com>] | |
| Multi-line $PerlConfig is now working [Gozer] | |
| PerlOptions None was previously incorrectly reported as invalid | |
| inside <VirtualHost> or <Directory> blocks. | |
| [Philip M. Gollucci] | |
| Require B::Size 0.07 and B::TerseSize 0.07 for Apache2::Status | |
| [Philip M. Gollucci] | |
| Apache2::Status was expecting B::TerseSize to return | |
| an op count for things that it didn't causing | |
| requests like http://localhost/perl-status/main?noh_b_package_size | |
| to cause 405s | |
| [Philip M. Gollucci] | |
| Updates for Win32 to allow building and testing on Apache/2.2: | |
| - use httpd.exe as the Apache binary name when installing apxs | |
| - use new apr library names (libapr-1.lib and libaprutil-1.lib) | |
| [Randy Kobes] | |
| Make sure that additional library paths are included in the build flags | |
| so that mod_perl will use the same versions of libraries that APR does. | |
| [Mike Smith <mike@mailchannels.com>] | |
| Added $r->connection->pnotes, identical to $r->pnotes, but | |
| for the entire lifetime of the connection | |
| [Geoffrey Young, Gozer] | |
| Fixed problems with add_config() and thread-safety: [Gozer] | |
| - $s->add_config is not allowed anymore after server startup | |
| - $r->add_config can only affect configuration for the current | |
| request, just like .htaccess files do | |
| Make sure that LIBS and other MakeMaker command line flags are not | |
| ignored by the top level Makefile.PL and xs/APR/APR/Makefile.PL [Stas] | |
| Corrected a typo that would cause the corruption of $), the | |
| effective group id as Perl sees it [Gozer] | |
| Added support for httpd-2.2's new override_opts in Apache2::Access. | |
| Calls to add_config() now accept an override_opts value as the 4th | |
| argument. [Torsten Foertsch <torsten.foertsch@gmx.net>, Gozer] | |
| Fix 'PerlSwitches +inherit' that got broken somewhere along | |
| the way to 2.0. You can also use 'PerlOptions +InheritSwitches' | |
| for the same result. [Gozer] | |
| Add perl API corresponding to User and Group directives in httpd.conf: | |
| Apache2::ServerUtil->user_id and Apache2::ServerUtil->group_id | |
| [Stas] | |
| Apache2::Reload now first unloads all modified modules before | |
| trying to reload them. This way, inter-module dependencies | |
| are more likely to be correctly satisfied when reloaded | |
| [Javier Uruen Val <juruen@warp.es>, Gozer] | |
| $r->add_config() can now take an optionnal 3rd argument that | |
| specifies what pseudo <Location $path> the configuration is | |
| evaluated into [Torsten Foertsch <torsten.foertsch@gmx.net>] | |
| remove -DAP_HAVE_DESIGNATED_INITIALIZER and -DAP_DEBUG from | |
| MP_MAINTAINER mode to avoid collisions [Joe Orton] | |
| Back out r280262 which was causing Apache2::Reload to misbehave. | |
| [JT Smith <jt@plainblack.com>] | |
| Perl_do_open/close fixes to make mod_perl 2.0 compile with | |
| blead-perl@25889+ (5.9.3+) [Stas] | |
| Added Apache2::PerlSections->server, returning the server | |
| into which the <Perl> section is defined [Gozer] | |
| Require B::Size and B::TerseSize v0.06 for Apache2::Status | |
| options StatusTerse and StatusTerseSize which has now been | |
| updated to support the new mod_perl2 api post RC5. | |
| [Philip M. Gollucci] | |
| When using Apache2::PerlSections->dump, the configuration | |
| would print out in the correct order, but when the configuration was | |
| passed off to Apache the ordering was lost. | |
| [Scott Wessels <swessels@usgn.net>] | |
| =item 2.0.2 - October 20, 2005 | |
| add :proxy import tag to Apache2::Const which exposes new | |
| constants PROXYREQ_NONE, PROXYREQ_PROXY, and PROXYREQ_REVERSE | |
| [Geoffrey Young] | |
| $0 Fixes : [Gozer] | |
| - Setting $0 works on Linux again | |
| - HP-UX and *BSDes show the correct process name instead of '-e' | |
| Fix a critical but trivial bug that would cause MP_MAINTAINER=1 | |
| or MP_TRACE=1 builds to fail if not building against a threaded APR. | |
| Functions such as apr_os_thread_current() would not be linked in, | |
| but were expected to be. | |
| [Philip M. Gollucci] | |
| Add the output of ldd(unix/cygwin) and otool -L (darwin) | |
| for httpd to the mp2bug report script. | |
| [Philip M. Gollucci] | |
| Prevent tools such as Apache2::Status's Loaded Modules screen | |
| from displaying erroneous information about mod_perl.pm being loaded. | |
| [Stas, Philip M. Gollucci] | |
| Correctly set the version of ModPerl::MethodLookup, previously, | |
| it was not set because of the way it was Generating via ModPerl::WrapXS. | |
| [Philip M. Gollucci] | |
| Improve the detection of whether or not we are in an mp2 build tree. | |
| This allows usage of ExtUtils::MakeMaker options such as PREFIX to | |
| not break the probe of mp2 build trees. | |
| [Stas, Philip M. Gollucci] | |
| Add support for the newer Smaps (/proc/self/statm) on Linux | |
| systems that support it (i.e. linux-2.6.13-rc4-mm1) | |
| to accurately count the amount of shared memory. | |
| [Torsten Foertsch <torsten.foertsch gmx.net>] | |
| On cygwin some dlls might happen to be with identical base addresses | |
| and if you try to load both of them you'll get an error and you'll | |
| have to use the rebase utility to fix them. this fix should prevent | |
| this. [Nikolay Ananiev <ananiev@thegdb.com>] | |
| Fix an undefined warning in DSO builds when not using MP_APXS. | |
| [Nikolay Ananiev <ananiev@thegdb.com>] | |
| When running Makefile.PL with the MP_MAINTAINER=1 option | |
| add -Wdeclaration-after-statement if we are using gcc | |
| version 3.3.2 or higher and its not already part of the ccopts. | |
| [Philip M. Gollucci, Gozer] | |
| Several fixes to Apache2::Status | |
| [Philip M. Gollucci] | |
| When using Apache2::Reload and ReloadDebug is set to 'On', | |
| sort the output alphabetically [Philip M. Gollucci] | |
| croak in case a filter returns DECLINED after calling $f->read (as it | |
| is not supposed to happen) [Stas] | |
| another round of cygwin fixes [Nikolay Ananiev <ananiev@thegdb.com>] | |
| Multiple fixes to make mod_perl 2.0 work with blead-perl (5.9.3+) | |
| [Stas] | |
| t/modules/reload.t would fail if run more than 3 times, breaking | |
| smokes [Gozer] | |
| filter flushing now doesn't croak on connection reset | |
| (ECONNRESET/ECONNABORTED), but just logs the event on the 'info' | |
| level. [Stas] | |
| RPM Friendly builds : [Gozer] | |
| - make dist tarballs can now be built directly into RPMs with rpmbuild | |
| - Added a new target 'make rpm' to directly build rpms from a checkout | |
| =item 2.0.1 - June 17, 2005 | |
| B::Terse has problems with XS code, so adjust Apache::Status to eval | |
| {} the code doing Syntax Tree Dump: syntax and execution order options | |
| [Stas] | |
| Fix a broken regexp in Apache2::Build::dir() on win32 that would | |
| incorrectly attempt to fully-qualify paths like c:/some/path | |
| [Nikolay Ananiev <ananiev@thegdb.com>] | |
| Fix the "No library found" warnings when building on win32 without | |
| apxs and MP_AP_PREFIX [Nikolay Ananiev <ananiev@thegdb.com>] | |
| The pure-perl ModPerl::Util::unload_package implementation was | |
| accidently deleting sub-stashes [Gozer] | |
| If running Makefile.PL unnatended (STDIN isn't a terminal or | |
| MP_PROMPT_DEFAULT=1), break out of potentially infinite prompt | |
| loops [Gozer] | |
| fix ModPerl::TestReport used by t/REPORT and mp2bug to use | |
| ExtUtils::MakeMaker's MM->parse_version to get the interesting | |
| packages version number, w/o trying to load them (which may fail if | |
| the environment is not right) [Stas] | |
| fix a bug in ModPerl::RegistryCooker: now stripping __(END|DATA)__ | |
| only at the beginning of the line [Stas] | |
| APR::Base64 : [Torsten Foertsch <torsten.foertsch@gmx.net>] | |
| - fix encode_len() to return the length without accounting for the | |
| terminating '\0' as the C API does. | |
| - fix encode() to create the string of the correct length (previously | |
| was creating one too many) | |
| in mod_perl callbacks merge error-notes entries rather than store just | |
| the newest error [Mark <mark@immermail.com>] | |
| Expose Apache2::Const::EXEC_ON_READ (added to the :override group) | |
| [Stas] | |
| Fix a bug in custom directive implementation, where the code called | |
| from modperl_module_config_merge() was setting the global context | |
| after selecting the new interpreter which was leading to a segfault in | |
| any handler called thereafter, whose context was different | |
| beforehand. [Stas] | |
| =item 2.0.0 - May 20, 2005 | |
| fix global anon_cnt double-initialization bug that was causing | |
| startup segfaults on OSX. [Gozer] | |
| fix the ap_install target in the top-level Makefile (used for static | |
| build) [Stas] | |
| Reintroduce a pure-Perl version of ModPerl::Util::unload_package() | |
| The problematic XS version is now called unload_package_xs() and | |
| not used by default [Gozer] | |
| More APR::Status wrappers: [Stas, Randy Kobes] | |
| - is_EOF | |
| - is_ECONNABORTED | |
| - is_ECONNRESET | |
| - is_TIMEUP | |
| make sure that the build picks up the include directories based on the | |
| apxs queries and only search the httpd source if $self->{MP_AP_PREFIX} | |
| was set. Earlier it was always picking the headers from the httpd | |
| source if it was available, which was resulting in the wrong headers | |
| if the installed httpd was different than the source that was found | |
| [Stas] | |
| introduce ModPerl::RegistryPrefork and ModPerl::PerlRunPrefork, which | |
| behave the same as ModPerl::Registry and ModPerl::PerlRun, | |
| respectively, but chdir to the script's directory like mod_cgi | |
| does. These two new handlers will refuse to load under threaded MPMs | |
| where chdir can't be used as it will affect all running threads [Stas] | |
| ModPerl::RegistryCooker::chdir_file_normal() now chdirs to the current | |
| script's directory or the specified directory as an argument, as it | |
| was planned in first place. Therefore switch ModPerl::Registry and | |
| ModPerl::PerlRun to us NOP for this method call. If chdir_file is | |
| mapped to chdir_file_normal(), then run() and | |
| convert_script_to_compiled_handler() now call chdir to the script's | |
| directory and at before returning go back to the server root. [Stas] | |
| prevent undef warnings in catfile() calls in Apache2::Build when | |
| called from the ModPerl-Registry tree [Stas] | |
| fix modperl_brigade_dump to use apr_file_printf() instead of | |
| fprintf(), which doesn't work everywhere [Stas] | |
| Fix a warning triggered by `ln` on Cygwin, when running perl | |
| Makefile.PL for a second time without previously running make | |
| clean. [Nikolay Ananiev <ananiev@thegdb.com>] | |
| When compiling a static mod_perl and | |
| MP_AP_CONFIGURE="--with-apr=/some/path" argument is given, Apache will | |
| use the apr-config at the given path, but mod_perl was using the | |
| default at "srclib/apr/.libs". Fix that [Nikolay Ananiev <ananiev@thegdb.com>] | |
| Show MP_APU_CONFIG as an argument to Makefile.PL in the Usage | |
| menu. [Nikolay Ananiev <ananiev@thegdb.com>] | |
| Makefile.PL: fix the pre-rename mp2 install diagnostics code, to use | |
| the mp version of 1.999xx and not 1.999_xx, as the latter is | |
| unsuitable for numerical comparison, also fix the name of the reported | |
| conflicting directory [Stas]. | |
| add APR::Status::is_(EACCES|ENOENT), and use in ModPerl::RegistryCooker | |
| to return, as appropriate, Apache2::Const::(FORBIDDEN|NOT_FOUND), | |
| based on $@. Also remove a check in modperl_slurp_filename | |
| of src/modules/perl/modperl_util.c to enable $@ to be set when | |
| opening or reading a file fails. This fixes a bug on Win32, revealed | |
| in 404.t and redirect.t of the ModPerl-Registry tests, as reported | |
| by Steve Hay and Markus Wichitill [Stas, Randy Kobes] | |
| link Apache2::* and ModPerl::* to mod_perl.a and DynaLoader.a, but | |
| -lmod_perl and -lDynaLoader don't work, and we can't supply the full | |
| paths, because MakeMaker doesn't allow this. I workaround this by | |
| making a symlink to mod_perl.a (called libmod_perl.a) and copy | |
| DynaLoader.a to libDynaLoader.a (I don't create a symlink, because, | |
| when running make clean, the real DynaLoader.a may get deleted). The | |
| APR::* extensions are not affected, because in both cases we link them | |
| against aprext. Also other small fixes are added. [Nikolay Ananiev | |
| <ananiev@thegdb.com>] | |
| =item 1.999_23 - May 3, 2005 | |
| fix Apache2::Build::dynamic_link_MSWin32 to generate a new line after | |
| dynamic_link code in Makefile [Nikolay Ananiev <ananiev@thegdb.com>] | |
| fix a warning in Apache2::Build::build_config() when building | |
| with MP_STATIC_EXTS=1 [Nikolay Ananiev <ananiev@thegdb.com>] | |
| improving DSO support on cygwin. The problem with cygwin is that it | |
| behaves like windows (it's a posix layer over windows after | |
| all). That's why we need to supply all symbols during linking time | |
| just like on win32, by adding -lapr-0 -laprutil-0 and -lhttpd. On | |
| windows, Apache supplies all the three libraries and it's easy to | |
| link, but on cygwin apache doesn't play nice and doesn't supply | |
| libhttpd. This change adds libapr and libaprutil. [Nikolay Ananiev | |
| <ananiev@thegdb.com>] | |
| improve the diagnostics when detecting mp2 < 1.999022, tell the user | |
| which files and/or dirs need to be removed [Stas] | |
| restore the DESTDIR support partially nuked by the apache2 rename | |
| branch [Torsten Förtsch <torsten.foertsch gmx.net>] | |
| add APR::Status to provide functions corresponding to the | |
| APR_STATUS_IS_* macros of apr_errno.h, especially those composites | |
| like APR_STATUS_IS_EAGAIN(s) which are satisfied by more than one | |
| specific error condition. Presently only APR_STATUS_IS_EAGAIN is | |
| provided [Randy Kobes] | |
| fix the generation of the manpages for .pm files from sub-projects | |
| like ModPerl-Registry (previously was creating manpage files like | |
| .::ModPerl::PerlRun.3) [Stas] | |
| fix the pod2man'ification part of 'make install' (using POD2MAN_EXE | |
| instead of POD2MAN Makefile macro) [Stas] | |
| =item 1.999_22 - April 14, 2005 | |
| ******************** IMPORTANT ******************** | |
| this version of mod_perl is completely incompatible | |
| with prior versions of mod_perl, both 1.XX and | |
| 1.99_XX. Please read the below changes carefully. | |
| *************************************************** | |
| remove MP_INST_APACHE2 installation option and Apache2.pm - all | |
| mod_perl related files will now be installed so they are visible | |
| via standard @INC. also, refuse to install over mod_perl 2 versions | |
| less than 1.999_22. [Geoffrey Young] | |
| s/Apache::/Apache2::/g and s/mod_perl/mod_perl2/g in all module | |
| APIs. so, Apache::RequestRec is now Apache2::RequestRec, | |
| Apache::compat is now Apache2::compat, and so on. [joes] | |
| move all Apache:: constants to Apache2::Const and all APR:: constants | |
| to APR::Const. for example, Apache:OK is now Apache2::Const::OK and | |
| APR::SUCCESS is now APR::Const::SUCCESS. [Geoffrey Young] | |
| add $ENV{MOD_PERL_API_VERSION} as something that clearly distinguishes | |
| which mod_perl version is being used at request time. [Geoffrey Young] | |
| rename Apache->request() to Apache2::RequestUtil->request(), and | |
| Apache->server() to Apache2::ServerUtil->server() | |
| [Geoffrey Young] | |
| fix Apache2::Status which was bailing out on trying to load modules | |
| with dev versions like 2.121_02 [Stas] | |
| When parsing Makefile.PL MP_* options, handle correctly the MP_FOO=0 | |
| entries [Philip M. Gollucci <pgollucci@p6m7g8.com>] | |
| init the anonsub hash for base perl and each vhost +Parent (previously | |
| was init'ed only for the base perl) [Stas] | |
| fix a bug when a non-threaded perl is used and anonymous sub is pushed | |
| at the server startup (the CV wasn't surviving) [Stas] | |
| Make sure that CPAN shell doesn't triple over usage of | |
| $ExtUtils::MakeMaker::VERSION [Randy Kobes] | |
| Apache2::RequestRec->new now sets $r->request_time [Stas] | |
| remove CGI.pm and Apache::Request dependencies from Apache2::Status | |
| since they weren't used at all [Geoffrey Young] | |
| Fixes for Apache2::Reload's touchfile feature (return Apache2::Const::OK | |
| instead of 1) [Chris Warren <chwarren@cisco.com>] | |
| cygwin fixes: [Nikolay Ananiev <ananiev@thegdb.com>] | |
| - doesn't like XS wrapper starting with 'static' | |
| - need to compile everything with -DCYGWIN | |
| ModPerl::RegistryCooker API change: s/rewrite_shebang/shebang_to_perl/ | |
| the new API now returns the string to prepend before the rest of the | |
| script, instead of rewriting the content, which is both faster and | |
| doesn't mislead the perl debugger [Dominique Quatravaux | |
| <dom@idealx.com>] | |
| Starting from ExtUtils::MakeMaker 6.26 went back to pm_to_blib target | |
| from pm_to_blib.ts introduced in 6.22, so needed to fix the glue_pod | |
| target, so install will work correctly [Stas] | |
| Syntax errors in <Perl> sections were not correctly caught and | |
| reported. [Gozer] | |
| when building mp2 EU::MM looks into Apache-Test/MANIFEST and complains | |
| about the missing Apache-Test/META.yml (which is indeed not included | |
| in the modperl package due to the PAUSE problems of dealing with more | |
| than one META.yml. Solution: Exclude Apache-Test/MANIFEST from | |
| mod_perl distribution package. [Stas] | |
| ModPerl::Registry no longer checks for -x bit (we don't executed | |
| scripts anyway), and thus works on acl-based filesystems. Also | |
| replaced the -r check with a proper error handling when the file is | |
| read in. [Damon Buckwalter <buckwad@gmail.com>] | |
| Apache2::RequestUtil::slurp_filename now throws an APR::Error exception | |
| object (before it was just croaking). [Stas] | |
| fix APR::Error's overload of '==' (it was always returning true | |
| before), and add the corresponding '!=' [Stas] | |
| if $r->document_root was modified, restore it at the end of request | |
| [joes] | |
| Apache2::ServerRec method which set the non-integer fields in the | |
| server_rec, now copy the value from the perl scalar, so if it changes | |
| or goes out of scope the C struct is not affected. Using internal perl | |
| variables to preserve the value, since using the server pool to | |
| allocate the memory will mean a memory leak [Stas] | |
| add the escape_url entry in the ModPerl::MethodLookup knowledgebase | |
| [Stas] | |
| Apache2::SubProcess::spawn_proc_prog now can be called in a void | |
| context, in which case all the communication std pipes will be closed | |
| [Stas] | |
| fix a bug in $r->document_root, which previously weren't copying the | |
| new string away [Stas] | |
| introduce a new build option MP_AP_DESTDIR to aid package builders | |
| direct the Apache-specific files to the right place. [Cory Omand | |
| <Cory.Omand@Sun.COM>] | |
| Fix bug in modperl_package_clear_stash() segfaulting when | |
| encountering declared but not yet defined subroutines. | |
| [Steve Hay <steve.hay@uk.radan.com>, Gozer] | |
| win32 needs PERL_SYS_INIT3/PERL_SYS_TERM calls [Steve Hay | |
| <steve.hay@uk.radan.com>] | |
| Fix broken MP_STATIC_EXTS=1 build. [Gozer] | |
| Perl -Duse64bit fix. Pointers can't just be generically | |
| casted from/to IVs. Use PTR2IV/INT2PTR instead. [Gozer] | |
| Perl -Duse64bit fix. apr_size_t pointers can't just be generically | |
| casted from/to UVs. Use PTR2UV/INT2PTR instead. [Gozer] | |
| fix a bug in Apache2::Build::dir: If the right directory isn't found in | |
| the for loop $dir still contains a > value, so the ||= has no | |
| effect. [Nick Wellnhofer <wellnhofer@aevum.de>] | |
| =item 1.999_21 - January 22, 2005 | |
| PerlPostConfigRequire was trying to detect missing files early on, | |
| but without searching thru @INC, causing false negatives. Better off | |
| skipping that check and leave it to modperl_require_file() to report | |
| problems with finding the file. [Patrick LeBoutillier | |
| <patrick.leboutillier@gmail.com>, Gozer] | |
| add a perl bug workaround: with USE_ITHREADS perl leaks pthread_key_t | |
| on every reload of libperl.{a,so} (it's allocated on the very first | |
| perl_alloc() and never freed). This becomes a problem on apache | |
| restart: if the OS limit is 1024, 1024 restarts later things will | |
| start crashing [Gisle Aas <gisle@ActiveState.com>, Stas] | |
| on Irix mod_perl.so needs to see the libperl.so symbols, which | |
| requires the -exports option immediately before -lperl. [Gordon Lack | |
| <gml4410@ggr.co.uk>] | |
| pool arguments to startup and connection callbacks must be blessed | |
| into APR::Pool and not Apache::Pool class [joes] | |
| Make PerlSetEnv, PerlPassEnv and %ENV in PerlRequre, PerlModule, | |
| PerlConfigRequire and PerlPostConfigRequire affect each other, so a | |
| change in one of these is immediately seen in the others. [Pratik | |
| <pratiknaik gmail.com>, Stas] | |
| =item 1.999_20 - January 5, 2005 | |
| the autogenerated modules (and some implemented in xs/ modules) are | |
| now getting the same version number as $mod_perl::VERSION (the | |
| exception are APR modules which get 0.009_000 for now). [Stas] | |
| until we figure out how to tell PAUSE index about versions of the | |
| autogenerated modules, create a fake module which lists all the | |
| autogenerated modules and their versions and include that in the | |
| distro. [Stas] | |
| moving to the triplet version notation, which requires us to bump 1.99 | |
| => 1.999 so 1.999020 (mp2) > 1.29 (mp1). [Stas] | |
| Now we are gong to have: | |
| $mod_perl::VERSION : "1.099020" | |
| int $mod_perl::VERSION : 1.09902 | |
| $mod_perl::VERSION_TRIPLET: 1.99.20 | |
| <Perl> and PerlPostConfigRequires were leaking some memory at | |
| startup. Use parms->temp_pool instead of parms->pool for temporary | |
| memory allocations. [Gozer] | |
| deal with a situation where an object is used to construct another | |
| object, but it's then auto-DESTROYed by perl rendering the object that | |
| used it corrupted. the solution is to make the newly created objects | |
| refer to the underlying object via magic attachment. only objects | |
| using objects that have DESTROY are effected. This concerns some of | |
| the methods accepting the custom APR::Pool object (not native pools | |
| like $r->pool). [Stas] | |
| Adjusted: | |
| - APR::Brigade: new | |
| - APR::Finfo: stat | |
| - APR::IpSubnet: new | |
| - APR::Table: copy, overlay, make | |
| - APR::ThreadMutex: new | |
| - APR::URI: parse | |
| - Apache::RequestUtil: new | |
| - APR::Pool: new | |
| - APR::BucketAlloc: new | |
| APR::Bucket::alloc_create moved to APR::BucketAlloc::new | |
| APR::Bucket::alloc_destroy moved to APR::BucketAlloc::destroy [Stas] | |
| prefork handlers optimisation: don't dup the handler struct unless | |
| this is a threaded-mpm [Stas] | |
| speed up the 'perl Makefile.PL' stage [Randy Kobes]: | |
| - reduce the number of calls to build_config() of | |
| Apache::Build within ModPerl::BuildMM | |
| - cache the results of the calls to apxs_cflags, apxs_extra_cflags, | |
| and apxs_extra_cppflags in Apache::Build | |
| - in apxs of Apache::Build, return a cached result only when defined | |
| move ModPerl::Util::exit() into mod_perl.so, since it needs to work, | |
| even if ModPerl::Util wasn't loaded [Stas] | |
| =item 1.99_19 - December 23, 2004 | |
| $r->hostname is now writable [Gozer] | |
| Static build with a Perl without ithreads and a non-threaded MPM | |
| would segfault on startup. Caused by a bug in perl's perl_shutdown() | |
| code. Fixed in Perl 5.8.2, so it's now a build requirement [Gozer] | |
| replace the added in 1.99_17 code on resetting/restoring PL_tainted, | |
| with explicit reset before and after each each callback. This solves a | |
| complicated tainting issues caused when perl exception object is | |
| thrown. rgs suggested that it should be safe, similar to perl's own | |
| pp_nextstate which says: /* Each statement is presumed innocent */ | |
| [Stas] | |
| New configuration directives: [Gozer] | |
| - PerlConfigRequire | |
| Just like PerlRequire, but _always_ triggers an immediate | |
| interpreter startup | |
| - PerlPostConfigRequire | |
| A delayed form of PerlRequire, that waits until the post_config | |
| phase before require'ing files | |
| fix a warning in Apache::Status [John Williams <williams tni.com>] | |
| Ignore Apache-Test/META.yml in distribution tarballs until PAUSE | |
| is capable of handling multiple META.yml files in one distro [Gozer] | |
| modperl_exports.c now wraps all exported functions in a #ifndef | |
| function_name wrapper to help in weeding out functions that only make | |
| sense for certain Perl configurations (perlio, threads) (which also | |
| fixes static build against perlio-disabled perls, like 5.6.x) [Gozer] | |
| for make test, skip configuring fastcgi if it's found in the global | |
| httpd.conf, as it causes crashes in the test suite [Stas] | |
| fix Makefile.PL arguments parser to support more than one MP_foo | |
| option on the same line (including .makepl_args.mod_perl2 file) [Stas] | |
| fix compilation issues in ModPerl::Util::current_perl_id (on some | |
| builds newSVpvf can't be resolved but Perl_newSVpvf works just | |
| fine). [Stas, Markus Wichitill <mawic@gmx.de>] | |
| fix APR::Error::str to return a lexical variable, rather than a | |
| string. This function is called by SvTRUE in modperl_errsv() via | |
| overload and on win32 (and randomly on linux) causes crashes via: | |
| "Attempt to free temp prematurely" warning, where this 'temp' is the | |
| string returned by this function. Making it a lexical variable before | |
| returning it, resolves the problem. [Steve Hay] | |
| fix META.yaml s/private/no_index/ (to hide the bundled Apache-Test | |
| from PAUSE indexer) [Randy Kobes] | |
| =item 1.99_18 - December 12, 2004 | |
| Fix x86_64 warnings in modperl_restart_count_*, due to casting between | |
| integers and pointer types [Joe Orton] | |
| open_logs and post_config handlers require the Apache::OK return code | |
| or the server aborts, so we need to log an error in case the handler | |
| didn't fail but returned something different from Apache::OK [Stas] | |
| new function ModPerl::Util::current_perl_id() which returns something | |
| like (.e.g 0x92ac760) (aTHX) under threaded mpm and 0 under | |
| non-threaded perl (0x0). Useful for debugging modperl under threaded | |
| perls. [Stas] | |
| make sure that modperl's internal post_config callback, which amongst | |
| other things, cloning perl interpreters is running as | |
| modperl_hook_post_config_last APR_HOOK_REALLY_LAST, which ensures that | |
| user's post_config callbacks are run before the cloning. now the code | |
| from config phase's startup.pl can be safely moved to the post_config | |
| phase's equivalent. [Stas] | |
| Further sync with libapr constants changes: [Stas] | |
| - the constants | |
| APR::(READ|WRITE|CREATE|APPEND|TRUNCATE|BINARY|EXCL|BUFFERED|DELONCLOSE) | |
| now have a prefix APR::FOPEN_ and moved group s/filemode/fopen/ | |
| - constants from the fileprot group moved to the fprot group and the | |
| prefix has changed: from APR::FILEPROT_ to APR::FPROT_ | |
| - this also fixes the import of APR_EXCL as an error constant | |
| $r->print() and tied print() now return 0E0 (zero but true) when the | |
| call was successful but for zero bytes. [Geoffrey Young] | |
| a new function Apache::ServerUtil::server_shutdown_cleanup_register to | |
| register cleanups to be run at server shutdown. [Stas] | |
| $bb->cleanup is no more segfaulting (was segfaulting due to a broken | |
| prototype in APR, and consequently invalid XS glue code) [Randy Kobes, | |
| Stas] | |
| make sure that ABSPERLRUN and ABSPERLRUN are defined in | |
| src/modules/perl/Makefile (needed by win32 build) [Stas] | |
| For static builds, mod_perl header files were being installed | |
| into apache's source tree instead of where apache installed it's | |
| own headers [Gozer] | |
| modperl_threads_started() wasn't working under static worker build, | |
| due to MP_threads_started static variable not being reset on | |
| restart. Now resetting it. [Stas] | |
| @INC shrinking efforts: [Stas] | |
| 1) when adding $ServerRoot don't add the trailing / (as it ends up | |
| twice when added by A-T w/o trailing /) | |
| 2) add $ServerRoot/lib/perl only if it actually exists | |
| For static builds, we now run 'make clean' in httpd's source | |
| tree before running ./configure if the source tree has been | |
| configured before [Gozer] | |
| Apache::SizeLimit ported [Perrin Harkins <perrin elem.com>] | |
| create a new subpool modperl_server_user_pool (from | |
| modperl_server_pool), which is used internally by | |
| Apache::ServerUtil::server_restart_register. This ensures that | |
| user-registered cleanups are run *before* perl's internals cleanups | |
| are run. (previously there was a problem with non-threaded perls which | |
| were segfaulting on user cleanups, since perl was already gone by that | |
| time). [Stas] | |
| Starting from ExtUtils::MakeMaker 6.22 it no longer generates | |
| pm_to_blib target, but pm_to_blib.ts, so needed to fix the glue_pod | |
| target, so install will work correctly [Stas] | |
| Apache::RequestUtil : $r->child_terminate() implemented for | |
| non-threaded MPMs. [Gozer] | |
| new API Apache::ServerUtil::restart_count() which can be used to tell | |
| whether the server is starting/restarting/gracefully | |
| restarting/etc. Based on this feature implement | |
| $Apache::Server::Starting and $Apache::Server::ReStarting in | |
| Apache::compat [Stas] | |
| Apache::Resource ported to mp2 [Stas] | |
| If none of MP_APXS, MP_AP_PREFIX and MP_USE_STATIC were specified when | |
| configuring Makefile.PL, we now prompt for APXS path first and only if | |
| that fails ask for MP_AP_PREFIX. This is a requirement to get 'make | |
| test' find httpd. [Stas] | |
| Dynamically prompt and add MP_INST_APACHE2=1 when installing on | |
| systems with mod_perl 1 preinstalled. [Stas] | |
| fix the logging call in RegistryCooker [Lars Eggert <lars.eggert | |
| netlab.nec.de>] | |
| fix $r->filename in Apache::compat to update the finfo struct (which | |
| is how it worked in mp1) [Stas] | |
| enclose all occurences of eval_* with ENTER;SAVETMPS; | |
| ... FREETMPS;LEAVE; previously things just happened to work, due to | |
| external scopes which was not very reliable and some change could | |
| introduce obsure bugs. [Stas] | |
| in case a native apache response filter is configured outside the | |
| <Location> block with PerlSet*Filter directive, make sure that | |
| mod_perl doesn't try to add it as connection filter (previously was | |
| logging an error like: [error] a content filter was added without a | |
| request: includes) [Stas] | |
| replace the slow implementation of anon handlers using B::Deparse, | |
| with per-interpreter cache of compiled CODE refs (sort of emulating | |
| named subroutines for anonymous handlers) [Stas]. | |
| avoid segfaults when a bogus $r object is used [Stas] | |
| Remove magicness of PerlLoadModule and implement Apache::Module::add() | |
| for modules that implement their own configuration directives [Gozer] | |
| Apache::Connection::remote_ip is now settable (needed to set the | |
| remote_ip record based on proxy's X-Forwarded-For header) [Stas] | |
| Fix Modperl::Util::unload_package() [Gozer] | |
| - Mistakenly skipping small entries of size 2 and less | |
| - Leave entries from other packages alone | |
| $filter->remove now works with native (non-modperl) filters + test | |
| [Torsten Förtsch <torsten.foertsch gmx.net>] | |
| =item 1.99_17 - October 22, 2004 | |
| Implement Apache->unescape_url_info in Apache::compat and drop it | |
| from the official API for CGI::Util::unescape() as a suggested | |
| replacement [Gozer] | |
| fix xs_generate to croak on duplicate entries in xs/maps files | |
| [Christian Krause <chkr plauener.de>] | |
| Workaround a possible bug in Perl_load_module() [Gozer] | |
| Fix a problem building with non-GNU make (can't make target dynamic | |
| in xs/APR/aprext) [Gozer] | |
| escape HTML in dumped variables by Apache::Status [Markus Wichitill | |
| <mawic@gmx.de>] | |
| $r->document_root can now be changed when safe to do so [Gozer] | |
| APR::Bucket->new now requires an APR::BucketAlloc as its first argument. | |
| New subs added: APR::Bucket::setaside, APR::Bucket::alloc_create, | |
| APR::Bucket::alloc_destroy, APR::Brigade::bucket_alloc. [joes] | |
| reimplement APR::Pool life-scope handling, (the previous | |
| implementation had problems) [joes] | |
| make sure that Apache::Filter::read, APR::Socket::recv, | |
| Apache::RequestIO::read, APR::Brigade::flatten, and APR::Bucket::read | |
| all return tainted data under -T [Stas] | |
| tag the custom pools created by mod_perl for easier pools debug [Joe | |
| Orton] | |
| fix a bug in non-ithreaded-perl implementation where the cached | |
| compiled CODE refs of httpd.conf-inlined one-liner handlers like: | |
| PerlFixupHandler 'sub { use Apache::Const qw(DECLINED); DECLINED }' | |
| didn't have the reference count right. [Stas] | |
| per-server PerlSetEnv and PerlPassEnv values are properly added | |
| to %ENV when only a per-directory handler is configured. | |
| [Geoffrey Young] | |
| resolve several 'Use of uninitialized value in...' warnings in | |
| Apache::Status [Stas]. | |
| make install and static build now correctly installs mod_perl as | |
| well as the statically built apache [Gozer] | |
| if some code changes the current interpreter's tainted state to on, | |
| the return value from the handler callback will be tainted, and we | |
| fail to deal with that. So revert to coercing any return value, but | |
| undef (a special case for exit()). to IV, so that tainted values are | |
| handled correctly as well. [Stas] | |
| make sure that each handler callback starts with a pristine | |
| tainted-ness state, so that previous callback calls won't affect the | |
| consequent ones. Without this change any handler triggering eval or | |
| another function call, that checks TAINT_PROPER, will crash mod_perl | |
| with: "Insecure dependency in eval while running setgid. Callback | |
| called exit." farewell message [Stas] | |
| make sure that 'make distclean' cleans all the autogenerated files | |
| [Stas] | |
| $r->log_reason has been ported and moved out of Apache::compat | |
| [Gozer] | |
| APR::OS::thread_current renamed APR::OS::current_thread_id and | |
| now returns the actual thread_id instead of an object that | |
| needed to be dereferenced to get at the thread_id [Gozer] | |
| change a bunch of the APR:: constants to have a better prefix | |
| (APR::FILETYPE_* and APR::FILEPROT_). libapr will be changed soon too | |
| [Stas] | |
| Generate modperl_exports.c for static builds to prevent the | |
| linker from stripping needed but unused symbols [Gozer] | |
| Add .libs/ as part of the library search path when building | |
| against httpd's source tree [Gozer] | |
| In the static build, run make in httpd's srclib/ early to have | |
| generated files present at mod_perl configure time [Gozer] | |
| When searching for ap(r|u)-config in httpd's source tree, search | |
| into srclib/apr-util as well as srclib/apr [Gozer] | |
| Remove APR::Finfo::pool as it has no use to us [Stas] | |
| get PerlSetVar and PerlAddVar multi-level merges to (finally) work | |
| properly. [Rici Lake <rici ricilake.net>] | |
| MP_AP_BUILD configure option removed. Now implicit when MP_USE_STATIC | |
| is specified [Gozer] | |
| Apache::Module $mod->version() and $mod->minor_version() renamed | |
| to $mod->ap_api_major_version() and $mod->ap_api_minor_version | |
| for clarity [Gozer] | |
| Apache::Log changes: [Stas] | |
| - moved to compat: Apache::warn, Apache->warn, Apache::Server->warn, | |
| Apache::Server::warn | |
| - re-enabled $r->warn | |
| - removed support for Apache::ServerRec->warn | |
| (Apache::ServerRec::warn is still there) | |
| Apache::Directive conftree() changed from class method to | |
| regular subroutine [Gozer] | |
| Apache::Module top_module() and get_config() as class methods | |
| added to Apache::compat for backwards compatibility [Gozer] | |
| Apache::Module top_module() and get_config() changed from class | |
| methods to regular subroutines [Gozer] | |
| Added Apache::CmdParms::add_config() to work around a memory | |
| leak discovered with <Perl> sections in .htaccess files [Gozer] | |
| Added ModPerl::Util::unload_package() to remove a loaded package | |
| as thoroughly as possible by clearing it's stash. [Gozer] | |
| fix Apache->request($r) to be set-able even w/: PerlOptions | |
| -GlobalRequest [Stas] | |
| Add Apache::Reload->unregister_module() to explicitely remove a | |
| module from Apache::Reload's monitoring list [Gozer] | |
| introduce a custom modperl error message for failing filter handlers | |
| (previously 'unknown error' coming from rc=500 was logged) [Stas] | |
| Fix Apache::Log methods/functions to log into the vhost's error_log | |
| file (if there is one). ( $s->log->*, $s->log_error, $s->log_serror, | |
| Apache::ServerRec::warn, etc.). Apache::ServerRec can now export its | |
| warn function to override CORE::warn [Stas] | |
| Fix $s->log->*, $s->log_error and $s->log_serror to again log into the | |
| vhost's error_log file (if there is one). [Stas] | |
| $s->log->warn and other $s->log->foo are now logging to the right | |
| vhost server and not the global one. modperl_sv2server_rec was | |
| broken. [Stas] | |
| Fix a glue_pod make target bug, when .pm file doesn't exist, | |
| e.g. ThreadMutex.pm is not created on unless | |
| $apr_config->{HAS_THREADS} [Stas] | |
| Introduce APR::Socket::poll to poll a non-blocking socket [Ken Simpson | |
| <ksimpson@larch.mailchannels.com>] | |
| Fix the error message when the minimal required httpd version is not | |
| satisfied [Pratik <pratiknaik@gmail.com>] | |
| Fix interactive prompting at perl Makefile.PL, when no APXS or | |
| MP_AP_PREFIX were provided. now asking for an alternative location if | |
| the suggested choices weren't selected. [Stas] | |
| Added APR::URI->rpath method. Returns the path of an uri minus | |
| path_info, if any. [Gozer] | |
| moved Apache::current_callback() to ModPerl::Util::current_callback | |
| where it belongs [Gozer] | |
| modperl_perl_module_loaded() fixed to use %INC to determine if a module | |
| is loaded instead of checking for the existence of a stash [Gozer] | |
| fix the modperl build, where httpd has been built against separate | |
| installations of apr-util and apr, where apr-util has been installed | |
| with a different includedir to apr. [Joe Orton] | |
| $Apache::Server::SaveConfig is now $Apache::PerlSections::Save | |
| [Geoffrey Young] | |
| =item 1.99_16 - Aug 22, 2004 | |
| Fix a compilation problem breaking 1.99_15 (sv_copypv was added in | |
| perl 5.7.3) [Jason Woodward <woodwardj@jaos.org>] | |
| Added $r->content_languages in Apache::RequestRec [Gozer] | |
| APR::Bucket: add delete() and destroy() methods [Stas] | |
| =item 1.99_15 - Aug 20, 2004 | |
| replace the memory allocation for modperl filter handlers to use a | |
| temporary subpool of the ap_filter_t object. previously using perl's | |
| safemalloc had problems on win32 (randomly my_perl == NULL) [Stas] | |
| Disable Apache::HookRun::run_create_request -- it's already run | |
| internally by Apache::RequestRec->new [Stas] | |
| Update Apache::RequestRec->new() to initialize members of request_rec | |
| which were added some time ago (without it we were getting segfaults | |
| in the new pseudo_http test. [Stas] | |
| Apache::CmdParms->limited member replaced by is_method_limited() | |
| method [Gozer] | |
| Apache::Module changes [Gozer] | |
| - readwrite => readonly: | |
| cmds, next, name, module_index, minor_version, version | |
| - removed: remove_module | |
| ensure that a sub-dir Apache-Test exists in the source distro (this is | |
| a requirement, since the test suite relies on the particular | |
| Apache-Test version distributed with the mod_perl source) [Stas] | |
| combine handler resolving failure error with the actual error, so | |
| there is only one logged entry [Stas] | |
| pod manpages are now glued to all .pm files for which .pod exists at | |
| 'make install' phase [Stas] | |
| Apache::RequestIO::sendfile() now indicates which file it has failed | |
| to open on failure. [Stas] | |
| fix Apache::SubRequest's methods: lookup_file, lookup_uri, | |
| lookup_method_uri to default the last argument to | |
| r->proto_output_filters (no request filters for the subrequest) and | |
| not r->output_filters->next as it was before (one filter was getting | |
| skipped and the rest of the filters were applied *twice*). [Stas] | |
| Apache::CmdParms changes [Gozer] | |
| - readwrite => readonly: | |
| override, limited, directive, pool, temp_pool, server, path, | |
| cmd, context, err_directive | |
| - removed: limited_xmethods, xlimited, config_file, err_directive | |
| Fix a bug in APR::Bucket->new when a passed argument was of type | |
| PADTMP [Stas] | |
| Apache::Connection changes [Stas, "Fred Moyer" <fred /about/ | |
| taperfriendlymusic.org>] | |
| - readwrite => readonly: | |
| pool, base_server, local_addr, remote_addr, remote_ip, remote_host, | |
| aborted, local_ip, local_host, id, conn_config, sbh, bucket_alloc | |
| - removed: logname | |
| Move check_cmd_context from Apache::Command to Apache::CmdParms. | |
| [Gozer] | |
| Add :context group of constants for check_cmd_context(). | |
| NOT_IN_VIRTUALHOST, NOT_IN_LIMIT, NOT_IN_DIRECTORY, NOT_IN_LOCATION, | |
| NOT_IN_FILES, NOT_IN_DIR_LOC_FILE & GLOBAL_ONLY [Gozer] | |
| Removed Apache::Command method soak_end_container [Gozer] | |
| Removed Apache::Module methods (dynamic_load_handle and | |
| find_module_name) [Gozer] | |
| All Apache::Command methods are now read-only [Gozer] | |
| Removed Apache::Command methods (func and cmd_data) [Gozer] | |
| Removed Apache::Directive methods (data & walk_config) [Gozer] | |
| All Apache::Directive methods are now read-only [Gozer] | |
| Filters should not reset $@ if it was already set before | |
| invocation [Gozer] | |
| Apache::compat server_root_relative now correctly handles absolute | |
| paths like ap_server_root_relative does [Gozer] | |
| Fix a bug in <Perl> sections with multiple aliases in a | |
| virtualhost container. [Gozer] | |
| PerlModule, PerlRequire, Perl and <Perl> is now supported in | |
| .htaccess. They will run for each request. [Gozer] | |
| removed support for httpd 2.0.46. httpd 2.0.47 is now the minimum | |
| supported version. [Geoffrey Young] | |
| Static builds for httpd >= 2.0.51 available. With the new MP_AP_BUILD | |
| option, configure and compile an httpd with mod_perl statically linked | |
| in [Gozer] | |
| Apache::RequestRec methods changes [Stas] | |
| - readwrite => readonly: | |
| connection, canonical_filename, header_only, main, next, prev, | |
| pool, per_dir_config, request_config, proto_num, protocol, | |
| request_time, server, the_request, unparsed_uri | |
| - removed: | |
| remaining - this method is not needed if the deprecated | |
| $r->client_block methods aren't used, (use $r->read | |
| $r->instead) | |
| canonical_filename - it's a private member | |
| The func Apache::SubProcess::spawn_proc_prog is now a method: | |
| $r->spawn_proc_prog [Stas] | |
| Apache::Process methods (pool, pconf and short_name) are now read-only | |
| [Stas] | |
| ($r|$c|$s)->server_root_relative were removed. Now only an explicit | |
| and somewhat deprecated function API remains: | |
| Apache::ServerUtil::server_root_relative($pool, $path); it's too easy | |
| to cause memory leak with this method, and it's inefficient as it | |
| duplicates the return value, to avoid potential segfaults if the pool | |
| it was allocated from gets destroyed and the value is attempted to be | |
| used. Instead of this method use the equivalent: | |
| File::Spec->catfile(Apache::ServerUtil::server_root, $fname); [Stas] | |
| $r->psignature now lives in the package it belongs to: | |
| Apache::RequestUtil (previously lived in Apache::ServerUtil). [Stas] | |
| A few functions moved namespace from Apache:: to Apache::ServerUtil:: | |
| (to make it easier to find the container of the function): [Stas] | |
| - exists_config_define | |
| - server_root | |
| - get_server_built | |
| - get_server_version | |
| fix an old outstanding bug in the APR::Table's TIE interface with | |
| each()/values() over tables with multi-values keys. Now the produced | |
| order is correct and consistent with keys(). Though, values() works | |
| correctly only with perl 5.8.x and higher. [Joe Schaefer] | |
| require Perl 5.6.1, 5.6.0 isn't supported for a long time, but we | |
| weren't aborting at the Makefile.PL stage [Stas] | |
| Apache::RequestUtil::method_register($s->process->pconf, 'FOO'); is | |
| now $s->method_register('FOO'). | |
| Apache::RequestUtil::add_version_component($s->process->pconf, 'BAR/0.1'); | |
| is now $s->add_version_component('BAR/0.1'). [Stas] | |
| Remove $Apache::Server::StrictPerlSections. Now, all <Perl> | |
| sections errors are fatal by default and cause server startup to | |
| abort on error. [Gozer] | |
| Fix ($r|$filter|$bucket)->read() functions to run the set magic logic, | |
| to handle cases when a passed buffer to fill is not a regular | |
| scalar. [Stas] | |
| Apache::ServerRec accessors changes: [Stas] | |
| - readonly accessors: | |
| process, next, is_virtual, module_config, lookup_defaults and | |
| addrs | |
| - readwrite accessors with the exception of threaded mpms, where the | |
| accessors are writable only before the child_init phase (i.e. before | |
| threads are spawned): | |
| server_admin, server_hostname, port, error_fname, error_log, | |
| loglevel, timeout, keep_alive_timeout, keep_alive_max, keep_alive, | |
| names, wild_names, limit_req_line, limit_req_fieldsize, | |
| limit_req_fields, and path | |
| supports a new type of struct accessor, which is just like read/write | |
| one, but doesn't allow write access starting at the ChildInit phase | |
| under threaded mpm (to avoid thread-safely issues) [Stas] | |
| In order to be consistent with Apache::RequestRec, Apache::Server is | |
| now Apache::ServerRec and all methods/functions from Apache::Server | |
| now live in Apache::ServerRec. [Stas] | |
| Use a context-specific Perl_load_module() instead of load_module(), to | |
| avoid the problem with 'load_module' symbol resolution on certain | |
| platforms, where for some reason it doesn't get resolved at compile | |
| time to Perl_load_module_nocontext [Stas] | |
| Make it possible to disable mod_perl for the base server, but enable | |
| it for the virtual hosts [Stas] | |
| Removed the deprecated path argument to $r->add_config() [Gozer] | |
| Created a META.yml for CPAN and friends, including Apache-Test as | |
| a private resource to keep CPAN from installing mod_perl when a | |
| user just wants Apache::Test [Gozer] | |
| Moving HTTP specific functions get_status_line, method_register from | |
| Apache:: to Apache::RequestUtil:: to match their container [Stas] | |
| Adjust the list of mod_perl header files installed into the Apache2 | |
| include/ directory, made necessary from the renaming and refactoring | |
| arising from the decoupling of APR and APR::* from mod_perl.so. | |
| Also include modperl_apr_perlio.h under xs/APR/PerlIO/ in | |
| the list of such files installed [Stas, Randy Kobes] | |
| $r->read()/READ now throw exceptions [Stas] | |
| $r->rflush now returns nothing (was always returning APR::SUCCESS | |
| before) [Stas] | |
| bug reports generating code: [Stas] | |
| - add (apr|apu)-config linking info | |
| - show the full path to the config file used to get the data for the | |
| report | |
| The APR and APR::* family of modules can now be used without having | |
| to load mod_perl.so. On *nix, this is done by compiling the needed | |
| functions from the appropriate sources used to build mod_perl.so | |
| into APR.so, and then arranging for APR::* to 'use APR ()'. On Win32, | |
| a static library of needed functions is built, and APR/APR::* | |
| then link into this library [Stas, Joe Schaefer, Randy Kobes] | |
| APR::RequestIO::sendfile() now flushes any buffered output before | |
| sending the file contents out. If the return status is not checked and | |
| an error happens it'll throw an exception. Fix offset handling. [Stas] | |
| Registry: remove the misleading prefix "$$: $class:" in the logged | |
| error message, since not only registry errors will get logged if $@ is | |
| set [Stas] | |
| change t/REPORT to suggest to post bug reports to the modperl users | |
| list, to be consistent with the documentation [Stas] | |
| amd64 fixes [Joe Schaefer <joe+gmane@sunstarsys.com>] | |
| - use IV insteaf of int where a pointer is used | |
| - mpxs_APR__Bucket_new needs to use apr_size_t/off_set_t types | |
| APR::Socket::recv() now returns the length of the read data [Stas] | |
| APR::Bucket's read() returns "" instead of undef when there is no data | |
| to read. [Stas] | |
| fix a bug in Registry handlers, where the same error was logged twice | |
| and potentially a wrong error code returned [Stas] | |
| Apache::RequestIO: print(), printf(), puts(), write(), rflush() throw | |
| an exception on failure [Stas] | |
| Apache::SubRequest: run() throw an exception on failure [Stas] | |
| Apache::Filter: [Stas] | |
| - remove unneeded methods: remove_input_filter() and | |
| remove_output_filter(), fputs() | |
| - frec() accessor is made read-only | |
| - fflush(), get_brigade() and pass_brigade() now throw exceptions if | |
| called in the void context | |
| - read, print() and puts() throw an exception on failure | |
| Apache::FilterRec: [Stas] | |
| - remove the next() accessor since it's not used by Apache at the | |
| moment | |
| - name() is made read-only | |
| APR::URI: [Stas] | |
| - removed accessors | |
| o is_initialized() (internal apr_uri flag) | |
| o dns_looked_up() and dns_resolved() (they are not | |
| used by apache/apr) | |
| - all remaining accessors now accept undef value, which unsets the | |
| field | |
| Extended WrapXS code to support a new type of accessor: char * which | |
| accepts undef to set the C pointer to NULL and as such unset the | |
| member of the struct. [Stas] | |
| Exception error messages now include the error id along with the error | |
| message (as they did in first place). [Stas] | |
| $r->finfo now accepts APR::Finfo object as an optional | |
| argument. [Stas] | |
| APR::Finfo [Stas] | |
| - change stat() to return finfo | |
| - make all field accessors readonly | |
| ARP::password_validate is now ARP::Util::password_validate [Stas] | |
| APR::IpSubnet::new() now throws APR::Error exception (not returning | |
| rc) [Stas] | |
| rename package APR::NetLib -> APR::IpSubnet to match the class name | |
| [Stas] | |
| APR::BucketType: [Stas] | |
| - name is readonly | |
| APR::Brigade [Stas] | |
| - destroy() now throws APR::Error exception (not returning rc) | |
| - rename empty => is_empty | |
| - added the method cleanup() | |
| - flatten() now returns the number of bytes read (and passed the | |
| buffer by the argument) and throws APR::Error exception | |
| APR::Bucket: [Stas] | |
| - read() now returns the length of the read data and throws | |
| APR::Error exception (not returning rc). The returned scalar is | |
| now TAINTED. | |
| - type->name now has a module APR::BucketType | |
| - type(), length(), start(), data() are now all readonly | |
| - new() fix a bug in offset handling | |
| =item 1.99_14 - May 21, 2004 | |
| APR::SockAddr::port() accessor is now read-only [Stas] | |
| APR::Pool now has destroy() and clear() available [Stas] | |
| now logging the errors happening in pool cleanup callbacks [Stas] | |
| use the new Apache-Test attribute -minclient in the test suites. Now | |
| along with the default maxclients = minclients+1, we no longer should | |
| get 'server reached MaxClients setting' errors. [Stas] | |
| new API for APR::Socket recv() and send() + updated tests [Stas] | |
| add infrastructure for new ModPerl::Const constants and the first | |
| constant ModPerl::EXIT. [Stas] | |
| re-implement ModPerl::Util::exit to use exception objects, so it's | |
| possible to detect exit called in eval context and call it again | |
| outside the eval context. [Stas] | |
| add the perl interface for the new exception handling code (mod_perl, | |
| apache and apr methods will now throw exceptions with $@ being an | |
| object). New class APR::Error was added, to handle the exception | |
| objects with overload methods. Also added confess and croak | |
| equivalents of Carp's methods, since at the moment the Carp's ones | |
| don't work as is. The following perl and C methods have been renamed: | |
| modperl_apr_strerror => modperl_error_strerror | |
| APR::strerror => APR::Error::strerr | |
| [Stas] | |
| set the 'error-notes' table to the error message on | |
| HTTP_INTERNAL_SERVER_ERROR [Stas] | |
| fix the apxs build function to not handle empty lookups as errors | |
| [Randy Kobes, Steve Hay] | |
| fix type casting problems in the io functions [Stas] | |
| add support for libgtop 2.5.0+ (maintenance mode) [Stas] | |
| APR::Socket::timeout_set now croaks on failure [Stas] | |
| significantly speedup the startup of threaded mpm test suite, by | |
| configuring only the minimal number of perl interpreters to start | |
| [Stas] | |
| make APR::Socket::opt_(set|get) working (and change the previous | |
| behavior) [Stas] | |
| make sure that our protocol module tests that interact with the socket | |
| use a blocking read [Joe Orton] | |
| Use a better approach to figure out whether we need to strip perl's | |
| LargeFilesSource flag, by checking whether libapr was compiled with | |
| -D_FILE_OFFSET_BITS=64 or not. Checking for APR_HAS_LARGE_FILES is | |
| useless since it doesn't tell whether 32 vs 64 bits off_t and similar | |
| types are used [Joe Orton] | |
| 'SetHandler perl-script' no longer grabs any newly encountered END | |
| blocks, and removes them from PL_endav, but only if they are | |
| explicitly registered via ModPerl::Global::special_list_register(END | |
| => $package_name) (this is a new function). It's now possible to have | |
| a complete control of when END blocks are run from the user space, not | |
| only in the registry handlers [Stas] | |
| END blocks encountered by child processes and not hijacked by | |
| ModPerl::Global::special_list_register() are now executed at the | |
| server shutdown (previously they weren't executed at all). [Stas] | |
| Added test to ensure <Perl> sections can have things like %Location | |
| tied [Gozer] | |
| Fix the installation on Win32 so that an appropriate Apache2 | |
| subdirectory under the Perl tree is used when MP_INST_APACHE2 is | |
| specified [Randy Kobes] | |
| Fix a redefined warning in Apache::Status [Stas] | |
| Fix Apache::Status, to lookup the Apache::Request version without | |
| loading it. Only if a suitable (2.x) version is found -- load and use | |
| it. Previously loading the 1.x version was affecting Apache::compat. | |
| [Stas] | |
| Fix a bug in special blocks handling (like END), which until now was | |
| dropping on the floor all blocks but the last one (mainly affecting | |
| registry handlers). [Stas] | |
| The filter streaming API print() function, now correctly handles a | |
| binary data [Stas] | |
| Fix Registry handlers, not to lose the execution errors, when they | |
| include END blocks [Stas] | |
| =item 1.99_13 - March 8, 2004 | |
| respect $ENV{APACHE_TEST_STARTUP_TIMEOUT} settings if any [Stas] | |
| Added tests for issuing subrequests from filters [Geoffrey Young] | |
| Updated to the new Apache License Version 2.0 [Gozer] | |
| Drop the support for making GATEWAY_INTERFACE special. It's not needed | |
| as $ENV{MOD_PERL}, available in both mod_perl generations, should be | |
| used to test whether the code is running under mod_perl. [Stas] | |
| Handle correctly the situation when response HTTP headers are printed | |
| from the handler and the response body starts with \000, which is the | |
| case with some images like .ico. [Stas] | |
| Apache::PerlSections->dump() and store(filename) [Gozer] | |
| expose $c->keepalive related constants and $c->keepalives counter | |
| [Stas] | |
| Perl handlers are now guaranteed to run before core C handlers for | |
| all request phases. [Geoffrey Young] | |
| Fix the STDIN/OUT overriding process to handle gracefully cases, when | |
| either or both are closed/bogus (the problem was only with useperlio | |
| enabled perl) [Stas] | |
| copy apr_table_compress logic from later httpd versions in case mod_perl | |
| is built against 2.0.46, as mod_perl now requires it internally. users | |
| should be aware that 2.0.47 may become the oldest supported httpd version | |
| in the near future. [Geoffrey Young] | |
| Fix the corruption of the httpd process argv[0], caused by $0 | |
| manipulating [Stas] | |
| ModPerl::MethodLookup::lookup_method now handles sub-classed objects | |
| [Stas] | |
| standard %ENV population with CGI variables and contents of the | |
| subprocess_env table (such as SetEnv and PassEnv) has been delayed | |
| until the last possible moment before content-generation runs. | |
| PerlSetEnv and PerlPassEnv are each an exception to this and are | |
| placed in both %ENV and the subprocess_env table immediately, | |
| regardless of the current [+-]SetupEnv setting. | |
| [Geoffrey Young] | |
| fix PerlAddVar configuration merging [Geoffrey Young] | |
| Anonymous subs are now supported in push_handlers, set_handlers, | |
| add_input_filter, etc. A fast cached cv is used with non-ithreaded | |
| perl. A slower deparse/eval approach (via B::Deparse) is used with | |
| ithreads enabled perls. Further optimizations are planned for the | |
| latter case. [Stas] | |
| ht_time w/o the pool is now available only via override/restore compat | |
| API. format_time, has been renamed back to ht_time, and the default | |
| values for fmt, time and gmt are now supported. [Stas] | |
| it's now possible to push new handlers into the same phase that is | |
| running at the moment [Stas]. | |
| when $r->handler($new_handler) is called from a response phase, it now | |
| checks that the response handler type is not switched (e.g. from | |
| 'modperl' to 'perl-script') from the currently used one [Stas] | |
| Since Apache::SubProcess is now part of the mp2 API, add | |
| $r->cleanup_for_exec as a noop in Apache::compat. That function is no | |
| longer needed in Apache2. [Stas] | |
| When 'perl Makefile.PL PREFIX=/foo/bar' is used and mod_perl 1 is | |
| found, but at different prefix no longer require | |
| MP_INST_APACHE2=1. [Stas] | |
| modperl_mgv_resolve now croaks when a module scheduled for autoloading | |
| fails to load. AutoLoaded modules shouldn't silently fail. [Stas] | |
| Perl(Input|Output)FilterHandler handlers are now always AutoLoaded, as | |
| if '+' prefix was used. This must be performed to get the access to | |
| filter attributes long before the filter itself is executed. [Stas] | |
| APR/Pool.xs has been reimplemented. The problem with the previous | |
| implementation is that a dead perl pool object could hijack a newly | |
| created pool, which didn't belong to that object, but which happened | |
| to be allocated at the same memory location. The problem is that | |
| apr_pool_user_data_set/get has no mechanism to check whether the pool | |
| has changed since it was last assigned to (it does but only in the | |
| debug mode). It really needs some signature mechanism which can be | |
| verified that the pool is still the same pool. Since apr_pool doesn't | |
| have this feature, the reference counting has been reimplemented using | |
| a plain sv reference. Several new (mainly hijacking) tests which badly | |
| fail with the previous impelementation have been added. [Stas] | |
| fix calling $r->subprocess_env() in a void context so that it only | |
| populates %ENV if also called with no arguments. also, make sure it | |
| can be called more than once and still populate %ENV. | |
| [Geoffrey Young] | |
| add APR::Brigade::pool() to allow access to the pool associated with | |
| the brigade [Geoffrey Young] | |
| make 't/TEST -startup_timeout secs' working (previously user's value | |
| was ignored) [Stas] | |
| ModPerl::Registry and friends now support non-parsed headers scripts, | |
| whose filename =~ /^nph-/, identically to mod_cgi. + test [Stas] | |
| implement APR::Brigade::length() and APR::Brigade::flatten() (the | |
| latter implements a wrapper for apr_brigade_flatten, but also includes | |
| an emulation of apr_brigade_pflatten) as [Geoffrey Young] | |
| ($r|$s)->add_config() now die if failed (previously returned the | |
| error) [Stas] | |
| fix context problems in <perl> sections and | |
| PerlModule/PerlLoadModule/PerlRequre under threaded mpms w/ | |
| PerlOptions +Parent/+Clone in Vhosts + TestVhost::config test. [Stas] | |
| Implemented Apache::get_server_version and Apache::get_server_built | |
| as constant subroutines [Geoffrey Young] | |
| Moved some functions out of the Apache:: namespace: | |
| Apache::unescape_url() is now Apache::URI::unescape_url() | |
| Apache::log_pid() is now Apache::Log::log_pid() | |
| Apache::LOG_MARK() is now Apache::Log::LOG_MARK() | |
| [Geoffrey Young] | |
| if MP_AP_PREFIX is used apxs and apr-config from the apache build tree | |
| won't work, so it can't co-exist with MP_APXS and MP_APR_CONFIG build | |
| options - ensure that this doesn't happen. [Stas] | |
| server_root_relative() now requires either a valid pool or an $r, $s, | |
| or $c object as a first argument. also, the returned result is a | |
| copy, protecting against cases where the pool would go out of scope | |
| before the result. [Geoffrey Young] | |
| Check the success of sysopen in tmpfile() in compat [Geoffrey Young] | |
| make sure DynaLoader is loaded before XSLoader, not only with perl | |
| 5.6.1, but always because of the issues with <Perl> sections are | |
| loaded from +Parent vhost [Stas] | |
| added ($r|$s)->is_perl_option_enabled($option_name), to test for | |
| PerlOptions + tests [Stas] | |
| On Solaris add a workaround for xs/APR/APR/Makefile.PL to build | |
| APR.so, correctly linked against apr and apr-util libs, by addding the | |
| missing -R paths corresponding to -L flags. EU::MM was adding them via | |
| LD_RUN_PATH instead of using -R, but since perl's lddflags may have -R | |
| it overrides LD_RUN_PATH. So explicitly add anything that may go into | |
| LD_RUN_PATH via -R. Also make sure that -R coming from Apache will | |
| appear first. [Brad Lanam <bll@gentoo.com>] | |
| 'make dist' now generates and picks Apache-Test/META.yml which was | |
| always reported missing, as it was included in Apache-Test/MANIFEST | |
| [Stas] | |
| fix the $r->read function to return undef on failure similar to the | |
| core perl function and make $! available for those who test for read() | |
| failures. [Stas] | |
| Make sure that pnotes are destroyed after PerlCleanup handlers are | |
| finished and not before + test. [Stas] | |
| =item 1.99_12 - December 22, 2003 | |
| 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] | |
| =item 1.99_11 - November 10, 2003 | |
| 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 | |
| v5.6.2 or higher is used, so that we don't miss compilation | |
| warnings. [Stas] | |
| fix the Makefile.PL option parser to support overriding of certain | |
| build options, in addition to appending to them (.e.g. now MP_LIBNAME | |
| is overridable) [Andrew Wyllie <wyllie@dilex.net>] | |
| make sure that connection filters won't be inserted as request filters | |
| [Stas] | |
| Prevent the 'Use of uninitialized value.' warning when | |
| ModPerl::Util::exit is used. [Stas] | |
| To make the test-suite sandbox-friendly, which break when things try to | |
| run off /tmp, use t/logs as the location of the mod_cgid socket and | |
| TMPDIR env var [Haroon Rafique <haroon.rafique@utoronto.ca>] | |
| =item 1.99_10 - September 29, 2003 | |
| added Apache::CRLF, Apache::CR, and Apache::LF to | |
| Apache::Const's :platform group [Geoffrey Young] | |
| make sure that the custom pools are destroyed only once and only when | |
| all references went out of scope [Stas] | |
| ($r|$c)->add_(input|output)_filter(\&handler) now verify that the | |
| filter of the right kind is passed and will refuse to add a request | |
| filter as a connection filter and vice versa. The request filter | |
| handler is not required to have the FilterRequestHandler attribute as | |
| long as it doesn't have any other attributes. The connection filter | |
| handler is required to have the FilterConnectionHandler | |
| attribute. [Stas] | |
| fix tracing with (PerlTrace/MOD_PERL_TRACE) on win32 (the error_log | |
| filehandle was invalid after the open_logs phase) [Stas] | |
| fix a bug where %ENV vars set via subprocess_env persist across | |
| requests. (e.g. a Cookie incoming header which ends up in | |
| $ENV{HTTP_COOKIE} would persist to the next request which has no | |
| Cookie header at all). Now we unset all the %ENV vars set from | |
| subprocess_env. Improve and extend the tests to cover this bug. [Stas] | |
| it is invalid to return HTTP_INTERNAL_SERVER_ERROR or any other HTTP | |
| response code from modperl_wbucket_pass, therefore set the error code | |
| into r->status and return APR_SUCCESS. Until now response handler | |
| with messed up response headers, were causing no response what so ever | |
| to the client. LWP was assuming 500, and it was all fine, testing | |
| without LWP has immediately revealed that there was a problem in the | |
| handling of this case. [Stas] | |
| put the end to the 'Not a CODE reference' errors, instead provide an | |
| intelligent error message, hopefully telling which function can't be | |
| found. at the same time improve the tracing to include the pid/tid of | |
| the server that has encountered this problem, to make it easier to | |
| debug. [Stas] | |
| mod_perl handler must be duped for any mpm which runs within | |
| USE_ITHREAD. Until now there was a big problem with prefork mpm if | |
| any of its vhosts was using PerlOptions +(Parent|Clone) and happened | |
| to load handlers before the main server. When that was happening the | |
| main server will see that the handler was resolved (since it sees the | |
| handler struct from the vhost that loaded this module, instead of its | |
| own), which in fact it wasn't, causing the failure to run the handler | |
| with the infamous 'Not a CODE reference' error. [Stas] | |
| Make sure that the static mod_perl library is built after the dynamic | |
| (a requirement on win32) [Steve Hay <steve.hay@uk.radan.com>] | |
| Apache::Status now generates HTML 4.01 Strict (and in many cases, also | |
| ISO-HTML) compliant output. Also add a simple CSS to make the reports | |
| look nicer. [Ville Skyttä <ville.skytta@iki.fi>] | |
| APR::Pool::DESTROY implemented and tweaked to only | |
| destroy pools created via APR::Pool->new() [Geoffrey Young] | |
| $r->slurp_filename is now implemented in C. [Stas] | |
| remove support for httpd 2.0.45/apr 0.9.3 and lower. | |
| httpd 2.0.46 is now the minimum supported version. | |
| [Geoffrey Young] | |
| APR::PerlIO now accepts the pool object instead of a request/server | |
| objects, so it can be used anywhere, including outside mod_perl [Stas] | |
| when perl is built with perlio enabled (5.8+) the new PerlIO Apache | |
| layer is used, so now one can push layers onto STDIN, STDOUT handles | |
| e.g. binmode(STDOUT, ':utf8'); [Stas] | |
| add ap_table_compress() to APR::Table [Geoffrey Young] | |
| alter stacked handler interface so that mod_perl follows Apache | |
| as closely as possible with respect to VOID/RUN_FIRST/RUN_ALL | |
| handler types. now, for phases where OK ends the Apache | |
| call list (RUN_FIRST handlers, such as the PerlTransHandler), | |
| mod_perl follows suit and leaves some handlers uncalled. | |
| [Geoffrey Young] | |
| Apache::Build now tries to use the new APR_BINDIR query string to find | |
| the location of apr-config. [Stas] | |
| new package Apache::porting to make it easier to port mp1 code to mp2 | |
| [Stas] | |
| new Apache::Build methods: mpm_name(), mpm_is_threaded(). use them in | |
| the top-level Makefile.PL to require 5.8.0/ithreads if mpm requires | |
| threads. [Stas] | |
| add the missing XS methods to ModPerl::MethodLookup, add support for | |
| mp1 methods that are no longer in the mod_perl 2.0 API. [Stas] | |
| mod_perl now refuses to build against threaded mpms (non-prefork) | |
| unless perl 5.8+ w/ithreads is used [Stas] | |
| don't try to read PERL_HASH_SEED env var, where apr_env_get is not | |
| available (apr < 0.9.3) [Stas] | |
| APR.so now can be loaded and used outside mod_perl (all the way back | |
| to httpd 2.0.36) [Stas] | |
| perl 5.8.1 randomizes the hash seed, because we precalculate the hash | |
| values of mgv elements the hash seed has to be the same across all | |
| perl interpreters. So mod_perl now intercepts cases where perl would | |
| have randomize it, do the seed randomization by itself and tell perl | |
| to use that value. [Stas] | |
| fix APR::PerlIO layer to pop itself if open() has failed. [Stas] | |
| move the definition of DEFINE='-DMP_HAVE_APR_LIBS' to the top level | |
| Makefile.PL, since it overrides MY::pasthru target which makes it | |
| impossible to define local DEFINE in subdirs. [Stas] | |
| make APR perl functions work outside mod_perl: several libraries | |
| weren't linked. Also LIBS needs to receive all libs in one | |
| string. [Stas] | |
| Apache::compat: $r->cgi_env, $r->cgi_var are now aliases to | |
| $r->subprocess_env [Stas] | |
| For Win32, generate .pdb files for debugging when built with | |
| MP_DEBUG. These will get installed into the same directory as | |
| the associated dll/so libs. As well, install mod_perl.lib | |
| into MP_AP_PREFIX/lib/ for use by 3rd party modules [Randy Kobes]. | |
| Apache2.pm is now autogenerated and will adjust @INC to include | |
| Apache2/ subdirs only if built with MP_INST_APACHE2=1 [Stas] | |
| Change the default value for the argument 'readbytes' for | |
| ap_get_brigade(), from 0 to 8192. other than being useless, 0 always | |
| triggers an assert in httpd internal filters and 8192 is a good | |
| default. [Stas] | |
| Fix DynaLoader breakage when using DL_GLOBAL on OpenBSD | |
| [Philippe M. Chiasson <gozer@cpan.org>] | |
| renamed the private modperl_module_config_get_obj function to | |
| modperl_module_config_create_obj, since the logic creates | |
| the object but doesn't dig it out if it already exists. then, | |
| moved logic from mpxs_Apache__Module_get_config into a new public | |
| C function that reused the old name, modperl_module_config_get_obj. | |
| while Apache::Module->get_config exists as a wrapper to return the | |
| object to Perl space, now C/XS folks can also access the object | |
| directly with the public function. | |
| [Geoffrey Young] | |
| Apache::Reload: add a new config variable: | |
| ReloadConstantRedefineWarnings to optionally shut off the constant sub | |
| redefine warnings [Stas] | |
| implement $parms->info. directive handlers should now be complete. | |
| [Geoffrey Young] | |
| MP_GTOP now works with modern GCC | |
| [Philippe M. Chiasson <gozer@cpan.org] | |
| add missing dependencies to Apache::PerlSections | |
| [Geoffrey Young] | |
| $r->get_client_block is bogus in httpd-2.0.45 (and ealier), as it | |
| can't handle EOS buckets arriving in the same bucket brigade with | |
| data. so rewrite ModPerl::Test::read_post to use an explicit read | |
| through all bucket brigades till it sees eos and then it stops. The | |
| code is longer but it works correctly. [Stas] | |
| an attempt to resolve the binary compatibility problem in | |
| PerlIOAPR_seek API when APR_HAS_LARGE_FILES=0 [Stas] | |
| perl 5.8.0 forgets to export PerlIOBase_noop_fail, causing problems on | |
| win32 and aix. reimplement this function locally to solve the | |
| problem. APR::PerlIO should now be useful on win32 and aix [Stas] | |
| implement DECLINE_CMD and DIR_MAGIC_TYPE constants | |
| [Geoffrey Young] | |
| allow init filter handlers to call other methods than just $f->ctx [Stas] | |
| Fix Apache::Reload to gracefully handle the case with empty Touchfiles | |
| [Dmitri Tikhonov <dmitri@netilla.com>] | |
| PerlRequire entried should be executed before PerlModule entries in | |
| VirtualHost containers, just like in the base server [Stas] | |
| =item 1.99_09 - April 28, 2003 | |
| $filter->seen_eos() now accepts 1/0 to set/unset the flag so streaming | |
| filters can control the sending of EOS. [Stas] | |
| support systems where apr header files are installed separately from | |
| httpd header files ["Andres Salomon" <dilinger@voxel.net>] | |
| implement init filter handlers + tests [Stas] | |
| improving ModPerl::MethodLookup to: | |
| - handle more aliased perl XS functions | |
| - sort the methods map struct so one can use the autogenerated map as is | |
| - add lookup_module, tells which methods are defined by a given module | |
| - add lookup_object, tells which methods can be called on a given object | |
| - provide autoexported wrappers print_method, print_module and | |
| print_object for easy deployment from the command line | |
| [Stas] | |
| add Perl glue for functions: APR::Socket::timeout_get | |
| APR::Socket::timeout_set [Stas] | |
| similar to SetEnv, upcase the env keys for PassEnv on platforms with | |
| caseless env (e.g. win32) [steve.sparling@ps.ge.com] | |
| Add a backcompat wrapper for $r->notes (mp2 supports only the | |
| APR::Table API) [Stas] | |
| Add a script mp2bug and a target 'make bugreport', so people can use | |
| bugreporting during the build and after modperl is installed. [Stas] | |
| Add a script mp2doc as a replacement for perldoc (due to 2.0 modules | |
| living under Apache2, which won't be looked at by perldoc). [Stas] | |
| Add a constant APR::PerlIO::PERLIO_LAYERS_ARE_ENABLED and use it in | |
| tests [Stas] | |
| Require perl 5.8 or higher when building mod_perl on OSes requiring | |
| ithreads (e.g., win32), since 5.6.x ithreads aren't good. [Stas] | |
| MP_COMPAT_1X=0 now can be passed to Makefile.PL to disable | |
| mp1-back-compat compile-time features + adjust tests. [Stas] | |
| <SERVER_ROOT> and <SERVER_ROOT>/lib/perl are now added to @INC, just | |
| like mod_perl 1.0 with MP_COMPAT_1X=1 (currently enabled by | |
| default). [Stas] | |
| The Perl-5.8.0 crypt() workaround is now used only if 5.8.0 is used, | |
| since 5.8.1-tobe/5.9.0-tobe(blead-perl) won't compile with | |
| it. [Geoffrey Young] | |
| new directives PerlSetInputFilter and PerlSetOutputFilter, which are | |
| the same as SetInputFilter and SetOutputFilter respectively, but allow | |
| to insert non-mod_perl filters before, between or after mod_perl | |
| filters. + tests [Stas] | |
| improved filters debug tracing [Stas] | |
| implement $filter->remove (filter self-removal) + tests [Stas] | |
| remove the second-guessing code that was trying to guess the package | |
| name to load from the handler configuration (by stripping ::string and | |
| trying to load the package). fall back to using explicit PerlModule to | |
| load modules whose handler sub name is not called 'handler' + adjust | |
| tests. [Stas] | |
| set the magic taint flags before modules are required [Stas] | |
| make sure to set base server's mip before any of the | |
| PerlRequire/PerlModule directives are called, since they may add | |
| add_config(), which in turn runs Perl sections or PerlLoadModule, | |
| which may need the scfg->mip to be set. [Stas] | |
| ModPerl::MM is now ready to be used in Makefile.PL of 3rd party | |
| mod_perl modules [Stas and Geoff] | |
| fix a segfault caused by PerlModule in $s->add_config, due to setting | |
| the MP_init_done flag before init was done + add test [Stas] | |
| adjust the generated Makefile's to properly build on aix (tested on | |
| powerpc-ibm-aix5.1.0.0) [Stas] | |
| the build now automatically glues the .pod files to the respective .pm | |
| files, so one can use perldoc on .pm files to read the | |
| documentation. [Stas] | |
| provide a workaround for ExtUtils::MakeMaker::mv_all_methods, so | |
| ModPerl::BuildMM and ModPerl::MM can override EU::MM methods behind | |
| the scenes. [Stas] | |
| adding ModPerl::BuildMM, which is now used for building mod_perl. | |
| ModPerl::MM will be used for 3rd party modules. ModPerl::BuildMM | |
| reuses ModPerl::MM where possible. [Stas] | |
| drop the glue code for apr_generate_random_bytes, since it's not | |
| available on all platforms. [Stas] | |
| Since non-threaded mpms don't use tipools in mips, don't create and | |
| destroy them. [Stas] | |
| re-use the workaround for glibc/Perl-5.8.0 crypt() bug for the | |
| main/vhost base perl interpreters as well. This solves the problem for | |
| the buggy glibc on RH8.0. [Stas] | |
| send_cgi_header now turns the header parsing off and can send any data | |
| attached after the response headers as a response body. [Stas] | |
| move the check that print/printf/puts/write/etc are called in the | |
| response phase into the functions themselves so 1) we can print a more | |
| useful error message 2) this check is not always needed in | |
| modperl_wbucket_write, when called internally, so we save some cycles. | |
| [Stas] | |
| add checks that print/printf/puts/write/etc are called in the response | |
| phase. move the check into the functions themselves so we can print a | |
| more useful error message [Stas] | |
| 'make install' now installs mod_perl*h files under httpd's include | |
| tree [Stas] | |
| When PerlOptions +ParseHeaders is an effect, the CGI headers parsing | |
| won't be done if any *mod_perl* handler before and including the | |
| response phase, sets $r->content_type. (similar behavior to mp1's | |
| send_http_header() [Stas] | |
| Registry: make sure that $r is not in the scope when the script is | |
| compiled [Stas] | |
| $Apache::Server::SaveConfig added. When set to a true value, | |
| will not clear the content of Apache::ReadConfig:: once <Perl > | |
| sections are processed. [Philippe M. Chiasson <gozer@cpan.org] | |
| Apache::compat: support 1.0's Apache->push_handlers, | |
| Apache->set_handlers and Apache->get_handlers [Stas] | |
| revamp the code handling output flushing and flush bucket | |
| sending. Namelly modperl_wbucket_flush and modperl_wbucket_pass now | |
| can be told to send a flush bucket by themselves, attaching it to the | |
| data bb they are already sending. This halfs the number of output | |
| filter invocations when the response handler flushes output via $| or | |
| rflush. adjust tests, which were counting the number of invocations. | |
| [Stas] | |
| move ModPerl::RegistryCooker to use a hash as object (similar to mp1), | |
| to make it easier to subclass. [Nathan Byrd <nathan@byrd.net>] | |
| $r->rflush has to flush internal modperl buffer before calling | |
| ap_rflush, so implement rflush, instead of autogenerating the xs code | |
| for it. [Stas] | |
| fix the input filters handling of DECLINED handlers (consume the data, | |
| on behalf of the handler) + tests [Stas] | |
| fix the code that autogenerates modperl_largefiles.h not to define | |
| macros matching m/^-/ (was a problem on aix-4.3.3) [Stas] | |
| $Apache::Server::StrictPerlSections added. When set to a true | |
| value, will abort server startup if there are syntax errors | |
| in <Perl > sections [Philippe M. Chiasson <gozer@cpan.org] | |
| Use Win32::GetShortPathName for Win32 to handle cases when | |
| the supplied MP_AP_PREFIX contains spaces. [Randy Kobes] | |
| Bump up ThreadsPerChild for mpm_winnt in httpd.conf, which seems | |
| to help avoid server startup problems when running the tests. | |
| [Randy Kobes] | |
| implement a new helper module ModPerl::MethodLookup to help figure out | |
| which module should be loaded when a certain method is reported to be | |
| missing. [Stas] | |
| fix a bug for apr < 0.9.3, where it segfaults in apr_uri_unparse, if | |
| hostname is set, but not the scheme. In case the hostname is defined | |
| but scheme is not Apache::compat will default to the 'http' scheme, | |
| whereas APR::URI::unparse provides no default [Stas] | |
| move $r->send_http_header implementation to Apache::compat. This | |
| allows the 1.0 code to run unmodified if $r->send_http_header is | |
| called before the response change. we already handle the check whether | |
| content_type was set, when deciding whether the headers are to be | |
| parsed inside modperl_wbucket_pass(). [Stas] | |
| fixes to Apache::compat. make $r->connection->auth_type interface | |
| with r->ap_auth_type. make both $r->connection->auth_type and | |
| $r->connection->user writable. [Geoffrey Young] | |
| Open up r->ap_auth_type, making it possible to write custom | |
| authen handlers that don't rely on Basic authentication or | |
| it's associated ap_* functions. | |
| [Geoffrey Young] | |
| add Apache::Bundle2 [Stas] | |
| Apache::Reload now supports the PerlPreConnectionHandler invocation | |
| mode, so connection filter and protocol modules can be automatically | |
| reloaded on change. [Stas] | |
| implement Apache::current_callback + $r->current_callback goes into | |
| Apache::compat, since now we have a way too many callbacks unrelated | |
| to $r [Stas] | |
| Add Apache::compat methods: $r->connection->auth_type and | |
| $r->connection->user (requires 'PerlOptions +GlobalRequest') + tests | |
| [Stas] | |
| Several issues resolved with parsing headers, including making work | |
| the handlers calling $r->content_type() and not sending raw headers, | |
| when the headers scanning is turned on. Lots of tests added to | |
| exercise different situations. [Stas] | |
| warn on using -T in ModPerl::Registry scripts when mod_perl is not | |
| running with -T [Stas] | |
| perl 5.7.3+ has a built-in ${^TAINT} to test whether it's running | |
| under -(T|t). Backport ${^TAINT} for mod_perl running under | |
| 5.6.0-5.7.3, (what used to be $Apache::__T. $Apache::__T is available | |
| too, but deprecated. [Stas] | |
| add PerlChildExitHandler implementation [Stas] | |
| add PerlCleanupHandler implementation + test [Stas] | |
| die when Apache->request returns nothing ('PerlOptions -GlobalRequest' | |
| or 'SetHandler modperl') [Stas] | |
| New Apache::Directive methods: as_hash(), lookup() + tests + docs | |
| [Philippe M. Chiasson <gozer@cpan.org>] | |
| Stacked handlers chain execution is now aborted when a handler returns | |
| something other than OK or DECLINED [Stas] | |
| make $filter->read() in input streaming filters, use the same number | |
| of arguments as read() in the output filters. [Stas] | |
| Implement $r->add_input_filter and $r->add_output_filter | |
| $c->add_input_filter and $c->add_output_filter | |
| and add tests [Stas] | |
| Skip the handler package::func resolving error, only when the error | |
| message matches "Can't locate .*? in @INC", rather than just "Can't | |
| locate", since there are many other errors that start with that | |
| string. [Stas] | |
| the top level 'make test' now descends into the ModPerl-Registry dir | |
| to run 'make test' there [Stas] | |
| All response functions are now returning status and the callers check | |
| and croak on failure or progate them further. [Stas] | |
| OPEN, CLOSE and FILENO implementation for Apache::RequestRec [Stas] | |
| Another fix for the handling of the return status in | |
| ModPerl::RegistryCooker: reset the status to the original one only if | |
| it was changed by the script, otherwise return the execution status | |
| [Stas] | |
| prevent segfault in $r->print / $filter->print (in output filter) and | |
| related functions when they are called before the response phase | |
| [Stas] | |
| prevent segfault in send_http_header when it's called before the | |
| response phase [Stas] | |
| input stream filtering support was added + tests (plus renaming filter | |
| tests so we can know from the test name what kind of filter is tested) | |
| [Stas] | |
| Add proper support for mis-behaved feeding filters that send more than | |
| one EOS bucket in streaming filters + test. [Stas] | |
| prevent a segfault when push_handlers are used to push a handler into | |
| the currently phase and switching the handler (perl-script/modperl) + | |
| tests [Stas] | |
| Add $filter->seen_eos to the streaming filter api to know when eos has | |
| been seen, so special signatures can be passed and any data stored in | |
| the context flushed + tests. [Stas] | |
| Add $filter->ctx to maintain state between filter invocation + tests | |
| [Stas] | |
| Request input and output filters are now getting the EOS bucket, which | |
| wasn't passed through before. Now the context can be flushed on | |
| EOS. [Stas] | |
| =item 1.99_08 - January 10, 2003 | |
| Correct ModPerl::RegistryCooker to reset %INC, after compile for .pl | |
| files which don't declare the package + add tests to check that [Stas] | |
| Log the real error message when Foo::Bar::sub_name fails to resolve, | |
| because of a problem in Foo::Bar, when Foo::Bar *was* found [Stas] | |
| Add PerlPreConnectionHandler support in Apache::Test [Stas] | |
| Enable PerlPreConnectionHandler [Stas] | |
| Support the Host: request header in Apache::TestClient [Stas] | |
| restore the ModPerl::RegistryLoader::new() method for backwards | |
| compatibility [Stas] | |
| port the support for NameWithVirtualHost in ModPerl::RegistryCooker | |
| and ModPerl::RegistryLoader [Stas] | |
| fix the handling of the return status in ModPerl::RegistryCooker, add | |
| a test to verify that [Stas] | |
| under non-threaded perl need to check whether mod_perl is running, | |
| when modperl_vhost_is_running check is done. [Stas] | |
| fix $r->read to read all the requested amount of data if possible, | |
| adjust the test TestApache::read to verify that [Stas] | |
| fix the method content() in Apache::compat to read a whole request | |
| body. same for ModPerl::Test::read_post. add tests. [Stas] | |
| Adjust the reverse filter test to work on win32 (remove trailing \r) | |
| [Randy Kobes <randy@theoryx5.uwinnipeg.ca>] | |
| Strongly suggest win32 users to upgrade to 5.8.0, if they run 5.6.x | |
| [Randy Kobes <randy@theoryx5.uwinnipeg.ca>] | |
| When installing the mod_perl shared object, first need to check | |
| whether the directory 'modules' already exists, and create it if not. | |
| [Randy Kobes <randy@theoryx5.uwinnipeg.ca>] | |
| Add a capability to tune the test configuration sections ordering | |
| in Apache::TestConfigPerl [Stas Bekman] | |
| fix the complaining code about late PerlSwitches when PerlLoadModule | |
| is used before it [Stas Bekman] | |
| add various tests that exercise PerlLoadModule and vhosts | |
| [Stas Bekman] | |
| handle correctly PerlLoadModules (directives) with vhosts: | |
| - handle gracefully cases when things are undef/NULL | |
| - handle the case when scfg==NULL, by stealing the base_servers's config | |
| [Stas Bekman] | |
| make mod_perl work with vhosts when the server is started prior to | |
| post_config(): | |
| - call modperl_init_globals as early as possible, because the main server | |
| record is needed during the configuration parsing, for perlloadmodule | |
| and vhosts | |
| - also make sure that we are using a real base_server, when dealing | |
| with modperl_init, and if not retrieve it from the global record | |
| [Stas Bekman] | |
| prevent segfaults, when scfg is NULL in Apache::Module->get_config(); | |
| [Stas Bekman] | |
| ensure that a core file is a file indeed, before complaining [Philippe | |
| M. Chiasson <gozer@cpan.org>] | |
| add $r->as_string [Geoffrey Young] | |
| add backcompat vars: $Apache::Server::CWD and | |
| $Apache::Server::AddPerlVersion [Stas Bekman] | |
| env var MOD_PERL_TRACE is working again [Stas Bekman] | |
| add a new test TestDirective::perlloadmodule2, which performs a more | |
| evolved merging. [Stas Bekman] | |
| fix Apache::TestConfigPerl under mod_perl 1.0, need to require | |
| mod_perl.pm before using $mod_perl::VERSION [Geoffrey Young] | |
| add an Apache::SIG backcompat stub to Apache::compat [Stas Bekman] | |
| fix the Apache::TestConfigPerl's run_apache_test_config() function | |
| where test packages are scanned for the magic APACHE_TEST_CONFIGURE | |
| and if found get require()'d. Apache2 needs to be run for mod_perl | |
| 2.0. [Stas Bekman] | |
| move the custom mod_perl 2.0 configuration bits out of the | |
| ModPerl::TestRun, where they don't belong, into a special config file | |
| which is included at the very end of httpd.conf [Stas Bekman] | |
| extend Apache::Test to allow extra configuration files to be included | |
| at the very end of httpd.conf, when everything was loaded and | |
| configured [Stas Bekman] | |
| resolve a segfault in Apache::Module::get_config() for the edge case | |
| when the package name is bogus. [Stas Bekman] | |
| Apache::Reload: add support for watching and reloading modules only in | |
| specified sub-dirs [Harry Danilevsky <harry@deerfieldcapital.com>] | |
| enable APR.pm's linking for apr 0.9.2 and higher, which uses a new lib | |
| naming scheme, such as libapr-0.so.0.9.2, only if apr-config and | |
| apu-config scripts exist. [Stas Bekman] | |
| define IoTYPE_RDONLY/IoTYPE_WRONLY for perl-5.6.0 so the project | |
| compiles again under 5.6.0 [Stas Bekman] | |
| allow output streaming filters to append data to the end of the stream | |
| [Stas Bekman] | |
| fixes to compile with ActivePerl 5.8 beta | |
| [Randy Kobes <randy@theoryx5.uwinnipeg.ca>] | |
| fix for directive handlers within vhosts using threaded MPMs | |
| [Stephen Clouse <stephenc@theiqgroup.com>] | |
| fix <IfDefine MODPERL2> support | |
| default AuthType to Basic if not set in $r->get_basic_auth_pw() | |
| [Philippe M. Chiasson <gozer@cpan.org>] | |
| workaround glibc/Perl-5.8.0 crypt() bug (seen with threaded MPMs) | |
| fix delete $ENV{$key} bug | |
| fix parse_args compat method to support non-ascii characters and tr/+/ / | |
| [Walery Studennikov <despair@sama.ru>] | |
| fix post_connection compat method to behave as it did in 1.x | |
| [Geoffrey Young] | |
| add support for setting $r->auth_name and $r->auth_type | |
| [Philippe M. Chiasson <gozer@cpan.org>] | |
| add Apache->httpd_conf compat method | |
| [Philippe M. Chiasson <gozer@cpan.org>] | |
| add default <Perl> handler Apache::PerlSection. | |
| make <Perl> blocks to be EXEC_ON_READ so apache does not parse the contents. | |
| add "Perl" directive for general use and for which <Perl> sections are | |
| stuffed into. | |
| [Philippe M. Chiasson <gozer@cpan.org>] | |
| rename overloaded LoadModule directive to PerlLoadModule and adjust | |
| the test naming | |
| =item 1.99_07 - September 25, 2002 | |
| fix =pod directive test config problem | |
| [Philippe M. Chiasson <gozer@cpan.org>] | |
| =item 1.99_06 - September 25, 2002 | |
| add support for pod directives (=pod,=back,=cut) and __END__ directive | |
| [Philippe M. Chiasson <gozer@cpan.org>] | |
| tweaks to support Test.pm 1.21 [Philippe M. Chiasson <gozer@cpan.org>] | |
| add $r->add_config method to add dynamic configuration at request time | |
| add Apache::DIR_MAGIC_TYPE constant | |
| add support for directive handlers | |
| fix source_scan to run with current httpd/apr | |
| add Apache::Server->add_config method to add dynamic configuration at | |
| server startup time | |
| add Apache::Directive->to_string method | |
| add support for pluggable <Perl> sections | |
| fix compilation probs with get_remote_host() that had a wrong | |
| prototype [Stas Bekman] | |
| Apache::SubProcess now has a manpage [Stas Bekman] | |
| fix the Apache::SubProcess tests to work with perlio-disabled Perl | |
| [Stas Bekman] | |
| fix the filehandle leak in APR::PerlIO (both perlio-disabled and | |
| perlio-enabled Perl) [Stas Bekman] | |
| remove dup() when converting filehandles from apr_file_t to FILE* | |
| under perlio-disabled Perl (APR::PerlIO) [Stas Bekman] | |
| fix compilation if apache/apr do not have thread support | |
| =item 1.99_05 - August 20, 2002 | |
| fix PerlOptions +ParseHeaders to only parse once per-request | |
| add external redirects Registry tests [Stas Bekman] | |
| get rid of the compat layer in ModPerl-Registry [Stas Bekman] | |
| ModPerl::RegistryLoader is now fully operational and tested [Stas Bekman] | |
| Registry method handlers are now working [Stas Bekman] | |
| core Registry packages all compile the scripts into | |
| ModPerl::RegistryROOT:: namespace and cache them in | |
| %ModPerl::RegistryCache. Both overridable by the sub-classes. [Stas Bekman] | |
| compat tests were split into groups by functionality, send_fd test | |
| moved to compat. [Stas Bekman] | |
| added $c->get_remote_host and a compat wrapper $r->get_remote_host + | |
| tests [Stas Bekman] | |
| adjust the build system to support mod_perl build from the source | |
| tree. [Stas Bekman] | |
| ModPerl::RegistryCooker syncs with mod_perl 1.0's registry: | |
| - prototypes defined checks in flush_namespace | |
| [Yair Lenga <yair.lenga@citigroup.com>] | |
| - set error-notes on error [Geoffrey Young] | |
| - preserve status in Registry scripts [Geoffrey Young] | |
| apr_table_t is now an opaque type, use apr_table_elts() to get the array | |
| record [Stas Bekman] | |
| add support for redirects with PerlOptions +ParseHeaders | |
| backport to 2.0.35 | |
| adjust to filter register api change | |
| added APR::ThreadMutex module | |
| =item 1.99_04 - June 21, 2002 | |
| various APR PerlIO updates [Stas Bekman] | |
| stop using an apr_pool_t to allocate items for the interpreter pool, | |
| safer for threaded MPMs and prevents "leaks" when interpreters are | |
| removed from due to PerlInterpMax{Requests,Spare} | |
| implement modperl_sys_dlclose() to avoid apr/pool overhead/thread issues | |
| get the -DPERL_CORE optimization working again | |
| PERL_SET_CONTEXT to the parent interpreter when cloning interpreters at | |
| request time, else dTHX might be NULL during clone in the given thread, | |
| which would crash the server. | |
| =item 1.99_03 - June 15, 2002 | |
| win32 fix for the global Apache->request object to make sure it uses | |
| the thread local storage mechanism | |
| add a reference count mechanism to interpreters for use in threaded MPMs, | |
| so if APR::Pool cleanups have been registered the interpreter is not | |
| putback into the interpreter pool until all cleanups have run. | |
| unbuffer STDERR (by turning on autoflush by default) | |
| add support for Perl*Handler +Apache::Foo | |
| fix open_logs,post_config,child_init hooks to run in the proper order | |
| adjust to apr_bucket_type_t changes in 2.0.37-dev | |
| [Mladen Turk <mturk@mappingsoft.com>] | |
| add MODPERL2 config define, as if the server had been started with -DMODPERL2 | |
| compat additions and fixes: $r->lookup_{file,uri}, $r->is_main, Apache->define | |
| added compat for Apache::log_error [Stas Bekman] | |
| =item 1.99_02 - June 1, 2002 | |
| pass the PATH and TZ environment variables at startup by default as 1.xx did | |
| fix ModPerl::Util::exit segv with 5.6.0 | |
| no longer support 5.7.x perl development versions | |
| added compat for Apache::Table->new | |
| various fixes to compile/run on darwin | |
| server-scope Perl{Set,Pass}Env config now propagated to %ENV at startup | |
| use SvOK(sv) instead of sv == &PL_sv_undef to detect undef values in xs | |
| [Stephen Clouse <stephenc@theiqgroup.com>] | |
| complete Apache::Util 1.x compat | |
| added Apache::MPM_IS_THREADED constant | |
| added compat function for Apache::Constants::SERVER_VERSION | |
| added Apache::Constants::export stub for compat | |
| added noop stubs for timeout functions removed from 2.0: | |
| $r->{soft,hard,reset,kill}_timeout | |
| turned on PerlOptions +GlobalRequest by default for perl-script handler | |
| unless it is explicitly turned off with PerlOptions -GlobalRequest | |
| added APR::OS::thread_current function | |
| added support for 1.x $r->subprocess_env functionality | |
| added support for $r->push_handlers(PerlHandler => ...) | |
| added support for $r->proxyreq to detect proxy requests | |
| $r->content_type($val) now calls ap_set_content_type underneath | |
| add the err_header_out() wrapper to Apache::compat + corresponding tests | |
| [Stas Bekman] | |
| fix $r->dir_config lookup of values set in the server context | |
| added Apache::REDIRECT shortcut constant | |
| various fixes for method handlers | |
| use Apache::ServerUtil in Apache::compat so Apache->server works in compat | |
| mode [Dave Rolsky <autarch@urth.org>] | |
| add Apache::Util::unescape_uri alias to Apache::unescape_url in Apache::compat | |
| change Apache::unescape_url to return the escaped url as 1.x does | |
| disabled term coloring by default (enable with env var APACHE_TEST_COLOR=1) | |
| fix for APR::IpSubnet->new to check return status apr_ipsubnet_create | |
| enabled APR::SockAddr module | |
| turn on binmode for filehandle used in $r->send_fd | |
| get MP_{TRACE,DEBUG} Makefile.PL options working on win32 | |
| various fixes to build/run with bleedperl | |
| various fixes for win32 to get make test passing | |
| moved constuct_{url,server} methods to Apache::URI module | |
| implement Apache::URI::parse in Apache::compat | |
| give Perl*Handlers precedence over other handlers by using APR_HOOK_FIRST | |
| rather than APR_HOOK_LAST | |
| workaround bug in 5.6.1 when XSLoader loads DynaLoader, wiping out any | |
| dl handles it had been keeping track of. | |
| tidy up test to run standalone (without modperl test config) | |
| [Stas Bekman] | |
| override T_PTROBJ INPUT typemap to croak if object is not a blessed | |
| reference, to prevent possible segv from e.g. Apache::Server->process | |
| apr_lock.h is gone; disable APR::Lock for the moment | |
| enabled the Apache::Process module | |
| fix ModPerl::Util::exit to clear $@ before calling Perl_croak | |
| cut down on some build noise | |
| fix 'PerlOptions +GlobalRequest' when used within subrequests | |
| get rid of some "subroutine redefined" warnings in ModPerl::MM that | |
| show up with newer bleedperls. | |
| a few fixes for Apache::compat [Dave Rolsky <autarch@urth.org>] | |
| =item 1.99_01 - April 6, 2002 | |
| First public release of mod_perl-2.0-tobe. | |
| =back | |
| =cut |