version => '1.999022',
feature => ['mod_perl'],
},
+ {
+ package => 'Apache-SizeLimit',
+ module => 'Apache2::SizeLimit',
+ # 0.93 fixes problems on Linux and Windows, and changes the
+ # syntax used by SizeLimit.
+ version => '0.93',
+ feature => ['mod_perl'],
+ },
);
+ if (ON_WINDOWS) {
+ # SizeLimit needs Win32::API to work on Windows.
+ push(@modules, {
+ package => 'Win32-API',
+ module => 'Win32::API',
+ version => 0,
+ feature => ['mod_perl'],
+ });
+ }
+
my $extra_modules = _get_extension_requirements('OPTIONAL_MODULES');
push(@modules, @$extra_modules);
return \@modules;
use Bugzilla::Template ();
use Bugzilla::Util ();
-my ($sizelimit, $maxrequests) = ('', '');
-if (Bugzilla::Constants::ON_WINDOWS) {
- $maxrequests = "MaxRequestsPerChild 25";
-}
-else {
- require Apache2::SizeLimit;
- # This means that every httpd child will die after processing
- # a CGI if it is taking up more than 70MB of RAM all by itself.
- $Apache2::SizeLimit::MAX_UNSHARED_SIZE = 70000;
- $sizelimit = "PerlCleanupHandler Apache2::SizeLimit";
-}
+use Apache2::SizeLimit;
+# This means that every httpd child will die after processing
+# a CGI if it is taking up more than 70MB of RAM all by itself.
+Apache2::SizeLimit->set_max_unshared_size(70_000);
my $cgi_path = Bugzilla::Constants::bz_locations()->{'cgi_path'};
# Set up the configuration for the web server
my $server = Apache2::ServerUtil->server;
my $conf = <<EOT;
-$maxrequests
# Make sure each httpd child receives a different random seed (bug 476622)
PerlChildInitHandler "sub { srand(); }"
<Directory "$cgi_path">
AddHandler perl-script .cgi
# No need to PerlModule these because they're already defined in mod_perl.pl
PerlResponseHandler Bugzilla::ModPerl::ResponseHandler
- PerlCleanupHandler Bugzilla::ModPerl::CleanupHandler
- $sizelimit
+ PerlCleanupHandler Apache2::SizeLimit Bugzilla::ModPerl::CleanupHandler
PerlOptions +ParseHeaders
Options +ExecCGI
AllowOverride Limit FileInfo Indexes
<h3 id="v40_req_modules">Required Perl Modules</h3>
[% INCLUDE req_table reqs = REQUIRED_MODULES
- new = ['List-MoreUtils']
- updated = ['Email-MIME', 'CGI.pm'] %]
+ new = ['List-MoreUtils', 'Win32-API']
+ updated = ['Email-MIME', 'CGI.pm', 'Apache-SizeLimit'] %]
<h3 id="v40_req_optional_mod">Optional Perl Modules</h3>