Scroll to navigation

Net::FastCGI::Constant(3pm) User Contributed Perl Documentation Net::FastCGI::Constant(3pm)

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.

2022-11-21 perl v5.36.0