blob: d61cb106b483bdc9a3c1b16f3dfb7658e36baa99 [file] [log] [blame]
=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 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]
Apache::Module remove_loaded_module re-added [Gozer]
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_loaded_module, 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