I've written an access handler which takes some custom configuration
directives based on the instructions in chaper 8 of the Eagle book. 

Everything makes and installs fine, and I am able to load the module
with a PerlModule directive, but when I try to use the directives
defined in my module I get an error:

"Invalid command 'WhiteListAllow', perhaps mis-spelled or defined by a
module not included in the server configuration"

Apache 1.3.11, Perl 5.00503, mod_perl 1.22.

My Makefile.PL:
-----
package Emusic::WhiteList;

use ExtUtils::MakeMaker;

use Apache::ExtUtils qw(command_table);
use Apache::src;

my @directives = (
        { name       => 'WhiteListAllow',
        errmessg     => 'a domain name to allow',
        args_how     => 'ITERATE',
        req_override => 'OR_AUTHCFG'
        },
        { name       => 'WhiteListDenyURI',
        errmessg     => 'uri to redirect denied clients to',
        args_how     => 'TAKE1',
        req_override => 'OR_AUTHCFG'
        },
        );

command_table(\@directives);

WriteMakefile(
    'NAME'      => __PACKAGE__,
    'VERSION_FROM' => 'WhiteList.pm', # finds $VERSION
    'INC'       => Apache::src->new->inc,     # e.g.,
'-I/usr/include/other',
    'INSTALLSITEARCH'   => '/usr/local/apache/lib/perl',
    'INSTALLSITEARCH'   => '/usr/local/apache/lib/perl',
);
__END__   
----


The relevant portions of the module:

-----

package Emusic::WhiteList;

use strict;
use vars qw($VERSION);
use Apache::Constants qw(:common REDIRECT);
use Apache::ModuleConfig ();

use DynaLoader ();


$VERSION = '1.00';

if ($ENV{MOD_PERL}) {
    no strict;
    @ISA = qw(DynaLoader);
    __PACKAGE__->bootstrap($VERSION);
}

sub handler {
.
.
.
}

sub WhiteListAllow ($$@){
    my ($cfg,$parms,$domain) = @_;
    $cfg->{WhiteListAllow}{$domain}++;
}

sub WhiteListDenyURI ($$$){
    my ($cfg,$parms,$uri) = @_;
    $cfg->{WhiteListDenyURI}=$uri;
}


1;
__END__   

-----

The configuration portion is simple - I merely:

PerlRequire Emusic::WhiteList

and in a directory block:

<Directory /foo/>
  PerlAccessHandler Emusic::WhiteList
  WhiteListAllow  foo.com
  WhiteListDenyURI http://www.foo.com/bar/baz.html
</Directory>

I'm stumped. For the most part, I copied and pasted my code directly
from the book.

Has anyone else hit this problem? 

-- 
Kevin  | "Though there are ... few restrictions on the vote nowadays ... 
Murphy | some standards are still upheld ... at last report, the votes 
       | from the entire God-forsaken state of Texas are still thrown, 
       | uncounted and burning, into the River Charles." - T.H. Zweibel

Reply via email to