# Apache::HttpEquiv.pm
#
# written by Rob Hartill (robh@imdb.com)
# last modified 31 December 1996
# version 1.0

package Apache::HttpEquiv;
use Apache ();

use vars qw($VERSION);
$VERSION = sprintf("%d.%02d", q$Revision: 1.0 $ =~ /(\d+)\.(\d+)/);

sub handler {
    my $r = shift;
    
    return 0 if # don't scan the file if..
	!$r->is_main # a subrequest
	    || $r->content_type ne "text/html" # it isn't HTML
		|| !open(FILE, $r->filename); # we can't open it
    
    local($/) = "\n";
    while(<FILE>) {
	last if m#<BODY>|</HEAD>#i; # exit early if in BODY
	if (m#META-EQUIV="([^"]+)"\s+CONTENT="([^"]+)"#) {
	    $r->err_headers_out($1, $2);
	}
    }
    close(FILE);
    return 0;
}
1;
 
 __END__
 
=head1 NAME
 
Apache::HttpEquiv - Implements HTML B<META_EQUIV> tag parsing
 
=head1 SYNOPSIS
 
 (add to an Apache C<.conf> file)
 
 PerlModule Apache::HttpEquiv
 PerlFixupHandler Apache::HttpEquiv
 
=head1 DESCRIPTION
 
C<Apache::HttpEquiv> is a simple example of how to use the power of
B<mod_perl>
to customise your Apache server.
 
e.g.

 <HTML>
 <HEAD><TITLE>My Away Page</TITLE>
 <META-EQUIV="Expires" CONTENT="Wed, 31 Dec 1997 16:40:00 GMT">
 <META-EQUIV="Set-Cookie" CONTENT="open=sesame">
 </HTML>
 
will cause the following extra C<HTTP> headers to be sent:
 
 Expires: Wed, 31 Dec 1997 16:40:00 GMT
 Set-Cookie: open=sesame
 
=head1 CONFIGURATION
 
This module needs mod_perl to be compiled with B<PERL_FIXUP>.
 
When configuring mod_perl say: 
 
 perl Makefile.PL PERL_FIXUP=1
 
=head1 SEE ALSO
 
mod_perl, perl(1), Apache(3)
 
=head1 AUTHOR
 
Rob Hartill <robh@imdb.com>