File Coverage

blib/lib/Protocol/HTTP2/Frame/Continuation.pm
Criterion Covered Total %
statement 14 22 63.6
branch 0 4 0.0
condition 0 2 0.0
subroutine 5 6 83.3
pod 0 2 0.0
total 19 36 52.7


line stmt bran cond sub pod time code
1             package Protocol::HTTP2::Frame::Continuation;
2 11     11   52 use strict;
  11         19  
  11         273  
3 11     11   54 use warnings;
  11         20  
  11         299  
4 11     11   56 use Protocol::HTTP2::Constants qw(:flags :errors);
  11         20  
  11         2346  
5 11     11   63 use Protocol::HTTP2::Trace qw(tracer);
  11         18  
  11         2238  
6              
7             sub decode {
8 0     0 0 0 my ( $con, $buf_ref, $buf_offset, $length ) = @_;
9 0         0 my $frame_ref = $con->decode_context->{frame};
10              
11             # Protocol errors
12 0 0       0 if (
13             # CONTINUATION frames MUST be associated with a stream
14             $frame_ref->{stream} == 0
15             )
16             {
17 0         0 $con->error(PROTOCOL_ERROR);
18 0         0 return undef;
19             }
20              
21             $con->stream_header_block( $frame_ref->{stream},
22 0         0 substr( $$buf_ref, $buf_offset, $length ) );
23              
24             # Stream header block complete
25             $con->stream_headers_done( $frame_ref->{stream} )
26             or return undef
27 0 0 0     0 if $frame_ref->{flags} & END_HEADERS;
28              
29 0         0 return $length;
30              
31             }
32              
33             sub encode {
34 2     2 0 3 my ( $con, $flags_ref, $stream, $data_ref ) = @_;
35 2         7 return $$data_ref;
36             }
37              
38             1;