Net::FastCGI::Protocol(3pm) | User Contributed Perl Documentation | Net::FastCGI::Protocol(3pm) |
Net::FastCGI::Protocol - Provides functions to build and parse FastCGI messages.
# FCGI_Header $octets = build_header($type, $request_id, $content_length, $padding_length); @values = parse_header($octets); $header = parse_header($octets); # FCGI_BeginRequestBody $octets = build_begin_request_body($role, $flags); @values = parse_begin_request_body($octets); # FCGI_EndRequestBody $octets = build_end_request_body($app_status, $protocol_status); @values = parse_end_request_body($octets); # FCGI_UnknownTypeBody $octets = build_unknown_type_body($type); @values = parse_unknown_type_body($octets); # FCGI_BeginRequestRecord $octets = build_begin_request_record($request_id, $role, $flags); # FCGI_EndRequestRecord $octets = build_end_request_record($request_id, $app_status, $protocol_status); # FCGI_UnknownTypeRecord $octets = build_unknown_type_record($type); # FCGI_NameValuePair's $octets = build_params($params); $params = parse_params($octets); $bool = check_params($octets); # FCGI_Record $octets = build_record($type, $request_id); $octets = build_record($type, $request_id, $content); @values = parse_record($octets); $record = parse_record($octets); $record = parse_record_body($type, $request_id, $content); # FCGI_Record Debugging / Tracing $string = dump_record($octets); $string = dump_record_body($type, $request_id, $content); # FCGI_Record Stream $octets = build_stream($type, $request_id, $content); $octets = build_stream($type, $request_id, $content, $terminate); # Begin Request $octets = build_begin_request($request_id, $role, $flags, $params); $octets = build_begin_request($request_id, $role, $flags, $params, $stdin); $octets = build_begin_request($request_id, $role, $flags, $params, $stdin, $data); # End Request $octets = build_end_request($request_id, $app_status, $protocol_status); $octets = build_end_request($request_id, $app_status, $protocol_status, $stdout); $octets = build_end_request($request_id, $app_status, $protocol_status, $stdout, $stderr);
Provides functions to build and parse FastCGI messages.
Please note that all functions in this package expects octets, not unicode strings. It's the callers responsibility to ensure this. If any of theese functions is called with unicode strings containing code points above 255, they will most likely produce malformed messages.
Builds a Begin Request message.
Usage
$octets = build_begin_request($request_id, $role, $flags, $params); $octets = build_begin_request($request_id, $role, $flags, $params, $stdin); $octets = build_begin_request($request_id, $role, $flags, $params, $stdin, $data);
Arguments
Returns
Builds a "FCGI_BeginRequestBody".
Usage
$octets = build_begin_request_body($role, $flags);
Arguments
Returns
Builds a "FCGI_BeginRequestRecord".
Usage
$octets = build_begin_request_record($request_id, $role, $flags);
Arguments
Returns
Builds a End Request message
Usage
$octets = build_end_request($request_id, $app_status, $protocol_status); $octets = build_end_request($request_id, $app_status, $protocol_status, $stdout); $octets = build_end_request($request_id, $app_status, $protocol_status, $stdout, $stderr);
Arguments
Returns
Note
This function is equivalent to "build_end_request_record()" if called without $stdout and $stderr.
Builds a "FCGI_EndRequestBody".
Usage
$octets = build_end_request_body($app_status, $protocol_status);
Arguments
Returns
Builds a "FCGI_EndRequestRecord".
Usage
$octets = build_end_request_record($request_id, $app_status, $protocol_status);
Arguments
Returns
Builds a "FCGI_Header".
Usage
$octets = build_header($type, $request_id, $content_length, $padding_length);
Arguments
Returns
Builds "FCGI_NameValuePair"'s.
Usage
$octets = build_params($params);
Arguments
Returns
Builds a "FCGI_Record".
Usage
$octets = build_record($type, $request_id); $octets = build_record($type, $request_id, $content);
Arguments
Returns
Note
Follows the recommendation in specification and pads the record by 8-(content_length mod 8) zero-octets.
Builds a series of stream records.
Usage
$octets = build_stream($type, $request_id, $content); $octets = build_stream($type, $request_id, $content, $terminate);
Arguments
Returns
Note
Stream is not terminated if $content is empty unless $terminate is set.
$content is split in segment sizes of 32760 octets (32768 - FCGI_HEADER_LEN).
Builds a "FCGI_UnknownTypeBody".
Usage
$octets = build_unknown_type_body($type);
Arguments
Returns
Builds a "FCGI_UnknownTypRecord".
Usage
$octets = build_unknown_type_record($type);
Arguments
Returns
Determine whether or not params is well-formed.
Usage
$boolean = check_params($octets);
Arguments
Returns
Dump a "FCGI_Record".
Usage
$string = dump_record($octets);
Arguments
Returns
Dump a "FCGI_Record".
Usage
$string = dump_record_body($type, $request_id); $string = dump_record_body($type, $request_id, $content);
Arguments
Returns
Parses a "FCGI_BeginRequestBody".
Usage
($role, $flags) = parse_begin_request_body($octets);
Arguments
Returns
Parses a "FCGI_EndRequestBody".
Usage
($app_status, $protocol_status) = parse_end_request_body($octets);
Arguments
Returns
Parses a "FCGI_Header".
Usage
($type, $request_id, $content_length, $padding_length) = parse_header($octets); $header = parse_header($octets); say $header->{type}; say $header->{request_id}; say $header->{content_length}; say $header->{padding_length};
Arguments
Returns
In list context:
In scalar context a hash reference containing above variable names as keys.
Parses "FCGI_NameValuePair"'s.
Usage
$params = parse_params($octets);
Arguments
Returns
Parses a "FCGI_Record".
Usage
($type, $request_id, $content) = parse_record($octets); $record = parse_record($octets); say $record->{type}; say $record->{request_id};
Arguments
Returns
In list context:
In scalar context a hash reference containing the "FCGI_Record" components. See "parse_record_body".
Parses a "FCGI_Record".
Usage
$record = parse_record_body($type, $request_id, $content); say $record->{type}; say $record->{request_id};
Arguments
Returns
A hash reference which represents the "FCGI_Record". The content depends on the type of record. All record types have the keys: "type" and "request_id".
Parses a "FCGI_UnknownTypeBody".
Usage
$type = parse_unknown_type_body($octets);
Arguments
Returns
Usage
$length = get_record_length($octets);
Arguments
Returns
Usage
$name = get_type_name($type); $name = get_type_name(FCGI_BEGIN_REQUEST); # 'FCGI_BEGIN_REQUEST' $name = get_type_name(255); # '0xFF'
Arguments
Returns
Note
See also ":name" in Net::FastCGI::Constant.
Usage
$name = get_role_name($type); $name = get_role_name(FCGI_RESPONDER); # 'FCGI_RESPONDER' $name = get_role_name(65535); # '0xFFFF'
Arguments
Returns
Note
See also ":name" in Net::FastCGI::Constant.
Usage
$name = get_protocol_status_name($protocol_status); $name = get_protocol_status_name(FCGI_REQUEST_COMPLETE); # 'FCGI_REQUEST_COMPLETE' $name = get_protocol_status_name(255); # '0xFF'
Arguments
Returns
Note
See also ":name" in Net::FastCGI::Constant.
Usage
$boolean = is_known_type($type);
Arguments
Returns
Usage
$boolean = is_management_type($type);
Arguments
Returns
Usage
$boolean = is_discrete_type($type);
Arguments
Returns
Usage
$boolean = is_stream_type($type);
Arguments
Returns
None by default. All functions can be exported using the ":all" tag or individually.
Christian Hansen "chansen@cpan.org"
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 |