From 68373909df410fb1be8c664875e7fa4df2f7e2bc Mon Sep 17 00:00:00 2001 From: root Date: Fri, 23 Apr 2021 18:29:21 +0000 Subject: Change directory structure --- lib/Apache/Inject.pm | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 lib/Apache/Inject.pm (limited to 'lib/Apache/Inject.pm') diff --git a/lib/Apache/Inject.pm b/lib/Apache/Inject.pm new file mode 100644 index 0000000..a9f1a61 --- /dev/null +++ b/lib/Apache/Inject.pm @@ -0,0 +1,58 @@ +package Apache::Inject; + +use strict; +use warnings; + +use Apache2::CmdParms (); +use Apache2::Module (); +use Apache2::Const qw/OR_LIMIT OR_AUTHCFG TAKE12/; + +my @directives = ( + { name => 'Inject', + func => __PACKAGE__.'::Inject', + req_override => OR_LIMIT|OR_AUTHCFG, + args_how => TAKE12, + errmsg => 'Inject HeadFile[!] FootFile[!]' } +); +Apache2::Module::add(__PACKAGE__, \@directives); + +sub Inject { + my ($self, $parms, @args) = @_; + + # Validate arguments and construct corresponding directives + my @vars; + my @names = qw/InjectHead InjectFoot/; + for (@args) { + die 'Arguments to Inject directive cannot contain quotes' if /"/; + push @vars, 'PerlSetVar ' . (shift @names) . ' ' . $_; + } + + # Add relevant directives to current configuration + $parms->add_config(['SetHandler perl-script', + 'PerlResponseHandler Apache::Inject::Handler', + @vars]); +} + +1; +__END__ + +=head1 NAME + +Apache::Inject - Apache directive for injecting HTML headers and footers + +=head1 SYNOPSIS + +DocumentRoot /uar/local/www/apache24/data +PerlModule Apache::Inject + + Inject head.html foot.html + + +=head1 DESCRIPTION + +Apache::Inject is a mod_perl module that adds the Inject directive. +It injects a header before the body and (optionally) a footer after the body +of any requested HTML file. + +=cut + -- cgit v1.2.3