| line |
true |
false |
branch |
|
43
|
1 |
36 |
if ($value =~ /[\r\n\0]/) |
|
52
|
0 |
37 |
if ($name =~ /[\r\n\0]/) |
|
55
|
0 |
37 |
if ($name =~ /[[:cntrl:]]/) |
|
65
|
1 |
0 |
if ($value =~ /[\r\n\0\s]/) |
|
69
|
0 |
0 |
unless ($value =~ /^[\w\-\.]+$/) |
|
196
|
44 |
280 |
if ($self->{'tls_enabled'}) |
|
213
|
256 |
64 |
if ($self->{'transport_type'} eq "tcp" and $handle and $handle->can("setsockopt")) |
|
221
|
2 |
320 |
if ($self->{'transport_type'} eq 'unix') { } |
|
|
255 |
65 |
elsif ($handle and $handle->can('peerhost')) { } |
|
238
|
26 |
0 |
if ($self->{'alpn_protocol'} and $self->{'alpn_protocol'} eq "h2" and $self->{'h2_protocol'}) |
|
243
|
322 |
0 |
if ($self->{'timeout'} and $self->{'timeout'} > 0 and $self->{'server'}) |
|
247
|
0 |
0 |
unless $weak_self |
|
248
|
0 |
0 |
if $weak_self->{'closed'} |
|
262
|
2 |
549 |
unless $weak_self |
|
268
|
56 |
493 |
if $weak_self->{'handling_request'} |
|
273
|
13 |
536 |
if ($eof) |
|
280
|
37 |
499 |
if ($weak_self->{'h2c_enabled'} and not $weak_self->{'is_h2'}) |
|
281
|
37 |
0 |
if (length $weak_self->{'buffer'} >= 24) { } |
|
282
|
36 |
1 |
if ($weak_self->{'h2_protocol'} and 'PAGI::Server::Protocol::HTTP2'->detect_preface($weak_self->{'buffer'})) { } |
|
299
|
204 |
332 |
if ($weak_self->{'is_h2'}) |
|
305
|
40 |
292 |
if ($weak_self->{'websocket_mode'}) |
|
311
|
12 |
280 |
if ($weak_self->{'receive_pending'} and not $weak_self->{'receive_pending'}->is_ready) |
|
319
|
1 |
535 |
if (my $error = $@) |
|
322
|
0 |
1 |
unless $weak_self |
|
328
|
55 |
265 |
unless $weak_self |
|
338
|
43 |
506 |
unless $self->{'idle_timer'} |
|
340
|
0 |
506 |
unless $self->{'idle_timer'}->is_running |
|
346
|
35 |
322 |
unless $self->{'idle_timer'} |
|
347
|
322 |
0 |
if $self->{'idle_timer'}->is_running |
|
350
|
322 |
0 |
if ($self->{'server'}) |
|
370
|
0 |
66 |
unless $weak_self |
|
375
|
0 |
28 |
unless $weak_self |
|
380
|
0 |
43 |
unless $weak_self |
|
391
|
0 |
205 |
unless $self->{'h2_session'} |
|
393
|
204 |
1 |
if (length $self->{'buffer'} > 0) |
|
401
|
2 |
203 |
if ($self->{'h2_session'} and not $self->{'h2_session'}->want_read) |
|
409
|
0 |
438 |
unless $self->{'h2_session'} |
|
412
|
438 |
269 |
unless defined $data and length $data > 0 |
|
426
|
14 |
53 |
if (($pseudo->{':method'} // "") eq "CONNECT") |
|
427
|
13 |
1 |
if (($pseudo->{':protocol'} // '') eq 'websocket') { } |
|
435
|
0 |
1 |
unless $ws |
|
436
|
0 |
1 |
if $ws->{'closed'} |
|
450
|
53 |
13 |
unless ($is_websocket) |
|
452
|
9 |
52 |
if ($h->[0] eq "accept" and $h->[1] =~ m[text/event-stream]) |
|
478
|
6 |
60 |
if ($self->{'max_body_size'} and $has_body) |
|
480
|
1 |
11 |
if ($h->[0] eq "content-length") |
|
481
|
1 |
0 |
if ($h->[1] > $self->{'max_body_size'}) |
|
485
|
0 |
1 |
unless $ws |
|
486
|
0 |
1 |
if $ws->{'closed'} |
|
504
|
0 |
65 |
unless $weak_self |
|
505
|
0 |
65 |
if $weak_self->{'closed'} |
|
514
|
1 |
27 |
unless $stream |
|
516
|
16 |
0 |
if ($stream->{'is_websocket'} and $stream->{'ws_accepted'}) |
|
518
|
16 |
0 |
if length $data |
|
520
|
0 |
16 |
if ($eof) |
|
532
|
6 |
5 |
if (length $data > 0) |
|
536
|
1 |
5 |
if ($self->{'max_body_size'} and length $stream->{'body'} > $self->{'max_body_size'}) |
|
549
|
5 |
5 |
if ($eof) |
|
558
|
15 |
51 |
if ($stream->{'body_pending'} and not $stream->{'body_pending'}->is_ready) |
|
569
|
2 |
41 |
unless $stream |
|
575
|
0 |
41 |
if ($stream->{'is_websocket'}) { } |
|
|
0 |
41 |
elsif ($stream->{'is_sse'}) { } |
|
595
|
0 |
41 |
unless $weak_self |
|
608
|
1 |
64 |
unless $stream_state |
|
612
|
13 |
51 |
if ($stream_state->{'is_websocket'}) { } |
|
|
9 |
42 |
elsif ($stream_state->{'is_sse'}) { } |
|
632
|
2 |
62 |
if (my $error = $@) |
|
634
|
2 |
0 |
if ($weak_self and not $stream_state->{'response_started'}) |
|
647
|
64 |
0 |
if $weak_self and $weak_self->{'server'} |
|
694
|
42 |
0 |
defined $self->{'client_host'} ? : |
|
|
0 |
42 |
keys %{$$self{'state'};} ? : |
|
706
|
0 |
40 |
unless $weak_self |
|
707
|
0 |
40 |
if $weak_self->{'closed'} |
|
710
|
0 |
40 |
unless $ss |
|
713
|
0 |
40 |
unless $weak_self |
|
716
|
0 |
40 |
unless $ss |
|
719
|
0 |
40 |
if (@{$ss->{'receive_queue'};}) |
|
724
|
40 |
0 |
if ($ss->{'body_complete'}) |
|
735
|
0 |
0 |
unless ($ss->{'body_pending'}) |
|
742
|
0 |
0 |
unless $ss |
|
745
|
0 |
0 |
if (@{$ss->{'receive_queue'};}) |
|
754
|
0 |
0 |
$ss->{'body_complete'} ? : |
|
780
|
88 |
35 |
if (@data_queue) |
|
783
|
11 |
77 |
if (length $chunk > $max_len) |
|
787
|
6 |
82 |
!@data_queue && $eof_pending ? : |
|
792
|
2 |
33 |
if ($eof_pending) |
|
802
|
0 |
149 |
unless $weak_self |
|
803
|
0 |
149 |
if $weak_self->{'closed'} |
|
807
|
39 |
110 |
if ($type eq 'http.response.start') { } |
|
|
110 |
0 |
elsif ($type eq 'http.response.body') { } |
|
808
|
0 |
39 |
unless my $ss = $weak_self->{'h2_streams'}{$stream_id} |
|
809
|
0 |
39 |
if $ss->{'response_started'} |
|
818
|
0 |
110 |
unless my $ss = $weak_self->{'h2_streams'}{$stream_id} |
|
819
|
0 |
110 |
unless $ss->{'response_started'} |
|
824
|
71 |
39 |
if ($more) { } |
|
825
|
8 |
63 |
if (not $streaming_started) { } |
|
828
|
8 |
0 |
if length $body |
|
838
|
1 |
62 |
if ($weak_self->_get_write_buffer_size >= $weak_self->{'write_high_watermark'}) |
|
840
|
0 |
1 |
unless $weak_self |
|
841
|
0 |
1 |
if $weak_self->{'closed'} |
|
842
|
0 |
1 |
unless $weak_self->{'h2_streams'}{$stream_id} |
|
844
|
63 |
0 |
if length $body |
|
849
|
8 |
31 |
if ($streaming_started) { } |
|
851
|
0 |
8 |
if ($weak_self->_get_write_buffer_size >= $weak_self->{'write_high_watermark'}) |
|
853
|
0 |
0 |
unless $weak_self |
|
854
|
0 |
0 |
if $weak_self->{'closed'} |
|
855
|
0 |
0 |
unless $weak_self->{'h2_streams'}{$stream_id} |
|
858
|
6 |
2 |
if length $body |
|
901
|
1 |
27 |
if ($name eq "sec-websocket-protocol") |
|
930
|
13 |
0 |
defined $self->{'client_host'} ? : |
|
|
0 |
13 |
keys %{$$self{'state'};} ? : |
|
942
|
0 |
28 |
unless $weak_self |
|
945
|
0 |
28 |
if $weak_self->{'closed'} |
|
948
|
0 |
28 |
unless $ss |
|
952
|
0 |
28 |
unless $weak_self |
|
956
|
0 |
28 |
unless $ss |
|
960
|
0 |
28 |
if (@{$ss->{'receive_queue'};}) |
|
965
|
12 |
16 |
unless ($ss->{'ws_connect_sent'}) |
|
972
|
9 |
29 |
if (@{$ss->{'receive_queue'};}) |
|
977
|
7 |
22 |
if $weak_self->{'closed'} |
|
979
|
22 |
0 |
unless ($ss->{'body_pending'}) |
|
985
|
0 |
22 |
unless $ss |
|
1001
|
0 |
19 |
unless $weak_self |
|
1002
|
0 |
19 |
if $weak_self->{'closed'} |
|
1005
|
0 |
19 |
unless $ss |
|
1009
|
12 |
7 |
if ($type eq 'websocket.accept') { } |
|
|
5 |
2 |
elsif ($type eq 'websocket.send') { } |
|
|
2 |
0 |
elsif ($type eq 'websocket.close') { } |
|
1010
|
0 |
12 |
if $ss->{'ws_accepted'} |
|
1014
|
0 |
12 |
if (my $subprotocol = $event->{'subprotocol'}) |
|
1018
|
0 |
12 |
if (my $extra = $event->{'headers'}) |
|
1039
|
0 |
12 |
if (length $ss->{'body'} > 0) |
|
1046
|
0 |
5 |
unless $ss->{'ws_accepted'} |
|
1049
|
4 |
1 |
if (defined $event->{'text'}) { } |
|
|
1 |
0 |
elsif (defined $event->{'bytes'}) { } |
|
1070
|
1 |
1 |
unless ($ss->{'ws_accepted'}) |
|
1141
|
9 |
0 |
defined $self->{'client_host'} ? : |
|
|
0 |
9 |
keys %{$$self{'state'};} ? : |
|
1160
|
0 |
10 |
unless $weak_self |
|
1161
|
0 |
10 |
if $weak_self->{'closed'} |
|
1164
|
0 |
10 |
unless $ss |
|
1167
|
0 |
10 |
unless $weak_self |
|
1170
|
0 |
10 |
unless $ss |
|
1173
|
0 |
10 |
if (@{$ss->{'receive_queue'};}) |
|
1178
|
8 |
2 |
unless ($ss->{'sse_request_sent'}) |
|
1189
|
0 |
4 |
if (@{$ss->{'receive_queue'};}) |
|
1194
|
2 |
2 |
if $weak_self->{'closed'} |
|
1196
|
2 |
0 |
unless ($ss->{'body_pending'}) |
|
1202
|
0 |
2 |
unless $ss |
|
1222
|
25 |
34 |
if (@data_queue) |
|
1224
|
0 |
25 |
if (length $chunk > $max_len) |
|
1237
|
0 |
30 |
unless $weak_self |
|
1238
|
0 |
30 |
if $weak_self->{'closed'} |
|
1241
|
0 |
30 |
unless $ss |
|
1249
|
0 |
30 |
if ($weak_self->{'validate_events'}) |
|
1254
|
9 |
21 |
if ($type eq 'sse.start') { } |
|
|
18 |
3 |
elsif ($type eq 'sse.send') { } |
|
|
1 |
2 |
elsif ($type eq 'sse.comment') { } |
|
|
2 |
0 |
elsif ($type eq 'sse.keepalive') { } |
|
1255
|
0 |
9 |
if $ss->{'response_started'} |
|
1264
|
1 |
1 |
if (lc $h->[0] eq "content-type") |
|
1274
|
8 |
1 |
unless ($has_content_type) |
|
1291
|
0 |
6 |
unless $weak_self |
|
1292
|
0 |
6 |
if $weak_self->{'closed'} |
|
1293
|
0 |
6 |
unless $weak_self->{'h2_streams'}{$stream_id} |
|
1303
|
0 |
18 |
unless $ss->{'response_started'} |
|
1306
|
0 |
18 |
if ($weak_self->_get_write_buffer_size >= $weak_self->{'write_high_watermark'}) |
|
1308
|
0 |
0 |
unless $weak_self |
|
1309
|
0 |
0 |
if $weak_self->{'closed'} |
|
1310
|
0 |
0 |
unless $weak_self->{'h2_streams'}{$stream_id} |
|
1319
|
0 |
1 |
unless $ss->{'response_started'} |
|
1330
|
2 |
0 |
if ($interval > 0) { } |
|
1349
|
0 |
16 |
unless $frame |
|
1356
|
5 |
5 |
if ($opcode == 1) { } |
|
|
1 |
4 |
elsif ($opcode == 2) { } |
|
|
4 |
0 |
elsif ($opcode == 8) { } |
|
|
0 |
0 |
elsif ($opcode == 9) { } |
|
1359
|
1 |
4 |
unless (defined $text) |
|
1380
|
1 |
3 |
if (length $bytes == 1) |
|
1391
|
3 |
0 |
if (length $bytes >= 2) |
|
1397
|
2 |
1 |
if ($code == 1000 or $code == 1001 or $code == 1002 or $code == 1003) { } |
|
|
0 |
1 |
elsif ($code >= 1007 and $code <= 1011) { } |
|
|
0 |
2 |
elsif ($code >= 3000 and $code <= 4999) { } |
|
1406
|
1 |
2 |
unless ($valid_code) |
|
1418
|
2 |
0 |
if (length $reason > 0) |
|
1421
|
1 |
1 |
unless (defined $decoded) |
|
1478
|
239 |
0 |
unless $self->{'request_timeout'} and $self->{'request_timeout'} > 0 |
|
1479
|
0 |
0 |
unless $self->{'server'} |
|
1480
|
0 |
0 |
if $self->{'stall_timer'} |
|
1487
|
0 |
0 |
unless $weak_self |
|
1488
|
0 |
0 |
if $weak_self->{'closed'} |
|
1490
|
0 |
0 |
if ($weak_self->{'server'} and $weak_self->{'server'}->can("_log")) |
|
1505
|
525 |
0 |
unless $self->{'stall_timer'} |
|
1507
|
0 |
0 |
unless $self->{'stall_timer'}->is_running |
|
1513
|
545 |
0 |
unless $self->{'stall_timer'} |
|
1514
|
0 |
0 |
if $self->{'stall_timer'}->is_running |
|
1515
|
0 |
0 |
if ($self->{'server'}) |
|
1525
|
21 |
0 |
unless $self->{'ws_idle_timeout'} and $self->{'ws_idle_timeout'} > 0 |
|
1526
|
0 |
0 |
unless $self->{'server'} |
|
1527
|
0 |
0 |
if $self->{'ws_idle_timer'} |
|
1534
|
0 |
0 |
unless $weak_self |
|
1535
|
0 |
0 |
if $weak_self->{'closed'} |
|
1536
|
0 |
0 |
if ($weak_self->{'server'} and $weak_self->{'server'}->can("_log")) |
|
1551
|
82 |
0 |
unless $self->{'ws_idle_timer'} |
|
1553
|
0 |
0 |
unless $self->{'ws_idle_timer'}->is_running |
|
1559
|
322 |
0 |
unless $self->{'ws_idle_timer'} |
|
1560
|
0 |
0 |
if $self->{'ws_idle_timer'}->is_running |
|
1561
|
0 |
0 |
if ($self->{'server'}) |
|
1571
|
23 |
0 |
unless $self->{'sse_idle_timeout'} and $self->{'sse_idle_timeout'} > 0 |
|
1572
|
0 |
0 |
unless $self->{'server'} |
|
1573
|
0 |
0 |
if $self->{'sse_idle_timer'} |
|
1580
|
0 |
0 |
unless $weak_self |
|
1581
|
0 |
0 |
if $weak_self->{'closed'} |
|
1582
|
0 |
0 |
if ($weak_self->{'server'} and $weak_self->{'server'}->can("_log")) |
|
1598
|
62 |
0 |
unless $self->{'sse_idle_timer'} |
|
1600
|
0 |
0 |
unless $self->{'sse_idle_timer'}->is_running |
|
1606
|
322 |
0 |
unless $self->{'sse_idle_timer'} |
|
1607
|
0 |
0 |
if $self->{'sse_idle_timer'}->is_running |
|
1608
|
0 |
0 |
if ($self->{'server'}) |
|
1629
|
0 |
361 |
unless $self->{'stream'} |
|
1638
|
586 |
0 |
if (defined $data and not ref $data) |
|
1649
|
1 |
1 |
unless @{$self->{'_drain_waiters'};} |
|
1650
|
0 |
1 |
unless $self->{'stream'} |
|
1655
|
1 |
0 |
if ($buffered < $self->{'write_low_watermark'}) |
|
1658
|
1 |
0 |
unless $f->is_ready |
|
1669
|
0 |
1 |
if $self->{'_drain_check_active'} |
|
1681
|
0 |
2 |
unless $weak_self |
|
1684
|
0 |
2 |
if $prev_on_empty |
|
1694
|
0 |
1 |
if ($buffered < $self->{'write_low_watermark'}) |
|
1715
|
0 |
0 |
unless $f->is_ready |
|
1729
|
0 |
0 |
unless $interval and $interval > 0 |
|
1730
|
0 |
0 |
unless $self->{'server'} |
|
1740
|
0 |
0 |
unless $weak_self |
|
1741
|
0 |
0 |
if $weak_self->{'closed'} |
|
1742
|
0 |
0 |
unless $weak_self->{'websocket_mode'} |
|
1752
|
0 |
0 |
if ($weak_self->{'ws_keepalive_timeout'} > 0) |
|
1768
|
0 |
0 |
if $self->{'ws_pong_timeout'} |
|
1769
|
0 |
0 |
unless $self->{'ws_keepalive_timeout'} > 0 |
|
1770
|
0 |
0 |
unless $self->{'server'} |
|
1777
|
0 |
0 |
unless $weak_self |
|
1778
|
0 |
0 |
if $weak_self->{'closed'} |
|
1780
|
0 |
0 |
if ($weak_self->{'ws_waiting_pong'}) |
|
1782
|
0 |
0 |
if ($weak_self->{'server'} and $weak_self->{'server'}->can("_log")) |
|
1801
|
322 |
0 |
unless $self->{'ws_pong_timeout'} |
|
1802
|
0 |
0 |
if $self->{'ws_pong_timeout'}->is_running |
|
1803
|
0 |
0 |
if ($self->{'server'}) |
|
1815
|
322 |
0 |
unless $self->{'ws_keepalive_timer'} |
|
1816
|
0 |
0 |
if $self->{'ws_keepalive_timer'}->is_running |
|
1817
|
0 |
0 |
if ($self->{'server'}) |
|
1832
|
0 |
2 |
unless $interval and $interval > 0 |
|
1833
|
0 |
2 |
unless $self->{'server'} |
|
1842
|
0 |
6 |
unless $weak_self |
|
1843
|
0 |
6 |
if $weak_self->{'closed'} |
|
1846
|
6 |
0 |
unless $text =~ /^:/ |
|
1849
|
6 |
0 |
if (my $writer = $weak_self->{'sse_keepalive_writer'}) |
|
1863
|
322 |
2 |
unless $self->{'sse_keepalive_timer'} |
|
1864
|
2 |
0 |
if $self->{'sse_keepalive_timer'}->is_running |
|
1865
|
2 |
0 |
if ($self->{'server'}) |
|
1875
|
0 |
293 |
if $self->{'closed'} |
|
1876
|
11 |
282 |
if $self->{'handling_request'} |
|
1881
|
2 |
280 |
unless $request |
|
1887
|
5 |
275 |
if ($request->{'error'}) |
|
1896
|
8 |
267 |
if ($self->{'max_body_size'} and defined $request->{'content_length'}) |
|
1897
|
1 |
7 |
if ($request->{'content_length'} > $self->{'max_body_size'}) |
|
1916
|
21 |
253 |
if ($is_websocket) { } |
|
|
14 |
239 |
elsif ($is_sse) { } |
|
1941
|
21 |
829 |
if ($name eq 'upgrade' and lc $value eq 'websocket') { } |
|
|
258 |
571 |
elsif ($name eq 'connection') { } |
|
|
21 |
550 |
elsif ($name eq 'sec-websocket-key') { } |
|
1946
|
21 |
237 |
if lc($value) =~ /upgrade/ |
|
1967
|
15 |
708 |
if ($name eq "accept") |
|
1969
|
14 |
1 |
if $value =~ m[text/event-stream] |
|
1987
|
15 |
223 |
if (my $error = $@) |
|
1990
|
2 |
13 |
if ($self->{'response_started'}) { } |
|
1999
|
15 |
0 |
if $self->{'server'} |
|
2010
|
223 |
0 |
if $self->{'server'} |
|
2018
|
208 |
15 |
if ($keep_alive) { } |
|
2030
|
1 |
207 |
if (length $self->{'buffer'} > 0) |
|
2047
|
214 |
245 |
if ($header->[0] eq "connection") |
|
2054
|
220 |
3 |
if ($http_version eq "1.1") |
|
2055
|
13 |
207 |
if $connection_header and $connection_header =~ /close/ |
|
2060
|
3 |
0 |
if ($http_version eq "1.0") |
|
2061
|
1 |
2 |
if $connection_header and $connection_header =~ /keep-alive/ |
|
2100
|
237 |
2 |
defined $self->{'client_host'} ? : |
|
|
3 |
236 |
keys %{$$self{'state'};} ? : |
|
2127
|
0 |
59 |
unless $weak_self |
|
2128
|
0 |
59 |
if $weak_self->{'closed'} |
|
2132
|
0 |
59 |
unless $weak_self |
|
2133
|
0 |
59 |
if $weak_self->{'closed'} |
|
2136
|
0 |
59 |
if (@{$weak_self->{'receive_queue'};}) |
|
2141
|
1 |
58 |
if ($body_complete) |
|
2142
|
1 |
0 |
unless ($weak_self->{'receive_pending'}) |
|
2146
|
0 |
1 |
if ($weak_self->{'closed'}) |
|
2154
|
1 |
0 |
if ref $result eq "HASH" |
|
2156
|
0 |
0 |
if (@{$weak_self->{'receive_queue'};}) |
|
2163
|
40 |
18 |
unless ($has_body) |
|
2173
|
0 |
18 |
if ($expect_continue and not $continue_sent) |
|
2179
|
1 |
17 |
if ($is_chunked) |
|
2182
|
0 |
0 |
unless ($weak_self->{'receive_pending'}) |
|
2189
|
0 |
0 |
if (@{$weak_self->{'receive_queue'};}) |
|
2198
|
0 |
0 |
if (ref $data eq "HASH" and $data->{'error'}) |
|
2205
|
1 |
0 |
if ($consumed > 0) |
|
2212
|
0 |
1 |
if ($weak_self->{'max_body_size'} and $bytes_read > $weak_self->{'max_body_size'}) |
|
2220
|
1 |
0 |
if ($complete) |
|
2225
|
1 |
0 |
$complete ? : |
|
2232
|
0 |
0 |
unless ($weak_self->{'receive_pending'}) |
|
2240
|
0 |
0 |
if $weak_self->{'closed'} |
|
2248
|
0 |
17 |
if ($remaining <= 0) |
|
2259
|
12 |
0 |
unless ($weak_self->{'receive_pending'}) |
|
2266
|
0 |
12 |
if (@{$weak_self->{'receive_queue'};}) |
|
2272
|
0 |
17 |
if ($weak_self->{'closed'} and length $weak_self->{'buffer'} == 0) |
|
2277
|
12 |
5 |
$remaining < $chunk_size ? : |
|
2278
|
12 |
5 |
if length $weak_self->{'buffer'} < $to_read |
|
2284
|
12 |
5 |
$bytes_read < $content_length ? : |
|
2286
|
5 |
12 |
unless ($more) |
|
2320
|
3 |
236 |
if ($is_http10) |
|
2322
|
1 |
1 |
if ($h->[0] eq "connection" and lc($h->[1]) =~ /keep-alive/) |
|
2333
|
0 |
469 |
unless $weak_self |
|
2334
|
0 |
469 |
if $weak_self->{'closed'} |
|
2342
|
0 |
469 |
if ($weak_self->{'validate_events'}) |
|
2347
|
226 |
243 |
if ($type eq 'http.response.start') { } |
|
|
239 |
4 |
elsif ($type eq 'http.response.body') { } |
|
|
1 |
3 |
elsif ($type eq 'http.response.trailers') { } |
|
|
3 |
0 |
elsif ($type eq 'http.fullflush') { } |
|
2348
|
0 |
226 |
if $response_started |
|
2360
|
62 |
255 |
if (lc $h->[0] eq "content-length") |
|
2372
|
5 |
221 |
if ($is_head_request or $is_http10) { } |
|
2374
|
3 |
2 |
if ($is_http10) |
|
2375
|
1 |
2 |
if (not $has_content_length) { } |
|
|
1 |
1 |
elsif ($client_wants_keepalive) { } |
|
2396
|
0 |
239 |
unless $response_started |
|
2397
|
1 |
238 |
if $body_complete |
|
2400
|
2 |
236 |
if ($is_head_request) |
|
2402
|
2 |
0 |
unless ($more) |
|
2411
|
0 |
236 |
if ($weak_self->_get_write_buffer_size >= $weak_self->{'write_high_watermark'}) |
|
2414
|
0 |
0 |
unless $weak_self |
|
2415
|
0 |
0 |
if $weak_self->{'closed'} |
|
2426
|
29 |
207 |
if (defined $file) { } |
|
|
6 |
201 |
elsif (defined $fh) { } |
|
2445
|
169 |
32 |
if ($chunked) { } |
|
2446
|
161 |
8 |
if (length $body) |
|
2452
|
32 |
0 |
if length $body |
|
2456
|
186 |
15 |
unless ($more) |
|
2458
|
153 |
33 |
if ($chunked and not $expects_trailers) |
|
2465
|
0 |
1 |
unless $response_started |
|
2466
|
0 |
1 |
unless $expects_trailers |
|
2467
|
0 |
1 |
unless $chunked |
|
2487
|
1 |
2 |
unless (exists $weak_self->{'extensions'}{'fullflush'}) |
|
2494
|
2 |
0 |
if ($handle and $handle->can("setsockopt")) |
|
2517
|
0 |
22 |
if $self->{'closed'} |
|
2518
|
0 |
22 |
if $self->{'response_started'} |
|
2538
|
9 |
263 |
unless $self->{'access_log'} |
|
2539
|
0 |
263 |
unless $self->{'current_request'} |
|
2545
|
263 |
0 |
if ($self->{'request_start'}) |
|
2551
|
66 |
197 |
if ($now != $_cached_log_time) |
|
2570
|
2 |
0 |
$self->{'transport_type'} eq 'unix' ? : |
|
2574
|
263 |
0 |
if ($formatter) { } |
|
2581
|
0 |
0 |
if defined $query and length $query |
|
2591
|
223 |
322 |
if $self->{'_disconnect_handled'} |
|
2599
|
0 |
2 |
if (not $reason and $self->{'server'} and $self->{'server'}{'shutting_down'}) |
|
2608
|
31 |
0 |
if ($self->{'current_connection_state'} and not $self->{'websocket_mode'} and not $self->{'sse_mode'}) |
|
2614
|
18 |
304 |
if ($self->{'websocket_mode'}) { } |
|
|
14 |
290 |
elsif ($self->{'sse_mode'}) { } |
|
2629
|
16 |
306 |
if ($self->{'receive_pending'} and not $self->{'receive_pending'}->is_ready) |
|
2645
|
0 |
3 |
unless $self->{'stream'} |
|
2646
|
0 |
3 |
if $self->{'close_sent'} |
|
2660
|
225 |
322 |
if $self->{'closed'} |
|
2667
|
322 |
0 |
if ($self->{'h2_streams'}) |
|
2669
|
9 |
16 |
if ($stream->{'body_pending'} and not $stream->{'body_pending'}->is_ready) |
|
2671
|
2 |
7 |
$stream->{'is_sse'} ? : |
|
2678
|
62 |
260 |
if ($self->{'h2_session'}) |
|
2687
|
322 |
0 |
if ($self->{'server'}) |
|
2691
|
1 |
177 |
if ($self->{'server'}{'shutting_down'} and keys %{$$self{"server"}{"connections"};} == 0 and $self->{'server'}{'drain_complete'} and not $self->{'server'}{'drain_complete'}->is_ready) |
|
2719
|
18 |
304 |
if ($self->{'websocket_mode'}) { } |
|
|
14 |
290 |
elsif ($self->{'sse_mode'}) { } |
|
2732
|
0 |
18 |
unless ($future->is_ready) |
|
2740
|
322 |
0 |
if ($self->{'stream'}) |
|
2765
|
0 |
44 |
unless $handle and $handle->isa("IO::Socket::SSL") |
|
2777
|
44 |
0 |
if (my $version_str = $handle->get_sslversion) |
|
2790
|
44 |
0 |
if (my $cipher = $handle->get_cipher) |
|
2796
|
0 |
44 |
if ($ssl and $ssl->can("get_cipher_bits")) |
|
2804
|
0 |
0 |
if ($current_cipher) |
|
2810
|
0 |
0 |
if defined $id |
|
2813
|
0 |
0 |
if ($@) |
|
2824
|
44 |
0 |
if ($cert) |
|
2829
|
0 |
44 |
if ($@) |
|
2837
|
8 |
36 |
if ($client_cert) |
|
2845
|
8 |
0 |
if (my $ssl = $handle->_get_ssl_object) |
|
2847
|
0 |
8 |
if ($chain_obj) |
|
2850
|
0 |
0 |
if $cert |
|
2860
|
8 |
0 |
if $subject |
|
2865
|
8 |
0 |
if (my $ssl = $handle->_get_ssl_object) |
|
2867
|
0 |
8 |
if ($result != 0) |
|
2873
|
0 |
44 |
if ($@) |
|
2884
|
42 |
211 |
$self->{'tls_enabled'} ? : |
|
2890
|
0 |
34 |
$self->{'tls_enabled'} ? : |
|
2899
|
44 |
294 |
if ($self->{'tls_enabled'} and $self->{'tls_info'}) { } |
|
|
294 |
0 |
elsif (not $self->{'tls_enabled'}) { } |
|
2929
|
0 |
14 |
if (my $error = $@) |
|
2931
|
0 |
0 |
unless ($self->{'sse_started'}) |
|
2939
|
13 |
1 |
if ($self->{'sse_started'} and not $self->{'closed'} and $self->{'stream'} and $self->{'stream'}->write_handle) |
|
2975
|
14 |
0 |
defined $self->{'client_host'} ? : |
|
|
0 |
14 |
keys %{$$self{'state'};} ? : |
|
2996
|
0 |
0 |
$weak_self ? : |
|
3001
|
0 |
5 |
unless $weak_self |
|
3004
|
0 |
5 |
if $weak_self->{'closed'} |
|
3007
|
0 |
5 |
unless $weak_self |
|
3010
|
0 |
5 |
if $weak_self->{'closed'} |
|
3013
|
0 |
5 |
if (@{$weak_self->{'receive_queue'};}) |
|
3018
|
1 |
4 |
if ($has_body and not $body_complete) |
|
3023
|
0 |
0 |
unless ($weak_self->{'receive_pending'}) |
|
3029
|
0 |
0 |
if (@{$weak_self->{'receive_queue'};}) |
|
3034
|
0 |
1 |
if $weak_self->{'closed'} |
|
3039
|
0 |
1 |
$remaining < length $weak_self->{'buffer'} ? : |
|
3044
|
0 |
1 |
$bytes_read < $content_length ? : |
|
3045
|
1 |
0 |
unless $more |
|
3055
|
2 |
2 |
unless ($body_complete) |
|
3066
|
1 |
2 |
if (@{$weak_self->{'receive_queue'};}) |
|
3071
|
0 |
2 |
if $weak_self->{'closed'} |
|
3073
|
2 |
0 |
unless ($weak_self->{'receive_pending'}) |
|
3093
|
17 |
26 |
if (defined $event->{'event'} and length $event->{'event'}) |
|
3095
|
1 |
16 |
if $event->{'event'} =~ /[\r\n]/ |
|
3104
|
7 |
35 |
if (defined $event->{'id'} and length $event->{'id'}) |
|
3106
|
1 |
6 |
if $event->{'id'} =~ /[\r\n]/ |
|
3110
|
7 |
34 |
if (defined $event->{'retry'}) |
|
3112
|
2 |
5 |
unless $event->{'retry'} =~ /\A[0-9]+\z/ |
|
3125
|
8 |
1 |
unless $line =~ /^:/ |
|
3139
|
0 |
32 |
unless $weak_self |
|
3140
|
0 |
32 |
if $weak_self->{'closed'} |
|
3148
|
0 |
32 |
if ($weak_self->{'validate_events'}) |
|
3153
|
14 |
18 |
if ($type eq 'sse.start') { } |
|
|
15 |
3 |
elsif ($type eq 'sse.send') { } |
|
|
2 |
1 |
elsif ($type eq 'sse.comment') { } |
|
|
0 |
1 |
elsif ($type eq 'sse.keepalive') { } |
|
|
1 |
0 |
elsif ($type eq 'http.fullflush') { } |
|
3154
|
0 |
14 |
if $weak_self->{'sse_started'} |
|
3165
|
7 |
0 |
if (lc $h->[0] eq "content-type") |
|
3172
|
7 |
7 |
unless ($has_content_type) |
|
3191
|
0 |
0 |
unless $weak_self |
|
3192
|
0 |
0 |
if $weak_self->{'closed'} |
|
3198
|
0 |
15 |
unless $weak_self->{'sse_started'} |
|
3201
|
0 |
15 |
if ($weak_self->_get_write_buffer_size >= $weak_self->{'write_high_watermark'}) |
|
3203
|
0 |
0 |
unless $weak_self |
|
3204
|
0 |
0 |
if $weak_self->{'closed'} |
|
3215
|
0 |
2 |
unless $weak_self->{'sse_started'} |
|
3227
|
0 |
0 |
if ($interval > 0) { } |
|
3237
|
0 |
1 |
unless (exists $weak_self->{'extensions'}{'fullflush'}) |
|
3244
|
1 |
0 |
if ($handle and $handle->can("setsockopt")) |
|
3279
|
2 |
18 |
if (my $error = $@) |
|
3281
|
2 |
0 |
unless ($self->{'websocket_accepted'}) |
|
3303
|
21 |
97 |
if ($name eq 'sec-websocket-key') { } |
|
|
2 |
95 |
elsif ($name eq 'sec-websocket-protocol') { } |
|
3336
|
21 |
0 |
defined $self->{'client_host'} ? : |
|
|
0 |
21 |
keys %{$$self{'state'};} ? : |
|
3350
|
0 |
154 |
unless $weak_self |
|
3354
|
108 |
46 |
if (@{$weak_self->{'receive_queue'};}) |
|
3359
|
0 |
46 |
if $weak_self->{'closed'} |
|
3362
|
0 |
46 |
unless $weak_self |
|
3366
|
0 |
46 |
if (@{$weak_self->{'receive_queue'};}) |
|
3371
|
0 |
46 |
if $weak_self->{'closed'} |
|
3374
|
19 |
27 |
unless ($connect_sent) |
|
3381
|
0 |
0 |
unless ($weak_self->{'receive_pending'}) |
|
3387
|
0 |
0 |
if (@{$weak_self->{'receive_queue'};}) |
|
3393
|
0 |
27 |
if $weak_self->{'closed'} |
|
3397
|
27 |
27 |
if (@{$weak_self->{'receive_queue'};}) |
|
3402
|
0 |
27 |
if $weak_self->{'closed'} |
|
3404
|
27 |
0 |
unless ($weak_self->{'receive_pending'}) |
|
3427
|
0 |
42 |
unless $weak_self |
|
3428
|
0 |
42 |
if $weak_self->{'closed'} |
|
3436
|
0 |
42 |
if ($weak_self->{'validate_events'}) |
|
3441
|
20 |
22 |
if ($type eq 'websocket.accept') { } |
|
|
19 |
3 |
elsif ($type eq 'websocket.send') { } |
|
|
3 |
0 |
elsif ($type eq 'websocket.close') { } |
|
|
0 |
0 |
elsif ($type eq 'websocket.keepalive') { } |
|
3442
|
0 |
20 |
if $weak_self->{'websocket_accepted'} |
|
3458
|
1 |
19 |
if (my $subprotocol = $event->{'subprotocol'}) |
|
3464
|
1 |
18 |
if (my $extra_headers = $event->{'headers'}) |
|
3486
|
0 |
18 |
if ($weak_self->{'receive_pending'} and not $weak_self->{'receive_pending'}->is_ready) |
|
3493
|
0 |
18 |
if (length $weak_self->{'buffer'} > 0) |
|
3498
|
0 |
19 |
unless $weak_self->{'websocket_mode'} |
|
3501
|
0 |
19 |
if ($weak_self->_get_write_buffer_size >= $weak_self->{'write_high_watermark'}) |
|
3503
|
0 |
0 |
unless $weak_self |
|
3504
|
0 |
0 |
if $weak_self->{'closed'} |
|
3509
|
18 |
1 |
if (defined $event->{'text'}) { } |
|
|
1 |
0 |
elsif (defined $event->{'bytes'}) { } |
|
3530
|
1 |
2 |
unless ($weak_self->{'websocket_accepted'}) |
|
3549
|
0 |
2 |
if ($weak_self->{'close_received'}) |
|
3554
|
0 |
0 |
unless $weak_self->{'websocket_mode'} |
|
3559
|
0 |
0 |
if ($interval > 0) { } |
|
3578
|
0 |
40 |
unless $self->{'websocket_mode'} |
|
3579
|
0 |
40 |
if $self->{'closed'} |
|
3598
|
128 |
0 |
if ($rsv and ref $rsv eq "ARRAY") |
|
3599
|
0 |
128 |
if (grep {$_;} @$rsv) |
|
3608
|
0 |
128 |
if ($opcode >= 3 and $opcode <= 7 or $opcode >= 11 and $opcode <= 15) |
|
3616
|
0 |
128 |
if ($opcode == 8 || $opcode == 9 || $opcode == 10 and length $bytes > 125) |
|
3622
|
127 |
1 |
if ($opcode == 1) { } |
|
|
1 |
0 |
elsif ($opcode == 2) { } |
|
|
0 |
0 |
elsif ($opcode == 8) { } |
|
|
0 |
0 |
elsif ($opcode == 9) { } |
|
|
0 |
0 |
elsif ($opcode == 10) { } |
|
3625
|
2 |
125 |
unless (defined $text) |
|
3632
|
1 |
124 |
if (@{$self->{'receive_queue'};} >= $self->{'max_receive_queue'}) |
|
3645
|
0 |
1 |
if (@{$self->{'receive_queue'};} >= $self->{'max_receive_queue'}) |
|
3662
|
0 |
0 |
if (length $bytes == 1) |
|
3668
|
0 |
0 |
if (length $bytes >= 2) |
|
3676
|
0 |
0 |
if ($code == 1000 or $code == 1001 or $code == 1002 or $code == 1003) { } |
|
|
0 |
0 |
elsif ($code >= 1007 and $code <= 1011) { } |
|
|
0 |
0 |
elsif ($code >= 3000 and $code <= 4999) { } |
|
3685
|
0 |
0 |
unless ($valid_code) |
|
3692
|
0 |
0 |
if (length $reason > 0) |
|
3695
|
0 |
0 |
unless (defined $decoded) |
|
3704
|
0 |
0 |
unless ($self->{'close_sent'}) |
|
3734
|
13 |
0 |
if ($self->{'receive_pending'} and not $self->{'receive_pending'}->is_ready and @{$self->{'receive_queue'};}) |
|
3749
|
0 |
29 |
unless defined $file_size |
|
3756
|
25 |
4 |
if ($self->{'sync_file_threshold'} > 0 and $length <= $self->{'sync_file_threshold'}) { } |
|
3759
|
0 |
25 |
unless open my $fh, "<:raw", $file |
|
3760
|
3 |
22 |
if $offset |
|
3764
|
0 |
25 |
unless defined $bytes_read |
|
3766
|
1 |
24 |
if ($chunked) { } |
|
3777
|
4 |
0 |
$self->{'server'} ? : |
|
3778
|
0 |
4 |
unless $loop |
|
3784
|
2 |
6 |
if ($chunked) { } |
|
3799
|
1 |
3 |
if ($chunked) |
|
3812
|
1 |
5 |
if ($offset and $offset > 0) |
|
3813
|
0 |
1 |
unless seek $fh, $offset, 0 |
|
3825
|
4 |
8 |
if (defined $remaining) |
|
3826
|
4 |
0 |
if $remaining < $to_read |
|
3827
|
2 |
2 |
if $to_read <= 0 |
|
3832
|
0 |
10 |
unless defined $bytes_read |
|
3833
|
4 |
6 |
if $bytes_read == 0 |
|
3837
|
3 |
3 |
if ($chunked) { } |
|
3845
|
2 |
4 |
if (defined $remaining) |
|
3851
|
3 |
3 |
if ($chunked) |