diff options
Diffstat (limited to 'lib/Apache')
-rw-r--r-- | lib/Apache/Inject.pm | 18 | ||||
-rw-r--r-- | lib/Apache/Inject/Handler.pm | 11 |
2 files changed, 21 insertions, 8 deletions
diff --git a/lib/Apache/Inject.pm b/lib/Apache/Inject.pm index 09bf18a..89c0db8 100644 --- a/lib/Apache/Inject.pm +++ b/lib/Apache/Inject.pm @@ -180,6 +180,18 @@ file, as well as the contents of the C<InjectHeader> and C<InjectFooter> files, concatenates them intelligently and prints their combined contents. +=head1 CAVEATS + +Apache::Inject::Handler uses regular expressions to determine the +proper location of the injected header. It supports all valid HTML. +However, it does not take into account that embedded CSS and +JavaScript code can contain strings that look like valid opening +and closing HTML tags. + +On FreeBSD, you may need to enable the accf_http kernel module in +order for the tests to work. Note that Apache::Inject works fine +without the module; it is only the tests that require it. + =head1 DIAGNOSTICS Apache::Inject and Apache::Inject::Handler log all errors and @@ -220,12 +232,6 @@ cannot retrieve the current document root from Apache. =back -=head1 CAVEATS - -On FreeBSD, you may need to enable the accf_http kernel module in -order for the tests to work. Note that Apache::Inject works fine -without the module; it is only the tests that require it. - =head1 AUTHOR John Ankarström, E<lt>john [at] ankarstrom.seE<gt> diff --git a/lib/Apache/Inject/Handler.pm b/lib/Apache/Inject/Handler.pm index 0e054e7..ae81fbb 100644 --- a/lib/Apache/Inject/Handler.pm +++ b/lib/Apache/Inject/Handler.pm @@ -12,8 +12,11 @@ use Apache2::RequestUtil (); my $doc = qr{ \A (?<head> \s* + ( <!-- .*? --> )? \s* ( <!doctype[^>]*> )? \s* + ( <!-- .*? --> )? \s* ( <html[^>]*> )? \s* + ( <!-- .*? --> )? \s* ( <head[^>]*> .*? </head> \s* | ( <meta[^>]*> \s* | <link[^>]*> \s* @@ -21,12 +24,16 @@ my $doc = qr{ | <style[^>]*> .*? </style> \s* | <script[^>]*> .*? </script> \s* | <base[^>]*> \s* + | <!-- .*? --> \s* )+ )? - (<body[^>]*>)? + ( <!-- .*? --> )? \s* + ( <body[^>]*> )? \s* )? (?<body> .*? ) - (?<rest> </html> \s* )? + (?<rest> </html> \s* + ( <!-- .*? --> )? \s* + )? \z }xmsi; |