Christian Hansen

NAME

Net::FastCGI::Constant - FastCGI protocol constants.

DESCRIPTION

FastCGI protocol constants.

CONSTANTS

Constants can either be imported individually or in sets grouped by tag names. The tag names are:

:common

FCGI_MAX_CONTENT_LEN

Maximum number of octets that the content component of the record can hold. (65535)

FCGI_HEADER_LEN

Number of octets in FCGI_Header. (8)

FCGI_VERSION_1

Value for version component of FCGI_Header. (1)

FCGI_NULL_REQUEST_ID

Value for request_id component of FCGI_Header. (0)

:type

Values for type component of FCGI_Header.

FCGI_BEGIN_REQUEST
FCGI_ABORT_REQUEST
FCGI_END_REQUEST
FCGI_PARAMS
FCGI_STDIN
FCGI_STDOUT
FCGI_STDERR
FCGI_DATA
FCGI_GET_VALUES
FCGI_GET_VALUES_RESULT
FCGI_UNKNOWN_TYPE
FCGI_MAXTYPE

:flag

Mask for flags component of FCGI_BeginRequestBody.

FCGI_KEEP_CONN

:role

Values for role component of FCGI_BeginRequestBody.

FCGI_RESPONDER
FCGI_AUTHORIZER
FCGI_FILTER

:protocol_status

Values for protocol_status component of FCGI_EndRequestBody.

FCGI_REQUEST_COMPLETE
FCGI_CANT_MPX_CONN
FCGI_OVERLOADED
FCGI_UNKNOWN_ROLE

:value

Variable names for FCGI_GET_VALUES / FCGI_GET_VALUES_RESULT records.

FCGI_MAX_CONNS
FCGI_MAX_REQS
FCGI_MPXS_CONNS

:pack

pack() / unpack() templates

FCGI_Header
    Octet/      0        |        1        |
        /                |                 |
       | 0 1 2 3 4 5 6 7 | 0 1 2 3 4 5 6 7 |
       +-----------------+-----------------+
     0 |     Version     |      Type       |
       +-----------------+-----------------+
     2 |             Request ID            |
       +-----------------+-----------------+
     4 |          Content Length           |
       +-----------------+-----------------+
     6 | Padding Length  |    Reserved     |
       +-----------------+-----------------+
       Total 8 octets

    Template: CCnnCx

    my ($version, $type, $request_id, $content_length, $padding_length)
      = unpack(FCGI_Header, $octets);
FCGI_BeginRequestBody
    Octet/      0        |        1        |
        /                |                 |
       | 0 1 2 3 4 5 6 7 | 0 1 2 3 4 5 6 7 |
       +-----------------+-----------------+
     0 |                Role               |
       +-----------------+-----------------+
     2 |      Flags      |                 |
       +-----------------+                 +
     4 |                                   |
       +              Reserved             +
     6 |                                   |
       +-----------------+-----------------+
       Total 8 octets

    Template: nCx5

    my ($role, $flags) = unpack(FCGI_BeginRequestBody, $octets);
FCGI_EndRequestBody
    Octet/      0        |        1        |
        /                |                 |
       | 0 1 2 3 4 5 6 7 | 0 1 2 3 4 5 6 7 |
       +-----------------+-----------------+
     0 |                                   |
       +        Application Status         +
     2 |                                   |
       +-----------------+-----------------+
     4 | Protocol Status |                 |
       +-----------------+    Reserved     +
     6 |                                   |
       +-----------------+-----------------+
       Total 8 octets

    Template: NCx3

    my ($app_status, $protocol_status) 
      = unpack(FCGI_EndRequestBody, $octets);
FCGI_UnknownTypeBody
    Octet/      0        |        1        |
        /                |                 |
       | 0 1 2 3 4 5 6 7 | 0 1 2 3 4 5 6 7 |
       +-----------------+-----------------+
     0 |  Unknown Type   |                 |
       +-----------------+                 +
     2 |                                   |
       +                                   +
     4 |              Reserved             |
       +                                   +
     6 |                                   |
       +-----------------+-----------------+
       Total 8 octets

    Template: Cx7

    my $unknown_type = unpack(FCGI_UnknownTypeBody, $octets);

:name

Arrays containing names of value components. These are read-only.

@FCGI_TYPE_NAME
    print $FCGI_TYPE_NAME[FCGI_BEGIN_REQUEST]; # FCGI_BEGIN_REQUEST
@FCGI_ROLE_NAME
    print $FCGI_ROLE_NAME[FCGI_RESPONDER]; # FCGI_RESPONDER
@FCGI_PROTOCOL_STATUS_NAME
    print $FCGI_PROTOCOL_STATUS_NAME[FCGI_OVERLOADED]; # FCGI_OVERLOADED

Note

It's not safe to assume that exists works for validation purposes, index 0 might be undef.

Use boolean context instead:

    ($FCGI_TYPE_NAME[$type])
      || die;

EXPORTS

None by default. All functions can be exported using the :all tag or individually.

SEE ALSO

http://www.fastcgi.com/devkit/doc/fcgi-spec.html

AUTHOR

Christian Hansen chansen@cpan.org

COPYRIGHT

Copyright 2008-2010 by Christian Hansen.

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.




Hosting generously
sponsored by Bytemark