| line |
!l |
l&&!r |
l&&r |
condition |
|
213
|
2 |
0 |
320 |
$self->{'transport_type'} eq "tcp" and $handle |
|
|
2 |
64 |
256 |
$self->{'transport_type'} eq "tcp" and $handle and $handle->can("setsockopt") |
|
221
|
0 |
65 |
255 |
$handle and $handle->can("peerhost") |
|
238
|
295 |
1 |
26 |
$self->{'alpn_protocol'} and $self->{'alpn_protocol'} eq "h2" |
|
|
296 |
0 |
26 |
$self->{'alpn_protocol'} and $self->{'alpn_protocol'} eq "h2" and $self->{'h2_protocol'} |
|
243
|
0 |
0 |
322 |
$self->{'timeout'} and $self->{'timeout'} > 0 |
|
|
0 |
0 |
322 |
$self->{'timeout'} and $self->{'timeout'} > 0 and $self->{'server'} |
|
280
|
499 |
0 |
37 |
$weak_self->{'h2c_enabled'} and not $weak_self->{'is_h2'} |
|
282
|
0 |
1 |
36 |
$weak_self->{'h2_protocol'} and "PAGI::Server::Protocol::HTTP2"->detect_preface($weak_self->{'buffer'}) |
|
311
|
280 |
0 |
12 |
$weak_self->{'receive_pending'} and not $weak_self->{'receive_pending'}->is_ready |
|
401
|
0 |
203 |
2 |
$self->{'h2_session'} and not $self->{'h2_session'}->want_read |
|
412
|
0 |
438 |
269 |
defined $data and length $data > 0 |
|
452
|
51 |
1 |
9 |
$h->[0] eq "accept" and $h->[1] =~ m[text/event-stream] |
|
478
|
44 |
16 |
6 |
$self->{'max_body_size'} and $has_body |
|
516
|
11 |
0 |
16 |
$stream->{'is_websocket'} and $stream->{'ws_accepted'} |
|
536
|
5 |
0 |
1 |
$self->{'max_body_size'} and length $stream->{'body'} > $self->{'max_body_size'} |
|
558
|
51 |
0 |
15 |
$stream->{'body_pending'} and not $stream->{'body_pending'}->is_ready |
|
634
|
0 |
0 |
2 |
$weak_self and not $stream_state->{'response_started'} |
|
647
|
0 |
0 |
64 |
$weak_self and $weak_self->{'server'} |
|
787
|
49 |
33 |
6 |
!@data_queue && $eof_pending |
|
1397
|
1 |
0 |
0 |
$code >= 1007 and $code <= 1011 |
|
|
1 |
0 |
0 |
$code >= 3000 and $code <= 4999 |
|
1478
|
239 |
0 |
0 |
$self->{'request_timeout'} and $self->{'request_timeout'} > 0 |
|
1490
|
0 |
0 |
0 |
$weak_self->{'server'} and $weak_self->{'server'}->can("_log") |
|
1525
|
21 |
0 |
0 |
$self->{'ws_idle_timeout'} and $self->{'ws_idle_timeout'} > 0 |
|
1536
|
0 |
0 |
0 |
$weak_self->{'server'} and $weak_self->{'server'}->can("_log") |
|
1571
|
23 |
0 |
0 |
$self->{'sse_idle_timeout'} and $self->{'sse_idle_timeout'} > 0 |
|
1582
|
0 |
0 |
0 |
$weak_self->{'server'} and $weak_self->{'server'}->can("_log") |
|
1638
|
0 |
0 |
586 |
defined $data and not ref $data |
|
1729
|
0 |
0 |
0 |
$interval and $interval > 0 |
|
1782
|
0 |
0 |
0 |
$weak_self->{'server'} and $weak_self->{'server'}->can("_log") |
|
1832
|
0 |
0 |
2 |
$interval and $interval > 0 |
|
1896
|
2 |
265 |
8 |
$self->{'max_body_size'} and defined $request->{'content_length'} |
|
1909
|
21 |
239 |
14 |
!$is_websocket && $self->_is_sse_request($request) |
|
1941
|
829 |
0 |
21 |
$name eq "upgrade" and lc $value eq "websocket" |
|
1953
|
253 |
0 |
21 |
$has_upgrade && $has_connection_upgrade && $has_ws_key |
|
2055
|
7 |
200 |
13 |
$connection_header and $connection_header =~ /close/ |
|
2061
|
2 |
0 |
1 |
$connection_header and $connection_header =~ /keep-alive/ |
|
2173
|
18 |
0 |
0 |
$expect_continue and not $continue_sent |
|
2181
|
1 |
0 |
0 |
length $weak_self->{'buffer'} == 0 and not $weak_self->{'closed'} |
|
2198
|
1 |
0 |
0 |
ref $data eq "HASH" and $data->{'error'} |
|
2212
|
0 |
1 |
0 |
$weak_self->{'max_body_size'} and $bytes_read > $weak_self->{'max_body_size'} |
|
2258
|
17 |
0 |
12 |
length $weak_self->{'buffer'} == 0 and not $weak_self->{'closed'} |
|
2272
|
17 |
0 |
0 |
$weak_self->{'closed'} and length $weak_self->{'buffer'} == 0 |
|
2322
|
1 |
0 |
1 |
$h->[0] eq "connection" and lc($h->[1]) =~ /keep-alive/ |
|
2458
|
32 |
1 |
153 |
$chunked and not $expects_trailers |
|
2494
|
0 |
0 |
2 |
$handle and $handle->can("setsockopt") |
|
2581
|
0 |
0 |
0 |
defined $query and length $query |
|
2599
|
320 |
0 |
2 |
not $reason and $self->{'server'} |
|
|
0 |
2 |
0 |
not $reason and $self->{'server'} and $self->{'server'}{'shutting_down'} |
|
2608
|
291 |
0 |
31 |
$self->{'current_connection_state'} and not $self->{'websocket_mode'} |
|
|
291 |
0 |
31 |
$self->{'current_connection_state'} and not $self->{'websocket_mode'} and not $self->{'sse_mode'} |
|
2629
|
305 |
1 |
16 |
$self->{'receive_pending'} and not $self->{'receive_pending'}->is_ready |
|
2669
|
16 |
0 |
9 |
$stream->{'body_pending'} and not $stream->{'body_pending'}->is_ready |
|
2691
|
130 |
14 |
178 |
$self->{'server'}{'shutting_down'} and keys %{$$self{"server"}{"connections"};} == 0 |
|
|
144 |
177 |
1 |
$self->{'server'}{'shutting_down'} and keys %{$$self{"server"}{"connections"};} == 0 and $self->{'server'}{'drain_complete'} |
|
|
177 |
0 |
1 |
$self->{'server'}{'shutting_down'} and keys %{$$self{"server"}{"connections"};} == 0 and $self->{'server'}{'drain_complete'} and not $self->{'server'}{'drain_complete'}->is_ready |
|
2765
|
0 |
0 |
44 |
$handle and $handle->isa("IO::Socket::SSL") |
|
2796
|
0 |
44 |
0 |
$ssl and $ssl->can("get_cipher_bits") |
|
2899
|
294 |
0 |
44 |
$self->{'tls_enabled'} and $self->{'tls_info'} |
|
2939
|
0 |
0 |
14 |
$self->{'sse_started'} and not $self->{'closed'} |
|
|
0 |
0 |
14 |
$self->{'sse_started'} and not $self->{'closed'} and $self->{'stream'} |
|
|
0 |
1 |
13 |
$self->{'sse_started'} and not $self->{'closed'} and $self->{'stream'} and $self->{'stream'}->write_handle |
|
2986
|
13 |
0 |
1 |
defined $content_length && $content_length > 0 |
|
3018
|
4 |
0 |
1 |
$has_body and not $body_complete |
|
3022
|
1 |
0 |
0 |
length $weak_self->{'buffer'} == 0 and not $weak_self->{'closed'} |
|
|
1 |
0 |
0 |
length $weak_self->{'buffer'} == 0 and not $weak_self->{'closed'} and $remaining > 0 |
|
3093
|
26 |
0 |
17 |
defined $event->{'event'} and length $event->{'event'} |
|
3104
|
35 |
0 |
7 |
defined $event->{'id'} and length $event->{'id'} |
|
3244
|
0 |
0 |
1 |
$handle and $handle->can("setsockopt") |
|
3486
|
18 |
0 |
0 |
$weak_self->{'receive_pending'} and not $weak_self->{'receive_pending'}->is_ready |
|
3598
|
0 |
0 |
128 |
$rsv and ref $rsv eq "ARRAY" |
|
3608
|
128 |
0 |
0 |
$opcode >= 3 and $opcode <= 7 |
|
|
128 |
0 |
0 |
$opcode >= 11 and $opcode <= 15 |
|
3616
|
128 |
0 |
0 |
$opcode == 8 || $opcode == 9 || $opcode == 10 and length $bytes > 125 |
|
3676
|
0 |
0 |
0 |
$code >= 1007 and $code <= 1011 |
|
|
0 |
0 |
0 |
$code >= 3000 and $code <= 4999 |
|
3734
|
23 |
0 |
13 |
$self->{'receive_pending'} and not $self->{'receive_pending'}->is_ready |
|
|
23 |
0 |
13 |
$self->{'receive_pending'} and not $self->{'receive_pending'}->is_ready and @{$self->{'receive_queue'};} |
|
3756
|
0 |
4 |
25 |
$self->{'sync_file_threshold'} > 0 and $length <= $self->{'sync_file_threshold'} |
|
3812
|
5 |
0 |
1 |
$offset and $offset > 0 |
| line |
l |
!l |
condition |
|
189
|
258 |
66 |
$args{'extensions'} // {} |
|
|
258 |
66 |
$args{'state'} // {} |
|
|
258 |
66 |
$args{'tls_enabled'} // 0 |
|
|
258 |
66 |
$args{'timeout'} // 60 |
|
|
258 |
66 |
$args{'request_timeout'} // 0 |
|
|
258 |
66 |
$args{'ws_idle_timeout'} // 0 |
|
|
258 |
66 |
$args{'sse_idle_timeout'} // 0 |
|
|
258 |
66 |
$args{'max_receive_queue'} // 1000 |
|
|
258 |
66 |
$args{'max_ws_frame_size'} // 65536 |
|
|
258 |
66 |
$args{'sync_file_threshold'} // 65536 |
|
|
258 |
66 |
$args{'validate_events'} // 0 |
|
|
258 |
66 |
$args{'write_high_watermark'} // 65536 |
|
|
258 |
66 |
$args{'write_low_watermark'} // 16384 |
|
|
39 |
285 |
$args{'h2c_enabled'} // 0 |
|
|
258 |
66 |
$args{'transport_type'} // "tcp" |
|
229
|
255 |
0 |
$handle->peerhost // "127.0.0.1" |
|
230
|
255 |
0 |
$handle->peerport // 0 |
|
231
|
255 |
0 |
$handle->sockhost // "127.0.0.1" |
|
232
|
255 |
0 |
$handle->sockport // 5000 |
|
426
|
67 |
0 |
$pseudo->{':method'} // "" |
|
427
|
13 |
1 |
$pseudo->{':protocol'} // "" |
|
660
|
42 |
0 |
$pseudo->{':path'} // "/" |
|
662
|
2 |
40 |
$query_string //= "" |
|
694
|
42 |
0 |
$pseudo->{':method'} // "GET" |
|
805
|
149 |
0 |
$event->{'type'} // "" |
|
812
|
39 |
0 |
$event->{'status'} // 200 |
|
815
|
39 |
0 |
$event->{'headers'} // [] |
|
821
|
110 |
0 |
$event->{'body'} // "" |
|
822
|
91 |
19 |
$event->{'more'} // 0 |
|
888
|
13 |
0 |
$pseudo->{':path'} // "/" |
|
890
|
0 |
13 |
$query_string //= "" |
|
1007
|
19 |
0 |
$event->{'type'} // "" |
|
1081
|
1 |
0 |
$event->{'code'} // 1000 |
|
1082
|
1 |
0 |
$event->{'reason'} // "" |
|
1108
|
9 |
0 |
$pseudo->{':path'} // "/" |
|
1110
|
0 |
9 |
$query_string //= "" |
|
1141
|
9 |
0 |
$pseudo->{':method'} // "GET" |
|
1246
|
30 |
0 |
$event->{'type'} // "" |
|
1258
|
9 |
0 |
$event->{'status'} // 200 |
|
1259
|
1 |
8 |
$event->{'headers'} // [] |
|
1327
|
2 |
0 |
$event->{'interval'} // 0 |
|
1393
|
3 |
0 |
substr($bytes, 2) // "" |
|
1466
|
4 |
0 |
$reason // "" |
|
1633
|
361 |
0 |
$self->{'stream'}{'writequeue'} // [] |
|
1710
|
642 |
2 |
$reason //= "connection closed" |
|
1733
|
0 |
0 |
$timeout // 0 |
|
1835
|
2 |
0 |
$comment // "" |
|
2042
|
223 |
0 |
$request->{'http_version'} // "1.1" |
|
2113
|
239 |
0 |
$request->{'chunked'} // 0 |
|
2114
|
239 |
0 |
$request->{'expect_continue'} // 0 |
|
2200
|
0 |
0 |
$data->{'message'} // "Bad Request" |
|
2209
|
1 |
0 |
$data // "" |
|
2225
|
1 |
0 |
$data // "" |
|
2314
|
239 |
0 |
$request->{'method'} // "" |
|
2315
|
239 |
0 |
$request->{'http_version'} // "1.1" |
|
2339
|
469 |
0 |
$event->{'type'} // "" |
|
2351
|
226 |
0 |
$event->{'status'} // 200 |
|
2352
|
1 |
225 |
$event->{'trailers'} // 0 |
|
2354
|
226 |
0 |
$event->{'status'} // 200 |
|
2355
|
226 |
0 |
$event->{'headers'} // [] |
|
2401
|
2 |
0 |
$event->{'more'} // 0 |
|
2423
|
6 |
230 |
$event->{'offset'} // 0 |
|
2440
|
199 |
2 |
$body //= "" |
|
2441
|
180 |
21 |
$event->{'more'} // 0 |
|
2469
|
1 |
0 |
$event->{'headers'} // [] |
|
2570
|
263 |
0 |
$request->{'method'} // "-" |
|
|
263 |
0 |
$request->{'raw_path'} // "/" |
|
|
263 |
0 |
$request->{'http_version'} // "1.1" |
|
|
263 |
0 |
$self->{'response_status'} // "-" |
|
|
263 |
0 |
$self->{'_response_size'} // 0 |
|
|
263 |
0 |
$request->{'headers'} // [] |
|
2604
|
320 |
2 |
$reason //= "client_closed" |
|
2619
|
0 |
14 |
$self->{'sse_disconnect_reason'} // "client_closed" |
|
2643
|
3 |
0 |
$reason //= "" |
|
2724
|
0 |
14 |
$self->{'sse_disconnect_reason'} // "client_closed" |
|
2996
|
0 |
0 |
($weak_self ? $weak_self->{'sse_disconnect_reason'} : undef) // "client_closed" |
|
3099
|
42 |
0 |
$event->{'data'} // "" |
|
3122
|
5 |
0 |
$event->{'comment'} // "" |
|
3145
|
32 |
0 |
$event->{'type'} // "" |
|
3158
|
14 |
0 |
$event->{'status'} // 200 |
|
3160
|
13 |
1 |
$event->{'headers'} // [] |
|
3224
|
0 |
0 |
$event->{'interval'} // 0 |
|
3433
|
42 |
0 |
$event->{'type'} // "" |
|
3536
|
0 |
2 |
$event->{'code'} // 1000 |
|
3537
|
0 |
2 |
$event->{'reason'} // "" |
|
3556
|
0 |
0 |
$event->{'interval'} // 0 |
|
3670
|
0 |
0 |
substr($bytes, 2) // "" |
| line |
l |
!l&&r |
!l&&!r |
condition |
|
212
|
322 |
0 |
0 |
$stream->write_handle // $stream->read_handle |
|
667
|
42 |
0 |
0 |
eval {
do {
&decode("UTF-8", $unescaped, 1)
}
} // $unescaped |
|
694
|
42 |
0 |
0 |
$pseudo->{':scheme'} // $self->_get_scheme |
|
894
|
13 |
0 |
0 |
eval {
do {
&decode("UTF-8", $unescaped, 1)
}
} // $unescaped |
|
1114
|
9 |
0 |
0 |
eval {
do {
&decode("UTF-8", $unescaped, 1)
}
} // $unescaped |
|
1141
|
9 |
0 |
0 |
$pseudo->{':scheme'} // $self->_get_scheme |
|
1397
|
2 |
0 |
1 |
$code == 1000 or $code == 1001 |
|
|
2 |
0 |
1 |
$code == 1000 or $code == 1001 or $code == 1002 |
|
|
0 |
0 |
1 |
$code == 1000 or $code == 1001 or $code == 1002 or $code == 1003 |
|
2121
|
6 |
1 |
232 |
defined $content_length && $content_length > 0 || $is_chunked |
|
2372
|
2 |
3 |
221 |
$is_head_request or $is_http10 |
|
2570
|
261 |
2 |
0 |
$self->{'client_host'} // ($self->{'transport_type'} eq "unix" ? "unix" : "-") |
|
3380
|
27 |
0 |
0 |
$weak_self->{'websocket_mode'} or $weak_self->{'closed'} |
|
3608
|
0 |
0 |
128 |
$opcode >= 3 and $opcode <= 7 or $opcode >= 11 and $opcode <= 15 |
|
3616
|
0 |
0 |
128 |
$opcode == 8 || $opcode == 9 || $opcode == 10 |
|
3676
|
0 |
0 |
0 |
$code == 1000 or $code == 1001 |
|
|
0 |
0 |
0 |
$code == 1000 or $code == 1001 or $code == 1002 |
|
|
0 |
0 |
0 |
$code == 1000 or $code == 1001 or $code == 1002 or $code == 1003 |
|
3750
|
4 |
25 |
0 |
$length //= $file_size - $offset |