From 68373909df410fb1be8c664875e7fa4df2f7e2bc Mon Sep 17 00:00:00 2001 From: root Date: Fri, 23 Apr 2021 18:29:21 +0000 Subject: Change directory structure --- Inject/Handler.pm | 82 ------------------------------------------------------- 1 file changed, 82 deletions(-) delete mode 100644 Inject/Handler.pm (limited to 'Inject') diff --git a/Inject/Handler.pm b/Inject/Handler.pm deleted file mode 100644 index 5a40fd8..0000000 --- a/Inject/Handler.pm +++ /dev/null @@ -1,82 +0,0 @@ -package Apache::Inject::Handler; - -use strict; -use warnings FATAL => 'all'; - -use Apache2::RequestRec (); -use Apache2::RequestUtil (); -use Apache2::Const qw/OK DECLINED/; - -my $doc = qr{ - \A - (? \s* - (]*>)? \s* - (]*>)? \s* - ( ]*>.*? \s* - | ( ]*>.*? \s* - | ]*> \s* - | ]*> \s* - | ]*> \s* - | ]*>.*? \s* # n.b. - | ]*>.*? \s* # n.b. - )+ - )? - (]*>)? - )? - (? .*? ) - (? \s* )? - \z -}xmsi; - -sub inject { - my ($r, $var) = @_; - - # Retrieve value implicitly set by Inject directive - return if not (my $val = $r->dir_config($var)); - - # Validate path - if ($val =~ m{^/}) { - warn "$var should not begin with slash, " - . "as it is already always relative to document root"; - } - if ($val =~ m{^../|/../|/..$}) { - warn "$var cannot extend past document root"; - return; - } - - # note: document root has been confirmed not to be empty - my $root = $r->document_root; - - # Read contents of specified file - open my $fh, '<', "$root/$val" or do { - warn "$var $root/$val does not exist"; - return; - }; - print for <$fh>; - close $fh; -} - -sub handler { - my $r = shift; - - return DECLINED if not $r->content_type eq 'text/html'; - - my $content = ${$r->slurp_filename}; - return DECLINED if not $content =~ /$doc/; - - # Or is DocumentRoot guaranteed not to be empty? - if (not $r->document_root) { - warn 'Declining request due to empty document root'; - return DECLINED; - } - - print $+{head} if $+{head}; - inject($r, "InjectHead"); - print $+{body} if $+{body}; - inject($r, "InjectFoot"); - print $+{rest} if $+{rest}; - - return OK; -} - -1; -- cgit v1.2.3