| line |
!l |
l&&!r |
l&&r |
condition |
|
268
|
0 |
0 |
0 |
builtin::blessed($handler) && ($handler->can('build_before') || $handler->can('build_after')) |
|
277
|
0 |
0 |
0 |
builtin::blessed($handler) && ($handler->can('build_before') || $handler->can('build_after')) |
|
553
|
1 |
0 |
0 |
builtin::blessed($mw) and $mw->can('build_before') || $mw->can('build_after') |
|
560
|
1 |
0 |
0 |
builtin::blessed($mw) and $mw->can('build_before') || $mw->can('build_after') |
|
669
|
1 |
0 |
35 |
defined $body and not ref $body |
|
1004
|
0 |
16 |
4 |
$self->{'enable_security_headers'} and $has_dynamic |
|
1230
|
0 |
0 |
0 |
ref $result eq "HASH" and $result->{'xs_function'} |
|
1308
|
2 |
0 |
2 |
$analysis->{'needs_streaming'} and $self->{'_streaming_flags'} |
|
1318
|
20 |
0 |
0 |
$analysis->{'needs_websocket'} and $self->{'_websocket_paths'} |
|
1360
|
0 |
16 |
4 |
$self->{'enable_security_headers'} and $has_dynamic |
|
1372
|
20 |
0 |
0 |
$analysis->{'needs_xs_builder'} and $self->{'_xs_builder_routes'} |
|
|
0 |
0 |
0 |
$analysis->{'needs_xs_builder'} and $self->{'_xs_builder_routes'} and @{$self->{'_xs_builder_routes'};} |
|
1421
|
11 |
0 |
0 |
$r->{'need_xs_builder'} and $r->{'_xs_result'} |
|
1917
|
4 |
0 |
0 |
$analysis->{'needs_xs_builder'} and $self->{'_xs_builder_routes'} |
|
|
0 |
0 |
0 |
$analysis->{'needs_xs_builder'} and $self->{'_xs_builder_routes'} and @{$self->{'_xs_builder_routes'};} |
|
3122
|
8 |
0 |
3 |
not $prefix =~ m[/$] and $prefix =~ m[^(.*/)[^/]+$] |
|
3277
|
177 |
0 |
236 |
defined $value and length $value |
|
3317
|
6 |
0 |
0 |
$^O eq "MSWin32" and $workers > 1 |
| line |
l |
!l |
condition |
|
49
|
1 |
47 |
$opts{'security_headers'} // {} |
|
94
|
32 |
16 |
$opts{'cache_dir'} // "_hypersonic_cache" |
|
|
0 |
48 |
$opts{'host'} // "0.0.0.0" |
|
|
3 |
45 |
$opts{'port'} // 8080 |
|
|
0 |
48 |
$opts{'tls'} // 0 |
|
|
0 |
48 |
$opts{'http2'} // 0 |
|
|
1 |
47 |
$opts{'max_connections'} // 10000 |
|
|
1 |
47 |
$opts{'max_request_size'} // 8192 |
|
|
1 |
47 |
$opts{'keepalive_timeout'} // 30 |
|
|
1 |
47 |
$opts{'recv_timeout'} // 30 |
|
|
0 |
48 |
$opts{'websocket_rooms'} // 0 |
|
|
0 |
48 |
$opts{'max_rooms'} // 1000 |
|
|
0 |
48 |
$opts{'max_clients_per_room'} // 10000 |
|
|
1 |
47 |
$opts{'drain_timeout'} // 5 |
|
|
1 |
47 |
$security_headers->{'X-Frame-Options'} // "DENY" |
|
|
0 |
48 |
$security_headers->{'X-Content-Type-Options'} // "nosniff" |
|
|
0 |
48 |
$security_headers->{'X-XSS-Protection'} // "1; mode=block" |
|
|
0 |
48 |
$security_headers->{'Referrer-Policy'} // "strict-origin-when-cross-origin" |
|
|
0 |
0 |
$security_headers->{'Strict-Transport-Security'} // "max-age=31536000; includeSubDomains" |
|
|
1 |
47 |
$opts{'enable_security_headers'} // 1 |
|
109
|
0 |
1 |
$path //= "/health" |
|
122
|
0 |
1 |
$path //= "/ready" |
|
138
|
2 |
2 |
$self->{'websocket_routes'} //= [] |
|
150
|
1 |
20 |
$self->{'websocket_routes'} // [] |
|
157
|
3 |
0 |
$self->{'websocket_routes'} // [] |
|
188
|
0 |
0 |
$opts //= {} |
|
197
|
0 |
0 |
$self->{'static_dirs'} //= [] |
|
204
|
0 |
0 |
$opts->{'max_age'} // 3600 |
|
|
0 |
0 |
$opts->{'index'} // "index.html" |
|
|
0 |
0 |
$opts->{'etag'} // 1 |
|
|
0 |
0 |
$opts->{'gzip'} // 0 |
|
257
|
0 |
0 |
$ext // "" |
|
|
0 |
0 |
$MIME_TYPES{lc($ext // "")} // "application/octet-stream" |
|
333
|
0 |
0 |
$opts{'workers'} // 8 |
|
|
0 |
0 |
$opts{'queue_size'} // 4096 |
|
337
|
0 |
0 |
$self->{'_async_pools'} //= [] |
|
430
|
0 |
64 |
$opts->{'before'} // [] |
|
|
0 |
64 |
$opts->{'after'} // [] |
|
439
|
0 |
1 |
$self->{'static_dirs'} // [] |
|
490
|
11 |
0 |
$route->{'features'} // {} |
|
657
|
1 |
0 |
$status //= 200 |
|
658
|
1 |
0 |
$headers //= {} |
|
660
|
7 |
1 |
$result->{'status'} // 200 |
|
661
|
1 |
7 |
$result->{'headers'} // {} |
|
662
|
8 |
0 |
$result->{'body'} // "" |
|
839
|
0 |
0 |
$compile_opts{'extra_cflags'} // "" |
|
840
|
0 |
0 |
$compile_opts{'extra_ldflags'} // "" |
|
847
|
0 |
0 |
$compile_opts{'extra_cflags'} // "" |
|
848
|
0 |
0 |
$compile_opts{'extra_ldflags'} // "" |
|
853
|
0 |
0 |
$compile_opts{'extra_cflags'} // "" |
|
854
|
0 |
0 |
$compile_opts{'extra_ldflags'} // "" |
|
861
|
20 |
0 |
$backend->extra_cflags // "" |
|
862
|
0 |
0 |
$compile_opts{'extra_cflags'} // "" |
|
866
|
20 |
0 |
$backend->extra_ldflags // "" |
|
867
|
0 |
0 |
$compile_opts{'extra_ldflags'} // "" |
|
876
|
0 |
0 |
$compile_opts{'extra_ldflags'} // "" |
|
884
|
0 |
0 |
$compile_opts{'extra_ldflags'} // "" |
|
897
|
0 |
0 |
$compile_opts{'extra_ldflags'} // "" |
|
1057
|
0 |
0 |
$config->{'min_size'} // 1024 |
|
1058
|
0 |
0 |
$config->{'level'} // 6 |
|
1206
|
0 |
0 |
$self->{'_async_config'} // {} |
|
1208
|
0 |
0 |
$async_config->{'max_futures'} // 65536 |
|
1212
|
0 |
0 |
$async_config->{'workers'} // 8 |
|
|
0 |
0 |
$async_config->{'queue_size'} // 4096 |
|
1285
|
4 |
0 |
$self->{'route_param_info'} // [] |
|
1290
|
11 |
0 |
$route_params[$i] // [] |
|
1605
|
20 |
0 |
$analysis->{'has_body_access'} // 0 |
|
1995
|
0 |
0 |
$self->{'_xs_builder_routes'} || [] |
|
2716
|
0 |
0 |
$config->{'min_size'} // 1024 |
|
3161
|
0 |
0 |
$STATUS_TEXT{$code} // "Unknown" |
|
3310
|
6 |
0 |
$opts{'workers'} // 1 |
| line |
l |
!l&&r |
!l&&!r |
condition |
|
114
|
0 |
1 |
0 |
$handler //= sub {
return "{\"status\":\"ok\"}";
}
|
|
126
|
0 |
1 |
0 |
$handler //= sub {
return "{\"ready\":true}";
}
|
|
269
|
0 |
0 |
0 |
ref $handler eq "CODE" or $is_builder |
|
278
|
0 |
0 |
0 |
ref $handler eq "CODE" or $is_builder |
|
439
|
22 |
0 |
1 |
@{$self->{'routes'};} or @{$self->{'static_dirs'} // [];} |
|
521
|
0 |
0 |
47 |
@{$route->{'before'};} or @{$route->{'after'};} |
|
553
|
0 |
0 |
0 |
$mw->can('build_before') || $mw->can('build_after') |
|
560
|
0 |
0 |
0 |
$mw->can('build_before') || $mw->can('build_after') |
|
598
|
0 |
0 |
20 |
$analysis{'has_global_before'} || $analysis{'has_global_after'} || $analysis{'has_builder_before'} || $analysis{'has_builder_after'} || $analysis{'has_route_middleware'} |
|
752
|
1 |
0 |
19 |
$analysis->{'has_global_before'} or $analysis->{'has_global_after'} |
|
918
|
0 |
20 |
0 |
$self->{'event_backend'} // "Hypersonic::Event"->best_backend |
|
2095
|
0 |
0 |
4 |
$analysis->{'needs_query'} or $analysis->{'needs_form'} |
|
2155
|
0 |
1 |
3 |
$analysis->{'needs_headers'} or $analysis->{'needs_cookies'} |
|
|
1 |
0 |
3 |
$analysis->{'needs_headers'} or $analysis->{'needs_cookies'} or $analysis->{'needs_json'} |
|
|
0 |
0 |
3 |
$analysis->{'needs_headers'} or $analysis->{'needs_cookies'} or $analysis->{'needs_json'} or $analysis->{'needs_form'} |
|
2192
|
0 |
0 |
4 |
$analysis->{'has_builder_before'} or $analysis->{'has_builder_after'} |
|
2353
|
0 |
0 |
3 |
$analysis->{'needs_headers'} || $analysis->{'needs_cookies'} || $analysis->{'needs_json'} || $analysis->{'needs_form'} |
|
2398
|
0 |
1 |
0 |
$analysis->{'needs_form'} or $analysis->{'needs_json'} |
|
3101
|
7 |
4 |
0 |
$DEPARSER //= "B::Deparse"->new("-q") |
|
3308
|
0 |
6 |
0 |
$opts{'host'} // $self->{'host'} |
|
3309
|
6 |
0 |
0 |
$opts{'port'} // $self->{'port'} |