| line | % | coverage | branch |
| 254 | 100 | T | F | if (defined $class) { } |
| 256 | 100 | T | F | unless ($is_valid) |
| 262 | 50 | T | F | if (defined $params and keys %{$params;}) |
| 269 | 100 | T | F | if (&Scalar::Util::blessed($class)) |
| 274 | 100 | T | F | if (defined $params->{'logger'}) |
| 275 | 0 | T | F | unless (&Scalar::Util::blessed($params->{'logger'}) and $params->{'logger'}->can("warn") and $params->{'logger'}->can("info") and $params->{'logger'}->can("error")) |
| 281 | 100 | T | F | if (defined $params->{'expect'}) |
| 283 | 50 | T | F | if $logger |
| 297 | 50 | T | F | if (defined $params->{'logger'}) |
| 298 | 50 | T | F | unless (&Scalar::Util::blessed($params->{'logger'}) and $params->{'logger'}->can("warn") and $params->{'logger'}->can("info") and $params->{'logger'}->can("error")) |
| 303 | 100 | T | F | if (defined $params->{'expect'}) |
| 308 | 50 | T | F | if (my $logger = $params->{'logger'}) |
| 356 | 100 | T | F | unless ($self->{'script_name'}) |
| 367 | 0 | T | F | unless "File::Basename"->can("basename") |
| 376 | 0 | T | F | if (my $script_path = $self->_get_env('SCRIPT_FILENAME')) { } |
| 0 | T | F | elsif ($script_name = $self->_get_env('SCRIPT_NAME')) { } |
| 0 | T | F | elsif ('File::Spec'->file_name_is_absolute($0)) { } |
| 379 | 0 | T | F | if (my $document_root = $self->_get_env('DOCUMENT_ROOT')) { } |
| 387 | 0 | T | F | if ('File::Spec'->file_name_is_absolute($script_name) and -r $script_name) { } |
| 391 | 0 | T | F | unless "Cwd"->can("abs_path") |
| 393 | 0 | T | F | if ($script_name =~ m[^/(.+)]) |
| 436 | 100 | T | F | unless ($self->{'script_path'}) |
| 463 | 100 | T | F | unless ref $self |
| 466 | 100 | T | F | unless $self->{'script_path'} |
| 470 | 50 | T | F | $^O eq 'MSWin32' ? : |
| 472 | 50 | T | F | $self->{'script_path'} =~ /$dir_regex/ ? : |
| 499 | 100 | T | F | unless ($self->{'site'}) |
| 560 | 100 | T | F | unless (ref $self) |
| 563 | 100 | T | F | if $self->{'domain'} |
| 567 | 50 | T | F | if (my $site = $self->{'site'}) |
| 568 | 100 | T | F | $site =~ /^www\.(.+)/ ? : |
| 583 | 100 | T | F | unless ($self->{'cgi_site'}) |
| 752 | 100 | T | F | if (defined $self->{'paramref'} and !defined($params->{'allow'}) || defined $self->{'allow'} && $params->{'allow'} eq $self->{'allow'}) |
| 756 | 100 | T | F | if (defined $params->{'allow'}) |
| 759 | 100 | T | F | if (defined $params->{'upload_dir'}) |
| 762 | 100 | T | F | if (defined $params->{'logger'}) |
| 771 | 100 | T | F | if (not $ENV{'GATEWAY_INTERFACE'} && $ENV{'REQUEST_METHOD'}) { } |
| 100 | T | F | elsif ($ENV{'REQUEST_METHOD'} eq 'GET' or $ENV{'REQUEST_METHOD'} eq 'HEAD') { } |
| 100 | T | F | elsif ($ENV{'REQUEST_METHOD'} eq 'POST') { } |
| 100 | T | F | elsif ($ENV{'REQUEST_METHOD'} eq 'OPTIONS') { } |
| 100 | T | F | elsif ($ENV{'REQUEST_METHOD'} eq 'DELETE') { } |
| 775 | 100 | T | F | if (@ARGV) { } |
| 50 | T | F | elsif ($stdin_data) { } |
| 777 | 50 | T | F | if (defined $pairs[0]) |
| 778 | 100 | T | F | if ($pairs[0] eq '--robot') { } |
| 100 | T | F | elsif ($pairs[0] eq '--mobile') { } |
| 100 | T | F | elsif ($pairs[0] eq '--search-engine') { } |
| 100 | T | F | elsif ($pairs[0] eq '--tablet') { } |
| 797 | 100 | T | F | if (my $query = $ENV{'QUERY_STRING'}) { } |
| 798 | 100 | T | F | if (defined $content_type and $content_type =~ m[multipart/form-data]i) |
| 799 | 100 | T | F | if ($ENV{'REMOTE_ADDR'}) { } |
| 814 | 100 | T | F | if (not defined $content_length or $content_length =~ /\D/) |
| 818 | 100 | T | F | if ($self->{'max_upload_size'} >= 0 and $content_length > $self->{'max_upload_size'}) |
| 826 | 100 | T | F | if (not defined $content_type or $content_type =~ m[application/x-www-form-urlencoded]) { } |
| 100 | T | F | elsif ($content_type =~ m[multipart/form-data]i) { } |
| 100 | T | F | elsif ($content_type =~ m[text/xml]i) { } |
| 100 | T | F | elsif ($content_type =~ m[application/json]i) { } |
| 828 | 100 | T | F | if ($stdin_data) { } |
| 831 | 100 | T | F | if (&CGI::Info::read("STDIN", \$buffer, $content_length) != $content_length) |
| 843 | 100 | T | F | unless (defined $self->{'upload_dir'}) |
| 844 | 100 | T | F | if ($ENV{'REMOTE_ADDR'}) { } |
| 859 | 100 | T | F | unless ("File::Spec"->file_name_is_absolute($self->{'upload_dir'})) |
| 867 | 100 | T | F | unless (-d $self->{'upload_dir'}) |
| 875 | 100 | T | F | unless (-w $self->{'upload_dir'}) |
| 885 | 100 | T | F | unless ($self->{'upload_dir'} =~ /^\Q$tmpdir\E/) |
| 893 | 50 | T | F | if ($content_type =~ /boundary=(\S+)$/) |
| 901 | 100 | T | F | if ($stdin_data) { } |
| 904 | 50 | T | F | if (&CGI::Info::read("STDIN", \$buffer, $content_length) != $content_length) |
| 918 | 50 | T | F | unless "JSON::MaybeXS"->can("parse_json") |
| 924 | 100 | T | F | if ($stdin_data) { } |
| 927 | 50 | T | F | if (&CGI::Info::read("STDIN", \$buffer, $content_length) != $content_length) |
| 942 | 100 | T | F | if ($stdin_data) { } |
| 945 | 50 | T | F | if (&CGI::Info::read("STDIN", \$buffer, $content_length) != $content_length) |
| 972 | 100 | T | F | unless (scalar @pairs) |
| 984 | 100 | T | F | unless $key |
| 990 | 100 | T | F | if (defined $value) { } |
| 1003 | 100 | T | F | if ($self->{'allow'}) |
| 1005 | 100 | T | F | unless (exists $self->{'allow'}{$key}) |
| 1012 | 100 | T | F | if (defined(my $schema = $self->{'allow'}{$key})) |
| 1013 | 100 | T | F | if (not ref $schema) { } |
| 100 | T | F | elsif (ref $schema eq 'Regexp') { } |
| 100 | T | F | elsif (ref $schema eq 'CODE') { } |
| 1015 | 100 | T | F | if ($value ne $schema) |
| 1021 | 100 | T | F | unless ($value =~ /$schema/) |
| 1028 | 100 | T | F | unless (&$schema($key, $value, $self)) |
| 1042 | 100 | T | F | if ($@) |
| 1047 | 50 | T | F | if (scalar keys %{$value;}) { } |
| 1085 | 100 | T | F | if ($has_quote or $has_hash or $has_equals and $has_dash) |
| 1086 | 0 | T | F | if ($orig_value =~ /(?:%27|'|%23|#)/i or $has_equals and $has_quote || $has_semi || $has_dash and $orig_value =~ /(?:%3D|=)[^-]*+(?:%27|'|--|%3B|;)/i or $has_quote and $orig_value =~ /\w*(?:%27|')(?:%6F|o|%4F)(?:%72|r|%52)\s*(?:OR|AND|UNION|SELECT|--)/xi or $has_quote and $orig_value =~ /(?:%27|')union/xi) |
| 1096 | 100 | T | F | if ($ENV{'REMOTE_ADDR'}) { } |
| 1112 | 100 | T | F | if ($has_select and $orig_value =~ /\bselect\b.{1,500}?\bfrom\b/is or $has_and and $orig_value =~ /\sAND\s1=1/xi or $has_or and $orig_value =~ /\bOR\s+\d+\s*=\s*\d+/i or $has_or and $has_and and $orig_value =~ /\sOR\s.{1,500}?\sAND\s/ or $has_slash and $orig_value =~ m[/\*\*/ORDER/\*\*/BY/\*\*]xi or $has_dump and $orig_value =~ /var_dump[^m]*+md5/ or $has_slash and $has_select and $orig_value =~ m[/AND/[^(]*+\(SELECT/] or $has_exec and $orig_value =~ /exec[\s+]++[sx]p\w+/xi) |
| 1126 | 100 | T | F | if ($ENV{'REMOTE_ADDR'}) { } |
| 1134 | 100 | T | F | if (my $agent = $ENV{'HTTP_USER_AGENT'}) |
| 1137 | 50 | T | F | if ($agent =~ /\bSELECT\b.{1,500}?\bAND\b/i or $agent =~ /\bORDER\s+BY\b/i or $agent =~ /\bOR\s+NOT\b/i or $agent =~ /\bAND\b\s+\d+=\d+/ or $agent =~ /\bTHEN\b.{1,300}?\bELSE\b.{1,300}?\bEND\b/i or $agent =~ /\bAND\b.{1,500}?\bSELECT\b/i or $agent =~ /\sAND\s.{1,500}?\sAND\s/) |
| 1139 | 100 | T | F | if ($ENV{'REMOTE_ADDR'}) { } |
| 1154 | 100 | T | F | if ($value =~ m[(?:%3C|<)(?:%2F|/)*[a-z0-9%]+(?:%3E|>)]xi or $value =~ /(?:%3C|<)[^>]+(?:%3E|>)/i or $orig_value =~ m[(?:%3C|<)(?:%2F|/)*[a-z0-9%]+(?:%3E|>)]xi or $orig_value =~ /(?:%3C|<)[^>]+(?:%3E|>)/i) |
| 1165 | 100 | T | F | if ($orig_value =~ /\bjavascript\s*:/i) |
| 1171 | 100 | T | F | if ($value =~ m[mustleak\.com/]) |
| 1177 | 100 | T | F | if ($value =~ m[\.\./]) |
| 1183 | 100 | T | F | if (length $value > 0) |
| 1185 | 100 | T | F | if ($FORM{$key} and $FORM{$key} ne $value) { } |
| 1193 | 100 | T | F | unless (%FORM) |
| 1197 | 50 | T | F | if ($self->{'logger'}) |
| 1261 | 100 | T | F | unless (defined $field) |
| 1265 | 100 | T | F | if ($self->{'allow'} and not exists $self->{'allow'}{$field}) |
| 1274 | 50 | T | F | if ($self->{'in_param'} and $self->{'allow'}) |
| 1282 | 100 | T | F | if $allow |
| 1284 | 100 | T | F | if ($params) |
| 1469 | 100 | T | F | if (defined $self->{'is_mobile'}) |
| 1473 | 100 | T | F | if ($ENV{'IS_MOBILE'}) |
| 1478 | 100 | T | F | if (my $ch_ua_mobile = $ENV{'HTTP_SEC_CH_UA_MOBILE'}) |
| 1479 | 100 | T | F | if ($ch_ua_mobile eq "?1") |
| 1485 | 100 | T | F | if ($ENV{'HTTP_X_WAP_PROFILE'}) |
| 1492 | 100 | T | F | if (my $agent = $ENV{'HTTP_USER_AGENT'}) |
| 1495 | 100 | T | F | if ($agent =~ /\b(?:Android|iPhone)\b/) |
| 1501 | 100 | T | F | if ($agent =~ m[(android|bb\d+|meego).+mobile|avantgo|bada/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino]i or substr($ENV{'HTTP_USER_AGENT'}, 0, 4) =~ m[1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-]i) |
| 1508 | 100 | T | F | if (defined $remote and $self->{'cache'}) |
| 1509 | 50 | T | F | if (my $type = $self->{'cache'}->get("$remote/$agent")) |
| 1514 | 100 | T | F | unless ($self->{'browser_detect'}) |
| 1515 | 50 | T | F | if (eval {
do {
require HTTP::BrowserDetect
}
}) |
| 1521 | 50 | T | F | if ($self->{'browser_detect'}) |
| 1524 | 100 | T | F | defined $device && $device =~ /blackberry|webos|iphone|ipod|ipad|android/i ? : |
| 1525 | 50 | T | F | if ($is_mobile and $self->{'cache'} and defined $remote) |
| 1544 | 100 | T | F | if (defined $self->{'is_tablet'}) |
| 1549 | 100 | T | F | if ($ENV{'HTTP_USER_AGENT'} and $ENV{'HTTP_USER_AGENT'} =~ /\b(?:iPad|TabletPC)\b/) { } |
| 1606 | 100 | T | F | if ($args->{'raw'}) { } |
| 1642 | 100 | T | F | if ref $self and exists $self->{'protocol'} |
| 1647 | 100 | T | F | if ($ENV{'SCRIPT_URI'} and $ENV{'SCRIPT_URI'} =~ m[^([a-zA-Z][a-zA-Z0-9+\-.]*)://]) { } |
| 100 | T | F | elsif ($ENV{'SERVER_PROTOCOL'} and $ENV{'SERVER_PROTOCOL'} =~ m[^HTTP/]) { } |
| 100 | T | F | elsif (my $port = $ENV{'SERVER_PORT'}) { } |
| 1652 | 100 | T | F | if (defined(my $name = getservbyport($port, 'tcp'))) { } |
| 50 | T | F | elsif ($port == 80) { } |
| 50 | T | F | elsif ($port == 443) { } |
| 1653 | 100 | T | F | if ($name =~ /^https?$/) { } |
| 50 | T | F | elsif ($name eq 'www') { } |
| 1668 | 100 | T | F | if (not defined $result and $ENV{'REMOTE_ADDR'}) |
| 1671 | 100 | T | F | if ref $self |
| 1706 | 50 | T | F | if ($^O eq "MSWin32") |
| 1712 | 100 | T | F | unless (ref $self) |
| 1717 | 100 | T | F | if ($ENV{'C_DOCUMENT_ROOT'} and -d $ENV{'C_DOCUMENT_ROOT'}) |
| 1719 | 100 | T | F | if (-d $dir and -w $dir) |
| 1723 | 50 | T | F | if (-d $dir and -w $dir) |
| 1727 | 100 | T | F | if ($ENV{'DOCUMENT_ROOT'} and -d $ENV{'DOCUMENT_ROOT'}) |
| 1729 | 100 | T | F | if (-d $dir and -w $dir) |
| 1733 | 100 | T | F | if ($params->{'default'} and ref $params->{'default'}) |
| 1736 | 100 | T | F | $params->{'default'} ? : |
| 1754 | 100 | T | F | if ($ENV{'C_DOCUMENT_ROOT'} and -d $ENV{'C_DOCUMENT_ROOT'}) { } |
| 100 | T | F | elsif ($ENV{'DOCUMENT_ROOT'} and -d $ENV{'DOCUMENT_ROOT'}) { } |
| 1763 | 50 | T | F | unless defined $script_name |
| 1765 | 50 | T | F | unless ("File::Spec"->file_name_is_absolute($script_name)) |
| 1768 | 50 | T | F | if ($script_name =~ m([/\\]cgi-bin)) |
| 1771 | 50 | T | F | if (-f $script_name) |
| 1772 | 50 | T | F | if ($^O eq 'MSWin32') { } |
| 1773 | 0 | T | F | if ($script_name =~ /(.+)\\.+?$/) |
| 1777 | 50 | T | F | if ($script_name =~ m[(.+)/.+?$]) |
| 1793 | 100 | T | F | if ($_[0] and ref $_[0]) |
| 1809 | 100 | T | F | if ($_[0] and ref $_[0]) |
| 1835 | 100 | T | F | unless (ref $self) |
| 1839 | 100 | T | F | if ($dir) |
| 1840 | 100 | T | F | if (length $dir and -d $dir and -w $dir) |
| 1848 | 100 | T | F | if (defined $rc and length $rc and -d $rc and -w $rc) |
| 1853 | 50 | T | F | if not defined $dir or length $dir == 0 |
| 1879 | 100 | T | F | if (defined $self->{'is_robot'}) |
| 1886 | 100 | T | F | unless ($remote and $agent) |
| 1897 | 50 | T | F | if ($agent =~ /\bSELECT\b.{1,500}?\bAND\b/i or $agent =~ /\bORDER\s+BY\b/i or $agent =~ /\bOR\s+NOT\b/i or $agent =~ /\bAND\b\s+\d+=\d+/ or $agent =~ /\bTHEN\b.{1,300}?\bELSE\b.{1,300}?\bEND\b/i or $agent =~ /\bAND\b.{1,500}?\bSELECT\b/i or $agent =~ /\sAND\s.{1,500}?\sAND\s/) |
| 1906 | 50 | T | F | if ($ENV{'REMOTE_ADDR'}) { } |
| 1917 | 100 | T | F | if ($self->is_ai) |
| 1922 | 100 | T | F | if ($agent =~ m[\bbot\b|axios/1\.6\.7|bidswitchbot|bytespider|ClaudeBot|Clickagy\.Intelligence\.Bot|msnptc|CriteoBot|is_archiver|backstreet|fuzz faster|linkfluence\.com|spider|scoutjet|gingersoftware|heritrix|dodnetdotcom|yandex|nutch|ezooms|plukkie|nova\.6scan\.com|Twitterbot|adscanner|Go-http-client|python-requests|Mediatoolkitbot|NetcraftSurveyAgent|Expanse|serpstatbot|DreamHost SiteMonitor|techiaith\.cymru|trendictionbot|ias_crawler|WPsec|Yak/1\.0|ZoominfoBot]i) |
| 1937 | 100 | T | F | if ($self->{'cache'}) |
| 1938 | 50 | T | F | if (my $type = $self->{'cache'}->get($key)) |
| 1943 | 100 | T | F | if (my $referrer = $ENV{'HTTP_REFERER'}) |
| 1948 | 100 | T | F | if ($referrer =~ /\)/ or $referrer =~ /$CRAWLER_REFERER_RE/) |
| 1950 | 50 | T | F | if ($self->{'cache'}) |
| 1960 | 100 | T | F | if ($agent =~ /www\.majestic12\.co\.uk|facebookexternal/) |
| 1962 | 50 | T | F | if ($self->{'cache'}) |
| 1968 | 100 | T | F | unless ($self->{'browser_detect'}) |
| 1969 | 50 | T | F | if (eval {
do {
require HTTP::BrowserDetect
}
}) |
| 1974 | 50 | T | F | if ($self->{'browser_detect'}) |
| 1976 | 100 | T | F | if (defined $is_robot) |
| 1979 | 100 | T | F | defined $is_robot && $is_robot ? : |
| 1982 | 100 | T | F | if ($is_robot) |
| 1983 | 50 | T | F | if ($self->{'cache'}) |
| 1991 | 50 | T | F | if ($self->{'cache'}) |
| 2016 | 100 | T | F | if (defined $self->{'is_search_engine'}) |
| 2020 | 100 | T | F | if ($ENV{'IS_SEARCH_ENGINE'}) |
| 2027 | 100 | T | F | unless ($remote and $agent) |
| 2035 | 100 | T | F | if ($self->{'cache'}) |
| 2036 | 50 | T | F | if (my $type = $self->{'cache'}->get($key)) |
| 2046 | 100 | T | F | if ($agent =~ /www\.majestic12\.co\.uk|facebookexternal/) |
| 2048 | 50 | T | F | if ($self->{'cache'}) |
| 2054 | 100 | T | F | unless ($self->{'browser_detect'}) |
| 2055 | 50 | T | F | if (eval {
do {
require HTTP::BrowserDetect
}
}) |
| 2060 | 50 | T | F | if (my $browser = $self->{'browser_detect'}) |
| 2062 | 100 | T | F | unless ($is_search) |
| 2063 | 100 | T | F | if ($agent =~ m[SeznamBot/] or $agent =~ m[Google-InspectionTool/] or $agent =~ m[Googlebot/]) |
| 2069 | 50 | T | F | if ($is_search and $self->{'cache'}) |
| 2079 | 0 | T | F | unless (defined $safe_remote) |
| 2090 | 0 | T | F | if (defined $hostname and $hostname =~ /\b(?:google|msnbot|bingbot|amazonbot|GPTBot)\b/i and not $hostname =~ /^google-proxy/i or Net::CIDR::cidrlookup($remote, @cidr_blocks)) |
| 2092 | 0 | T | F | if ($self->{'cache'}) |
| 2187 | 100 | T | F | if (defined $self->{'is_ai'}) |
| 2192 | 100 | T | F | if (defined(my $override = $ENV{'IS_AI'})) |
| 2193 | 100 | T | F | $override ? : |
| 2199 | 100 | T | F | unless ($remote and $agent) |
| 2224 | 100 | T | F | if ($agent =~ /ClaudeBot|Claude-Web|anthropic-ai|GPTBot|ChatGPT-User|OAI-SearchBot|Google-Extended|meta-externalagent|FacebookBot|Applebot-Extended|PerplexityBot|Amazonbot|YouBot|Diffbot|cohere-ai|CCBot|Bytespider|AI2Bot|TimpiBot/i) |
| 2274 | 100 | T | F | if ($self->is_mobile) |
| 2277 | 100 | T | F | if ($self->is_ai) |
| 2280 | 100 | T | F | if ($self->is_search_engine) |
| 2283 | 100 | T | F | if ($self->is_robot) |
| 2377 | 100 | T | F | unless (defined $field) |
| 2382 | 50 | T | F | if (ref $field) |
| 2389 | 100 | T | F | unless ($self->{'jar'}) |
| 2390 | 100 | T | F | if (defined $ENV{'HTTP_COOKIE'}) |
| 2437 | 100 | T | F | if defined $status |
| 2440 | 100 | T | F | unless (defined $self->{'status'}) |
| 2443 | 100 | T | F | if $method and $method eq 'OPTIONS' || $method eq 'DELETE' |
| 2444 | 100 | T | F | if $method and ($method eq "POST" and not defined $ENV{'CONTENT_LENGTH'}) |
| 2484 | 100 | T | F | if (scalar $self->{'messages'}) |
| 2517 | 100 | T | F | if ($cache) |
| 2518 | 100 | T | F | unless &Scalar::Util::blessed($cache) |
| 2519 | 100 | T | F | unless $cache->can("get") |
| 2520 | 100 | T | F | unless $cache->can("set") |
| 2540 | 100 | T | F | if (my $logger = $params->{'logger'}) { } |
| 2541 | 100 | T | F | if (&Scalar::Util::blessed($logger)) { } |
| 2638 | 100 | T | F | unless ($class eq __PACKAGE__) |
| 2650 | 50 | T | F | unless my $self = shift() |
| 2652 | 100 | T | F | unless defined $AUTOLOAD |
| 2658 | 100 | T | F | if $method eq "DESTROY" |
| 2660 | 100 | T | F | unless ref $self |
| 2663 | 100 | T | F | if exists $self->{'auto_load'} and &boolean($self->{'auto_load'})->isFalse |
| 2666 | 50 | T | F | unless ref $self eq __PACKAGE__ or UNIVERSAL::isa((&CORE::GLOBAL::caller())[0], __PACKAGE__) |
| 2671 | 50 | T | F | unless $method =~ /^[a-zA-Z_][a-zA-Z0-9_]*$/ |