Current Path : /usr/local/lib/perl5/site_perl/5.8.9/mach/Apache/ |
FreeBSD hs32.drive.ne.jp 9.1-RELEASE FreeBSD 9.1-RELEASE #1: Wed Jan 14 12:18:08 JST 2015 root@hs32.drive.ne.jp:/sys/amd64/compile/hs32 amd64 |
Current File : //usr/local/lib/perl5/site_perl/5.8.9/mach/Apache/Constants.pm |
package Apache::Constants; use mod_perl (); { no strict; $VERSION = "1.09"; __PACKAGE__->mod_perl::boot($VERSION); } unless(defined &import) { require Exporter; require Apache::Constants::Exports; *import = \&Exporter::import; } sub autoload { if (defined &__AUTOLOAD) { #make extra sure we don't recurse #why must we stringify first??? __AUTOLOAD() if "$Apache::Constants::AUTOLOAD"; goto &$Apache::Constants::AUTOLOAD; } else { require Carp; Carp::confess("__AUTOLOAD is undefined, ", "trying to AUTOLOAD $Apache::Constants::AUTOLOAD"); } } if ($ENV{MOD_PERL}) { #outside of mod_perl this will recurse looking for __AUTOLOAD, grr *AUTOLOAD = \&autoload; } my %ConstNameCache = (); sub export { my $class = shift; for my $new (@_) { next if grep { $new eq $_ } @Apache::Constants::EXPORT_OK; push @Apache::Constants::EXPORT_OK, $new; if(%Apache::Constants::EXPORT) { $Apache::Constants::EXPORT{$new} = 1; } } } sub name { my($self, $const) = @_; require Apache::Constants::Exports; return $ConstNameCache{$const} if $ConstNameCache{$const}; for (@Apache::Constants::EXPORT, @Apache::Constants::EXPORT_OK) { if ((\&{$_})->() eq $const) { return ($ConstNameCache{$const} = $_); } } } 1; __END__ =head1 NAME Apache::Constants - Constants defined in apache header files =head1 SYNOPSIS use Apache::Constants; use Apache::Constants ':common'; use Apache::Constants ':response'; =head1 DESCRIPTION Server constants used by apache modules are defined in B<httpd.h> and other header files, this module gives Perl access to those constants. =head1 EXPORT TAGS =over 4 =item common This tag imports the most commonly used constants. OK DECLINED DONE NOT_FOUND FORBIDDEN AUTH_REQUIRED SERVER_ERROR =item response This tag imports the B<common> response codes, plus these response codes: DOCUMENT_FOLLOWS MOVED REDIRECT USE_LOCAL_COPY BAD_REQUEST BAD_GATEWAY RESPONSE_CODES NOT_IMPLEMENTED CONTINUE NOT_AUTHORITATIVE B<CONTINUE> and B<NOT_AUTHORITATIVE> are aliases for B<DECLINED>. =item methods This are the method numbers, commonly used with the Apache B<method_number> method. METHODS M_CONNECT M_DELETE M_GET M_INVALID M_OPTIONS M_POST M_PUT M_TRACE M_PATCH M_PROPFIND M_PROPPATCH M_MKCOL M_COPY M_MOVE M_LOCK M_UNLOCK =item options These constants are most commonly used with the Apache B<allow_options> method: OPT_NONE OPT_INDEXES OPT_INCLUDES OPT_SYM_LINKS OPT_EXECCGI OPT_UNSET OPT_INCNOEXEC OPT_SYM_OWNER OPT_MULTI OPT_ALL =item satisfy These constants are most commonly used with the Apache B<satisfies> method: SATISFY_ALL SATISFY_ANY SATISFY_NOSPEC =item remotehost These constants are most commonly used with the Apache B<get_remote_host> method: REMOTE_HOST REMOTE_NAME REMOTE_NOLOOKUP REMOTE_DOUBLE_REV =item http This is the full set of HTTP response codes: (NOTE: not all implemented here) HTTP_OK HTTP_MOVED_TEMPORARILY HTTP_MOVED_PERMANENTLY HTTP_METHOD_NOT_ALLOWED HTTP_NOT_MODIFIED HTTP_UNAUTHORIZED HTTP_FORBIDDEN HTTP_NOT_FOUND HTTP_BAD_REQUEST HTTP_INTERNAL_SERVER_ERROR HTTP_NOT_ACCEPTABLE HTTP_NO_CONTENT HTTP_PRECONDITION_FAILED HTTP_SERVICE_UNAVAILABLE HTTP_VARIANT_ALSO_VARIES =item server These are constants related to server version: MODULE_MAGIC_NUMBER SERVER_VERSION SERVER_BUILT =item config These are constants related to configuration directives: DECLINE_CMD =item types These are constants related to internal request types: DIR_MAGIC_TYPE =item override These constants are used to control and test the context of configuration directives. OR_NONE OR_LIMIT OR_OPTIONS OR_FILEINFO OR_AUTHCFG OR_INDEXES OR_UNSET OR_ALL ACCESS_CONF RSRC_CONF =item args_how RAW_ARGS TAKE1 TAKE2 TAKE12 TAKE3 TAKE23 TAKE123 ITERATE ITERATE2 FLAG NO_ARGS =back =head1 Misuses You should be aware of the issues relating to using constant subroutines in Perl. For example this: $r->custom_response(FORBIDDEN => "File size exceeds quota."); will not set a custom response for C<FORBIDDEN>, but for the string C<"FORBIDDEN">, which clearly isn't what is expected. You'll get an error like this: [Tue Apr 23 19:46:14 2002] null: Argument "FORBIDDEN" isn't numeric in subroutine entry at ... Therefore, the best solution is not to use the hash notation for things that don't require it: $r->custom_response(FORBIDDEN, "File size exceeds quota."); Another important note is that instead of using HTTP codes, you should use designed for that purpose constants. Therefore, this is wrong: sub handler { return 200; } The correct use is: use Apache::Constants qw(OK); sub handler { return OK; } Also remember that C<OK != HTTP_OK>. =head1 AUTHORS Doug MacEachern, Gisle Aas and h2xs =cut