mirror of
https://github.com/apache/httpd.git
synced 2025-08-06 11:06:17 +00:00
insert LoadModule directives only outside of sections.
PR: 9012 git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@98721 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
3
CHANGES
3
CHANGES
@ -2,6 +2,9 @@ Changes with Apache 2.1.0-dev
|
||||
|
||||
[Remove entries to the current 2.0 section below, when backported]
|
||||
|
||||
*) Fix apxs to insert LoadModule directives only outside of sections.
|
||||
PR 9012. [Andr<64> Malo]
|
||||
|
||||
*) Hook mod_proxy's fixup before mod_rewrite's fixup, so that by
|
||||
mod_rewrite proxied URLs will not be escaped accidentally by
|
||||
mod_proxy's fixup. PR 16368 [Andr<64> Malo]
|
||||
|
@ -577,9 +577,30 @@ if ($opt_i or $opt_e) {
|
||||
foreach $lmd (@lmd) {
|
||||
my $what = $opt_A ? "preparing" : "activating";
|
||||
if ($content !~ m|\n#?\s*$lmd|) {
|
||||
$content =~ s|^(.*\n#?\s*LoadModule\s+[^\n]+\n)|$1$c$lmd\n|sg;
|
||||
# check for open <containers>, so that the new LoadModule
|
||||
# directive always appears *outside* of an <container>.
|
||||
|
||||
my $before = ($content =~ m|^(.*\n)#?\s*LoadModule\s+[^\n]+\n|s)[0];
|
||||
my $cntopen = () = ($before =~ m|^\s*<[^/].*$|mg);
|
||||
my $cntclose = () = ($before =~ m|^\s*</.*$|mg);
|
||||
|
||||
if ($cntopen == $cntclose) {
|
||||
# fine. Last LoadModule is contextless.
|
||||
$content =~ s|^(.*\n#?\s*LoadModule\s+[^\n]+\n)|$1$c$lmd\n|s;
|
||||
}
|
||||
elsif ($cntopen < $cntclose) {
|
||||
error('Configuration file is not valid. There are sections'
|
||||
. ' closed before opened.');
|
||||
exit(1);
|
||||
}
|
||||
else {
|
||||
# put our cmd after the section containing the last
|
||||
# LoadModule.
|
||||
$content =~ s!\A((?:(?:^\s*(?:[^<]|<[^/]).*(?:$)\n)*^\s*</.*(?:$)\n?){$cntopen})!$1$c$lmd\n!m;
|
||||
}
|
||||
} else {
|
||||
$content =~ s|^(.*\n)#?\s*$lmd[^\n]*\n|$1$c$lmd\n|sg;
|
||||
# replace already existing LoadModule line
|
||||
$content =~ s|^(.*\n)#?\s*$lmd[^\n]*\n|$1$c$lmd\n|s;
|
||||
}
|
||||
$lmd =~ m|LoadModule\s+(.+?)_module.*|;
|
||||
notice("[$what module `$1' in $CFG_SYSCONFDIR/$CFG_TARGET.conf]");
|
||||
|
Reference in New Issue
Block a user