HTML-Mason
view release on metacpan or search on metacpan
1.31 August 20, 2005
[ BUG FIXES ]
- Fix several regressions in the CGIHandler and FakeApache modules.
Some changes from the stable branch were never merged into the trunk
before 1.30. Reported by Jesse Vincent. Task id #589.
- Under Apache2, if an ApacheHandler object was created during server
startup and the associated Interp object created any files or
directories, Mason would crash when attempting to chown those
files/dirs to the uid/gid that Apache will use after forking. Task
#586.
- The compiler was adding an extra block around a component's
body, which meant that variables declared in the body (in perl lines
or blocks) were not seen in the cleanup section. Task id #587.
- The compiler was also adding "no warnings 'uninitialized'" in this
block, which could hide various errors.
For example, the Interp object contains a Resolver object and Request
objects. The Interp's new method will accept constructor parameter
for both the Resolver and Request objects.
- The ApacheHandler args_method is now a per-object parameter.
- Mason is now much smarter about recompiling components. In general,
it can detect if compiler options for a compiled component are
different from the current options, and will recompile the component
if necessary. The exception to this is that with compiler parameters
which take callbacks (such as preprocess), Mason can only tell if such
a parameter is present, not whether the actual callback has changed.
- The ApacheHandler object will chown any files created during server
startup as needed.
[ BUG FIXES ]
- The <%args> section can now contain comments which contain the
string '=>' (reported by Chris Hutchinson).
- Fixed the longstanding bug that using print() or $r->print() causes
output/headers to appear out of order. You can now safely use these,
though we still recommend that you use Mason to send output.
- Filtered output now does appear when $m->abort() used. However, an
stand-alone mode as well
- Interp::exec is now re-entrant with all request specific information
having been moved to Request class.
- ** Reworked Parser API. parse is now called make_component, has a
simplified set of options, and returns a component object
directly. make is now called make_dirs.
- Source references now read from the object file, cleaner for a
variety of reasons. Preprocess and postprocess now work with source
references.
- Removed obsolete and undocumented Interp::vars and mc_var functions
- Simplified chown/getpwuid usage in handler.pl (submitted by Randal
Schwartz)
0.6.2 August 20, 1999
- Fixed problem with shared data cache locks over NFS (submitted by
Tom Hughes)
- Fixed mc_auto_comp, which never really worked as documented
- Fixed preloading for directories (submitted by Dennis Watson)
- Added back Utils::get_lock, which is used by content management
- Apache::Request always parses the query string, even for POST requests.
- The out_mode parameter (batch vs. stream) has been replaced with
the autoflush parameter, which is a much simpler version of the same
idea. See the Request class documentation for details.
- The ApacheHandler module now requires a minimum of mod_perl 1.22
(though using something more up to date is highly recommended).
- The ApacheHandler module will take care of chown'ing files created
during server startup, when needed. If you have a line like
chown (Apache->server->uid, Apache->server->gid, $interp->files_written);
in your handler.pl, it is now unnecessary (but harmless).
- The MasonMultipleConfig parameter is no longer needed, and will
cause an error if given. Mason can now figure out for itself whether
or not multiple ApacheHandler objects should be created.
- The debug file feature has been removed, as it could not accurately
support multiple versions of the Apache API. Use Apache::DB to run
your server through the debugger.
lib/HTML/Mason/ApacheHandler.pm view on Meta::CPAN
error "The resolver class your Interp object uses does not implement " .
"the 'apache_request_to_comp_path' method. This means that ApacheHandler " .
"cannot resolve requests. Are you using a handler.pl file created ".
"before version 1.10? Please see the handler.pl sample " .
"that comes with the latest version of Mason.";
}
# If we're running as superuser, change file ownership to http user & group
if (!($> || $<) && $self->interp->files_written)
{
chown $self->get_uid_gid, $self->interp->files_written
or system_error( "Can't change ownership of files written by interp object: $!\n" );
}
$self->_initialize;
return $self;
}
sub get_uid_gid
{
return (Apache->server->uid, Apache->server->gid) unless APACHE2;
( run in 0.854 second using v1.01-cache-2.11-cpan-71847e10f99 )