diff options
Diffstat (limited to 'src/web/server/h2o/libh2o/misc/p5-net-fastcgi/lib/Net/FastCGI/Constant.pod')
-rw-r--r-- | src/web/server/h2o/libh2o/misc/p5-net-fastcgi/lib/Net/FastCGI/Constant.pod | 264 |
1 files changed, 264 insertions, 0 deletions
diff --git a/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/lib/Net/FastCGI/Constant.pod b/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/lib/Net/FastCGI/Constant.pod new file mode 100644 index 000000000..d0ca04c1f --- /dev/null +++ b/src/web/server/h2o/libh2o/misc/p5-net-fastcgi/lib/Net/FastCGI/Constant.pod @@ -0,0 +1,264 @@ +=head1 NAME + +Net::FastCGI::Constant - FastCGI protocol constants. + +=head1 DESCRIPTION + +FastCGI protocol constants. + +=head1 CONSTANTS + +Constants can either be imported individually or in sets grouped by tag names. +The tag names are: + +=head2 C<:common> + +=over 4 + +=item C<FCGI_MAX_CONTENT_LEN> + +Maximum number of octets that the content component of the record can hold. (C<65535>) + +=item C<FCGI_HEADER_LEN> + +Number of octets in C<FCGI_Header>. (C<8>) + +=item C<FCGI_VERSION_1> + +Value for C<version> component of C<FCGI_Header>. (C<1>) + +=item C<FCGI_NULL_REQUEST_ID> + +Value for C<request_id> component of C<FCGI_Header>. (C<0>) + +=back + +=head2 C<:type> + +Values for C<type> component of C<FCGI_Header>. + +=over 4 + +=item C<FCGI_BEGIN_REQUEST> + +=item C<FCGI_ABORT_REQUEST> + +=item C<FCGI_END_REQUEST> + +=item C<FCGI_PARAMS> + +=item C<FCGI_STDIN> + +=item C<FCGI_STDOUT> + +=item C<FCGI_STDERR> + +=item C<FCGI_DATA> + +=item C<FCGI_GET_VALUES> + +=item C<FCGI_GET_VALUES_RESULT> + +=item C<FCGI_UNKNOWN_TYPE> + +=item C<FCGI_MAXTYPE> + +=back + +=head2 C<:flag> + +Mask for C<flags> component of C<FCGI_BeginRequestBody>. + +=over 4 + +=item C<FCGI_KEEP_CONN> + +=back + +=head2 C<:role> + +Values for C<role> component of C<FCGI_BeginRequestBody>. + +=over 4 + +=item C<FCGI_RESPONDER> + +=item C<FCGI_AUTHORIZER> + +=item C<FCGI_FILTER> + +=back + +=head2 C<:protocol_status> + +Values for C<protocol_status> component of C<FCGI_EndRequestBody>. + +=over 4 + +=item C<FCGI_REQUEST_COMPLETE> + +=item C<FCGI_CANT_MPX_CONN> + +=item C<FCGI_OVERLOADED> + +=item C<FCGI_UNKNOWN_ROLE> + +=back + +=head2 C<:value> + +Variable names for C<FCGI_GET_VALUES> / C<FCGI_GET_VALUES_RESULT> records. + +=over 4 + +=item C<FCGI_MAX_CONNS> + +=item C<FCGI_MAX_REQS> + +=item C<FCGI_MPXS_CONNS> + +=back + +=head2 C<:pack> + +C<pack()> / C<unpack()> templates + +=over 4 + +=item C<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); + +=item C<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); + +=item C<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); + +=item C<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); + +=back + +=head2 C<:name> + +Arrays containing names of value components. These are read-only. + +=over 4 + +=item C<@FCGI_TYPE_NAME> + + print $FCGI_TYPE_NAME[FCGI_BEGIN_REQUEST]; # FCGI_BEGIN_REQUEST + +=item C<@FCGI_ROLE_NAME> + + print $FCGI_ROLE_NAME[FCGI_RESPONDER]; # FCGI_RESPONDER + +=item C<@FCGI_PROTOCOL_STATUS_NAME> + + print $FCGI_PROTOCOL_STATUS_NAME[FCGI_OVERLOADED]; # FCGI_OVERLOADED + +=back + +I<Note> + +It's not safe to assume that C<exists> works for validation purposes, index C<0> +might be C<undef>. + +Use boolean context instead: + + ($FCGI_TYPE_NAME[$type]) + || die; + +=head1 EXPORTS + +None by default. All functions can be exported using the C<:all> tag or individually. + +=head1 SEE ALSO + +=over 4 + +=item L<http://www.fastcgi.com/devkit/doc/fcgi-spec.html> + +=back + +=head1 AUTHOR + +Christian Hansen C<chansen@cpan.org> + +=head1 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. + |