|
|
Apache::Constants - Constants defined in apache header files
use Apache::Constants; use Apache::Constants ':common'; use Apache::Constants ':response';
Server constants used by apache modules are defined in httpd.h and other header files, this module gives Perl access to those constants.
This tag imports the most commonly used constants.
OK DECLINED DONE NOT_FOUND FORBIDDEN AUTH_REQUIRED SERVER_ERROR
This tag imports the 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
CONTINUE and NOT_AUTHORITATIVE are aliases for DECLINED.
This are the method numbers, commonly used with the Apache 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
These constants are most commonly used with the Apache 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
These constants are most commonly used with the Apache satisfies method:
SATISFY_ALL SATISFY_ANY SATISFY_NOSPEC
These constants are most commonly used with the Apache get_remote_host method:
REMOTE_HOST REMOTE_NAME REMOTE_NOLOOKUP REMOTE_DOUBLE_REV
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
These are constants related to server version:
MODULE_MAGIC_NUMBER SERVER_VERSION SERVER_BUILT
These are constants related to configuration directives:
DECLINE_CMD
These are constants related to internal request types:
DIR_MAGIC_TYPE
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
RAW_ARGS TAKE1 TAKE2 TAKE12 TAKE3 TAKE23 TAKE123 ITERATE ITERATE2 FLAG NO_ARGS
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 FORBIDDEN
, but for the string
"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 OK != HTTP_OK
.
Doug MacEachern, Gisle Aas and h2xs