perl-announce mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Stas Bekman <>
Subject [ANNOUNCE] mod_perl-1.99_09
Date Mon, 28 Apr 2003 03:06:44 GMT
The uploaded file


(also available from

has entered CPAN as

   file: $CPAN/authors/id/S/ST/STAS/mod_perl-1.99_09.tar.gz
   size: 912283 bytes
    md5: 475a62af71425e71552f0062ee6b8d6f

Changes since 1.99_08:

$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" <>]

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

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) []

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.

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 <]

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.

move ModPerl::RegistryCooker to use a hash as object (similar to mp1),
to make it easier to subclass. [Nathan Byrd <>]

$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 <]

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

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 <>]

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

prevent segfault in $r->print / $filter->print (in output filter) and
related functions when they are called before the response phase

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)

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

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]

Stas Bekman            JAm_pH ------> Just Another mod_perl Hacker     mod_perl Guide --->

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message