stas 2002/12/02 08:11:48
Modified: . Changes
perl-framework/Apache-Test/lib/Apache TestConfig.pm
Log:
Extend Apache::Test to allow extra configuration files to be included
at the very end of httpd.conf, when everything was loaded and
configured
Revision Changes Path
1.69 +4 -0 modperl-2.0/Changes
Index: Changes
===================================================================
RCS file: /home/cvs/modperl-2.0/Changes,v
retrieving revision 1.68
retrieving revision 1.69
diff -u -r1.68 -r1.69
--- Changes 2 Dec 2002 14:20:23 -0000 1.68
+++ Changes 2 Dec 2002 16:11:47 -0000 1.69
@@ -10,6 +10,10 @@
=item 1.99_08-dev
+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]
1.144 +16 -3
httpd-test/perl-framework/Apache-Test/lib/Apache/TestConfig.pm
Index: TestConfig.pm
===================================================================
RCS file:
/home/cvs/httpd-test/perl-framework/Apache-Test/lib/Apache/TestConfig.pm,v
retrieving revision 1.143
retrieving revision 1.144
diff -u -r1.143 -r1.144
--- TestConfig.pm 30 Sep 2002 21:21:44 -0000 1.143
+++ TestConfig.pm 2 Dec 2002 16:11:48 -0000 1.144
@@ -1156,18 +1156,29 @@
$self->gendir($vars->{t_logs});
+ my @very_last_postamble = ();
if (my $extra_conf = $self->generate_extra_conf) {
for my $file (@$extra_conf) {
+ my $entry;
if ($file =~ /\.conf$/) {
next if $file =~ m|/httpd\.conf$|;
- $self->postamble(Include => qq("$file"));
+ $entry = qq(Include "$file");
}
elsif ($file =~ /\.pl$/) {
- $self->postamble(PerlRequire => qq("$file"));
+ $entry = qq(PerlRequire "$file");
}
else {
- # nothing yet
+ next;
}
+
+ # put the .last includes very last
+ if ($file =~ /\.last\.(conf|pl)$/) {
+ push @very_last_postamble, $entry;
+ }
+ else {
+ $self->postamble($entry);
+ }
+
}
}
@@ -1202,6 +1213,8 @@
print $out "\n";
$self->postamble_run($out);
+
+ print $out join "\n", @very_last_postamble;
close $in;
close $out or die "close $conf_file: $!";