| line |
true |
false |
branch |
|
2275
|
41 |
0 |
if $self->{'hostname'} =~ /^([\w\-\.]+)$/ |
|
2333
|
0 |
41 |
if ($self->{'_enable_syslog'}) |
|
2335
|
0 |
0 |
if (defined $self->config('log socket type')) { } |
|
2349
|
0 |
41 |
if (defined $self->config('error log')) { } |
|
2381
|
0 |
0 |
if $self |
|
2406
|
0 |
41 |
if (my $ftpdata = $self->config('ftp data port')) |
|
2408
|
0 |
0 |
$ftpdata =~ /^\d+$/ ? : |
|
2412
|
0 |
0 |
unless defined $ftp_data_port |
|
2423
|
0 |
0 |
if ($sub) { } |
|
2425
|
0 |
0 |
if (ref $sub eq 'CODE') { } |
|
2433
|
0 |
0 |
if ($!) { } |
|
2446
|
0 |
41 |
$daemon_mode ? : |
|
|
0 |
41 |
$run_in_background ? : |
|
|
2 |
39 |
$self->config('port') ? : |
|
2453
|
0 |
41 |
if ($daemon_mode) |
|
2456
|
0 |
0 |
if $run_in_background |
|
2466
|
41 |
0 |
if $self->{'debug'} |
|
2475
|
0 |
41 |
unless ($self->{'_test_mode'}) |
|
2477
|
0 |
0 |
if $self->{'debug'} |
|
2480
|
0 |
0 |
unless (defined $sockname) |
|
2490
|
0 |
0 |
unless setsockopt STDIN, 1, 10, "\cA\000\000\000" |
|
2503
|
0 |
41 |
if ($self->config('enable virtual hosts')) |
|
2505
|
0 |
0 |
if $self->{'debug'} |
|
2510
|
0 |
0 |
unless ($virtual_host_multiplex and $virtual_host_multiplex eq $sockaddrstring) |
|
2517
|
0 |
0 |
unless ($sitename) |
|
2523
|
0 |
0 |
if ($self->{'debug'}) |
|
2525
|
0 |
0 |
if ($sitename) { } |
|
2541
|
41 |
0 |
if $self->{'debug'} |
|
2546
|
0 |
41 |
if ($peername = getpeername STDIN) { } |
|
2562
|
0 |
41 |
if ($self->config('resolve addresses')) |
|
2566
|
0 |
0 |
if ($hostname) |
|
2570
|
0 |
0 |
if ($ipaddr and inet_ntoa($ipaddr) eq $peeraddrstring) |
|
2576
|
0 |
0 |
if ($self->config('require resolved addresses') and not $peerhostname) |
|
2620
|
2 |
39 |
defined $self->config('maintainer email') ? : |
|
2629
|
41 |
0 |
unless exists $self->{'archive_filters'} |
|
2630
|
41 |
0 |
unless exists $self->{'archive_generators'} |
|
2631
|
41 |
0 |
if ($self->{'archive_mode'}) |
|
2634
|
0 |
41 |
if $self->_find_prog('compress') |
|
2636
|
41 |
0 |
if $self->_find_prog('gzip') |
|
2638
|
41 |
0 |
if $self->_find_prog('bzip2') |
|
2640
|
0 |
41 |
if $self->_find_prog('uuencode') |
|
2644
|
0 |
41 |
if exists $INC{'Archive/Zip.pm'} |
|
2649
|
41 |
0 |
if ($self->{'debug'}) |
|
2659
|
41 |
0 |
if $self->{'debug'} |
|
2662
|
0 |
41 |
if $r == -1 |
|
2665
|
41 |
0 |
if ($r == 0) |
|
2667
|
0 |
41 |
unless ($self->_eval_rule('access control rule')) |
|
2675
|
41 |
0 |
if $self->{'debug'} |
|
2678
|
0 |
41 |
if $r == -1 |
|
2681
|
41 |
0 |
if ($r == 0) |
|
2684
|
40 |
1 |
if $limit >= 0 |
|
2687
|
40 |
1 |
if $limit >= 0 |
|
2690
|
40 |
1 |
if $limit >= 0 |
|
2693
|
0 |
41 |
unless ($self->{'_test_mode'}) |
|
2696
|
0 |
0 |
$peerhostname ? : |
|
2704
|
0 |
0 |
unless (defined $self->config('change process name') and not $self->config('change process name')) |
|
2714
|
38 |
3 |
if ($greeting_type eq 'full') { } |
|
|
1 |
2 |
elsif ($greeting_type eq 'brief') { } |
|
|
1 |
1 |
elsif ($greeting_type eq 'terse') { } |
|
|
1 |
0 |
elsif ($greeting_type eq 'text') { } |
|
2728
|
0 |
1 |
unless my $greeting_text = $self->config('greeting text') |
|
2749
|
0 |
0 |
if (defined $ident_timeout and $ident_timeout > 0 and defined $self->{'peerport'} and defined $self->{'sockport'} and defined $self->{'peeraddrstring'}) |
|
2767
|
0 |
0 |
if ($got_bored) { } |
|
2776
|
0 |
0 |
if (defined $ident) { } |
|
2793
|
0 |
0 |
if ($got_bored) { } |
|
2800
|
0 |
0 |
if ($response =~ /:\s*USERID\s*:\s*OTHER\s*:\s*(\S+)/) { } |
|
2829
|
0 |
1 |
unless (/^"([a-zA-Z\s]+)"\s+(.*)/) |
|
2848
|
0 |
41 |
if (defined $self->config('no authentication commands')) { } |
|
2875
|
15 |
311 |
unless defined($_ = readline STDIN) |
|
2886
|
0 |
311 |
if (getppid == 1) |
|
2901
|
311 |
0 |
unless /^PASS /i and $self->config('hide passwords in client log') |
|
2905
|
0 |
311 |
if $self->config('command wait') |
|
2913
|
0 |
311 |
if $r == -1 |
|
2916
|
311 |
0 |
if ($r == 0) |
|
2918
|
15 |
296 |
if (defined $cmd_filter) |
|
2920
|
2 |
13 |
unless ($_ =~ /$cmd_filter/) |
|
2930
|
10 |
3 |
if ($_ =~ /$rc->{'pattern'}/i) |
|
2944
|
0 |
10 |
if $@ |
|
2946
|
7 |
3 |
unless ($rv) |
|
2958
|
0 |
302 |
unless (/^([A-Z]{3,4})\s?(.*)/i) |
|
2977
|
302 |
0 |
if $self->{'debug'} |
|
2980
|
0 |
61 |
unless ($self->{'authenticated'} or exists $no_authentication_commands{$cmd}) |
|
2988
|
25 |
277 |
if ($cmd eq 'QUIT') |
|
2995
|
0 |
277 |
unless (exists $self->{'command_table'}{$cmd}) |
|
3010
|
0 |
277 |
if $self->{'_xferlog'} |
|
3015
|
0 |
40 |
unless ($self->{'_test_mode'}) |
|
3032
|
2 |
5046 |
if ($Net::FTPServer::GOT_SIGURG) |
|
3038
|
0 |
5048 |
if ($Net::FTPServer::GOT_SIGCHLD) |
|
3044
|
0 |
5048 |
if ($Net::FTPServer::GOT_SIGHUP) |
|
3050
|
0 |
5048 |
if ($Net::FTPServer::GOT_SIGTERM) |
|
3101
|
0 |
0 |
unless exec $0, @ARGV |
|
3122
|
0 |
0 |
defined $self->config($prop) ? : |
|
|
0 |
0 |
if (defined $self->config($prop) ? $self->config($prop) : 0) |
|
3136
|
0 |
0 |
if (my $log_file = $self->config('error log')) |
|
3138
|
0 |
0 |
if (not defined $self->{'_error_file'} or $log_file ne $self->{'_error_file'}) |
|
3141
|
0 |
0 |
unless open STDERR, ">>$log_file" |
|
3152
|
0 |
41 |
if (my $log_file = $self->config('xfer logging')) |
|
3154
|
0 |
0 |
if (not defined $self->{'_xfer_file'} or $log_file ne $self->{'_xfer_file'}) |
|
3156
|
0 |
0 |
if (my $io = $self->{'_xferlog'}) |
|
3162
|
0 |
0 |
if (defined $io) { } |
|
3177
|
0 |
41 |
if (my $log_file = $self->config('client logging')) |
|
3179
|
0 |
0 |
if (not defined $self->{'_client_file'} or $log_file ne $self->{'_client_file'}) |
|
3181
|
0 |
0 |
if (my $io = $self->{'_client_log'}) |
|
3187
|
0 |
0 |
if (defined $io) { } |
|
3202
|
0 |
0 |
if $log_file =~ /\$/ |
|
3204
|
0 |
0 |
if $log_file =~ /\%/ |
|
3214
|
353 |
0 |
unless exists $self->{'_client_log'} |
|
3218
|
0 |
0 |
$self->{'authenticated'} ? : |
|
3233
|
0 |
0 |
if (defined $self->{'_pidfile'}) |
|
3239
|
0 |
0 |
if ($pidfile =~ m[^([/\w\-\.]+)$]) { } |
|
3242
|
0 |
0 |
unless open PID, ">$self->{'_pidfile'}" |
|
3264
|
120 |
0 |
if (exists $INC{'BSD/Resource.pm'} and exists &get_rlimits()->{$name}) { } |
|
|
0 |
0 |
elsif (not $ENV{'NET_FTPSERVER_NO_BSD_RESOURCE_WARNING'}) { } |
|
3267
|
0 |
120 |
unless &setrlimit(&{$BSD::Resource::{$name};}, $value, $value) |
|
3294
|
82 |
246 |
if -x "$_/$prog" |
|
3330
|
0 |
41 |
if ($show_version) |
|
3337
|
0 |
41 |
if ($help) |
|
3381
|
2 |
39 |
if ($port) |
|
3385
|
0 |
41 |
if ($s_option) |
|
3389
|
0 |
41 |
if ($S_option) |
|
3394
|
0 |
41 |
if ($pidfile) |
|
3407
|
41 |
0 |
if (defined $debug) { } |
|
|
0 |
0 |
elsif (defined $self->config('debug')) { } |
|
3421
|
0 |
0 |
unless defined $pid |
|
3424
|
0 |
0 |
if $pid > 0 |
|
3452
|
0 |
0 |
if (exists $ENV{'BIND'} and $ENV{'BIND'} =~ /^(\d+)$/) { } |
|
3457
|
0 |
0 |
unless $self->{'_ctrl_sock'}->fdopen($bind_fd, 'w') |
|
3467
|
0 |
0 |
defined $self->config('port') ? : |
|
3476
|
0 |
0 |
if (defined $self->config('listen queue')) { } |
|
3483
|
0 |
0 |
if (defined $self->config('local address')) |
|
3490
|
0 |
0 |
unless $self->{'_ctrl_sock'} = 'IO::Socket::INET'->new(@args) |
|
3495
|
0 |
0 |
if (defined $self->config('tcp keepalive')) |
|
3497
|
0 |
0 |
unless $self->{'_ctrl_sock'}->sockopt(9, 1) |
|
3513
|
0 |
0 |
unless ($self->{'_ctrl_sock'}->opened) |
|
3541
|
0 |
0 |
if (@ready > 0) |
|
3544
|
0 |
0 |
unless defined $sock |
|
3551
|
0 |
0 |
if ($self->concurrent_connections >= $self->{'_max_clients'}) |
|
3564
|
0 |
0 |
if (defined $pid) { } |
|
3566
|
0 |
0 |
if ($pid == 0) |
|
3569
|
0 |
0 |
if $self->{'debug'} |
|
3621
|
0 |
41 |
if (exists $self->{'_children'}) { } |
|
3623
|
0 |
0 |
if (ref $self->{'_children'}) { } |
|
3651
|
0 |
47 |
unless ($config) |
|
3668
|
1 |
37 |
if /^\s*\#/ |
|
3669
|
0 |
37 |
if /^\s*$/ |
|
3683
|
3 |
34 |
if (/^\s*\s*$/i) |
|
3685
|
0 |
3 |
if ($sitename) |
|
3695
|
1 |
33 |
if (/^\s*\s*$/i) |
|
3697
|
0 |
1 |
if ($sitename) |
|
3711
|
1 |
32 |
if (/^\s*\s*$/i) |
|
3713
|
0 |
1 |
if ($sitename) |
|
3722
|
1 |
31 |
if (m[^\s*\s*$]i) |
|
3724
|
0 |
1 |
unless ($sitename) |
|
3734
|
1 |
30 |
if (/^\s*\s*$/i) |
|
3736
|
0 |
1 |
if ($sitename) |
|
3747
|
1 |
4 |
if m[^\s*\s*$]i |
|
3751
|
0 |
1 |
unless ($_) |
|
3769
|
0 |
1 |
if ($@) |
|
3780
|
1 |
1 |
if (ref $value) { } |
|
3798
|
0 |
1 |
if (ref $value) { } |
|
3817
|
0 |
30 |
if (m[^\s*\s*$]i) |
|
3823
|
0 |
30 |
unless (/^(.*?):(.*)$/) |
|
3863
|
0 |
75 |
if ($key eq 'ip') |
|
3865
|
0 |
0 |
unless ($sitename) |
|
3875
|
2 |
73 |
if $sitename |
|
3880
|
65 |
10 |
if $splat or not exists $self->{'_config'}{$key} |
|
3955
|
0 |
466 |
unless $code =~ /^[1-5][0-5][0-9]$/ |
|
3958
|
0 |
466 |
unless @_ > 0 |
|
3961
|
459 |
7 |
if (@_ == 1) { } |
|
3974
|
466 |
0 |
if $self->{'debug'} |
|
3991
|
0 |
1015 |
if $self->{'_enable_syslog'} |
|
4012
|
2 |
1967 |
if ($self->{'sitename'} and exists $self->{'_config'}{"$self->{'sitename'}:$key"}) |
|
4015
|
0 |
2 |
if (wantarray) { } |
|
4019
|
0 |
2 |
if (@{$self->{'_config'}{"$self->{'sitename'}:$key"};} > 1) |
|
4033
|
79 |
1888 |
if (exists $self->{'_config'}{$key}) |
|
4035
|
5 |
74 |
if (wantarray) { } |
|
4039
|
0 |
74 |
if (@{$self->{'_config'}{$key};} > 1) |
|
4053
|
105 |
1783 |
if (wantarray) { } |
|
4071
|
0 |
0 |
if (exists $self->{'_config_ip_host'}{$ip_addr}) |
|
4135
|
0 |
0 |
unless open AFE_SOCK, '>&' . fileno($sock) |
|
4141
|
0 |
0 |
if ($@) |
|
4143
|
0 |
0 |
if ($@ =~ /^open2:/) |
|
4209
|
0 |
0 |
if ($self->_eval_rule('retrieve rule', $fileh->pathname, $fileh->filename, $fileh->dirname)) |
|
4224
|
0 |
0 |
unless ($memb) |
|
4250
|
0 |
0 |
defined $self->config('archive zip temporaries') ? : |
|
4257
|
0 |
0 |
if ($tmpdir) |
|
4262
|
0 |
0 |
if ($file) |
|
4265
|
0 |
0 |
unless $zip->writeToFileHandle($file, 1) == &Archive::Zip::AZ_OK |
|
4271
|
0 |
0 |
unless ($file) |
|
4274
|
0 |
0 |
unless $zip->writeToFileHandle($file, 1) == &Archive::Zip::AZ_OK |
|
4320
|
4 |
0 |
if (exists $functions->{'d'}) |
|
4326
|
4 |
0 |
if ($recurse) |
|
4336
|
3 |
2 |
if ($mode eq 'd') { } |
|
|
2 |
0 |
elsif (exists $functions->{$mode}) { } |
|
4356
|
0 |
0 |
if ($rest eq '') |
|
4358
|
0 |
0 |
if ($self->{'sitename'}) { } |
|
4367
|
0 |
0 |
if ($self->{'authenticated'}) |
|
4374
|
0 |
0 |
if ($self->{'sitename'} and $self->{'sitename'} ne $rest) |
|
4381
|
0 |
0 |
unless ($rest =~ /^[-a-z0-9.]+$/i) |
|
4401
|
0 |
27 |
if ($self->{'authenticated'}) |
|
4411
|
8 |
19 |
if ($rest eq 'ftp' or $rest eq 'anonymous') { } |
|
4413
|
0 |
8 |
unless ($self->config('allow anonymous')) |
|
4427
|
8 |
19 |
if ($self->{'user_is_anonymous'}) { } |
|
4444
|
0 |
27 |
if ($self->{'authenticated'}) |
|
4451
|
0 |
27 |
unless ($self->{'user'}) |
|
4460
|
8 |
19 |
if ($self->{'user_is_anonymous'}) |
|
4469
|
0 |
8 |
$self->{'peerhostname'} ? : |
|
4471
|
2 |
6 |
if $rest =~ /\@$/ |
|
4473
|
6 |
2 |
if ($cktype ne 'none') |
|
4477
|
2 |
4 |
if ($cktype eq 'rfc822') { } |
|
|
2 |
2 |
elsif ($cktype eq 'nobrowser') { } |
|
|
2 |
0 |
elsif ($cktype eq 'trivial') { } |
|
4495
|
3 |
3 |
unless ($valid) |
|
4505
|
3 |
3 |
if ($enforce and not $valid) |
|
4518
|
1 |
23 |
if ($fail_code < 0) |
|
4521
|
1 |
0 |
unless $fail_code == -2 |
|
4526
|
0 |
1 |
if ($self->{'loginattempts'} >= ($self->config('max login attempts') || 3)) |
|
4544
|
0 |
23 |
unless ($self->_eval_rule('user access control rule')) |
|
4560
|
5 |
18 |
if ($self->{'user_is_anonymous'}) { } |
|
4562
|
0 |
18 |
if (defined $self->config('home directory')) { } |
|
4585
|
21 |
2 |
if ($welcome_type eq 'normal') { } |
|
|
1 |
1 |
elsif ($welcome_type eq 'text') { } |
|
|
1 |
0 |
elsif ($welcome_type eq 'file') { } |
|
4587
|
16 |
5 |
if (not $self->{'user_is_anonymous'}) { } |
|
4602
|
0 |
1 |
unless my $welcome_text = $self->config('welcome text') |
|
4613
|
0 |
1 |
unless my $welcome_file = $self->config('welcome file') |
|
4618
|
1 |
0 |
if (my $io = 'IO::File'->new($welcome_file, 'r')) { } |
|
4641
|
0 |
23 |
defined $self->config('time zone') ? : |
|
4673
|
23 |
0 |
if ($new_cwd = $self->_chdir($self->{'cwd'}, $self->{'home_directory'})) { } |
|
4701
|
0 |
0 |
if ($class =~ /^(\w+)\s+\{(.*)\}\s*$/) { } |
|
|
0 |
0 |
elsif ($class =~ /^(\w*)\s+(.*)/) { } |
|
4709
|
0 |
0 |
if $@ |
|
4711
|
0 |
0 |
if $rv |
|
4721
|
0 |
0 |
if $_ eq $username |
|
4731
|
5 |
18 |
if $user_is_anonymous |
|
4745
|
0 |
0 |
$self->{'peerhostname'} ? : |
|
4811
|
0 |
0 |
if $_ eq $username |
|
4823
|
0 |
0 |
if (my $ftpdata = $self->{'ftp_data_port'}) |
|
4825
|
0 |
0 |
if ($ftpdata >= 1024) |
|
4854
|
6 |
1 |
if ($new_cwd = $self->_chdir($self->{'cwd'}, $rest)) |
|
4857
|
0 |
6 |
unless ($self->_eval_rule('chdir rule', $new_cwd->pathname, $new_cwd->filename, $new_cwd->pathname)) |
|
4871
|
1 |
0 |
unless ($rest =~ m[/]) |
|
4879
|
0 |
0 |
if ($name eq $rest and $new_cwd = $self->_chdir($self->{'cwd'}, $dir)) |
|
4890
|
0 |
1 |
if ($self->config('cdpath')) |
|
4896
|
0 |
0 |
if ($new_cwd = $self->_chdir($self->{'cwd'}, $_) and $new_cwd = $self->_chdir($new_cwd, $rest)) |
|
4916
|
2 |
0 |
if (my $new_cwd = $self->_chdir($self->{'cwd'}, '..')) { } |
|
4919
|
0 |
2 |
unless ($self->_eval_rule('chdir rule', $new_cwd->pathname, $new_cwd->filename, $new_cwd->pathname)) |
|
4947
|
0 |
8 |
if ($filename and not exists $self->{'_chdir_message_cache'}{$self->{'cwd'}->pathname} and $file = $self->{'cwd'}->open($filename, 'r')) { } |
|
5017
|
0 |
6 |
unless ($rest =~ /^\s*(\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3})/) |
|
5031
|
0 |
6 |
unless ($a1 > 0 and $a1 < 224 and $a2 >= 0 and $a2 < 256 and $a3 >= 0 and $a3 < 256 and $a4 >= 0 and $a4 < 256) |
|
5044
|
6 |
0 |
unless ($self->config('allow proxy ftp')) |
|
5046
|
0 |
6 |
if (not $self->{'_test_mode'} and $hostaddrstring ne $self->{'peeraddrstring'}) |
|
5058
|
0 |
6 |
unless ($hostport > 0 and $hostport < 65536) |
|
5064
|
6 |
0 |
unless ($self->config('allow connect low port')) |
|
5066
|
0 |
6 |
if ($hostport < 1024) |
|
5096
|
12 |
0 |
unless defined $port_range |
|
5100
|
0 |
12 |
if ($port_range eq '0') { } |
|
5135
|
12 |
0 |
if ($n < $_->[2]) |
|
5154
|
0 |
12 |
unless ($sock) |
|
5171
|
12 |
0 |
if ($self->{'_test_mode'}) { } |
|
5176
|
0 |
0 |
unless $sockaddrstring =~ /^([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)$/ |
|
5197
|
17 |
3 |
if ($rest =~ /^([AI])$/i) { } |
|
|
2 |
1 |
elsif ($rest =~ /^([AI])\sN$/i) { } |
|
|
1 |
0 |
elsif ($rest =~ /^L\s8$/i) { } |
|
5228
|
1 |
0 |
if ($rest =~ /^F$/i) { } |
|
5248
|
1 |
0 |
if ($rest =~ /^S$/i) { } |
|
5271
|
1 |
51 |
unless ($fileh) |
|
5279
|
0 |
1 |
unless ($self->{'archive_mode'}) |
|
5291
|
0 |
2 |
if (lc substr($rest, -length($_)) eq lc $_) |
|
5299
|
0 |
0 |
if ($fileh) |
|
5303
|
0 |
0 |
if ($mode eq 'f') |
|
5316
|
1 |
0 |
if (lc substr($rest, -length($_)) eq lc $_) |
|
5323
|
1 |
0 |
if ($fileh) |
|
5327
|
1 |
0 |
if ($mode eq 'd') |
|
5343
|
0 |
52 |
unless ($self->_eval_rule('retrieve rule', $fileh->pathname, $filename, $dirh->pathname)) |
|
5352
|
51 |
1 |
unless ($generator) |
|
5355
|
0 |
51 |
unless ($mode eq 'f') |
|
5364
|
51 |
1 |
!$generator ? : |
|
5366
|
0 |
52 |
unless ($file) |
|
5374
|
10 |
42 |
$self->{'type'} eq 'A' ? : |
|
5380
|
0 |
52 |
unless ($sock) |
|
5392
|
0 |
0 |
unless ($filter) |
|
5405
|
0 |
52 |
if $self->{'_xferlog'} |
|
5410
|
10 |
42 |
if ($self->{'type'} eq 'A') { } |
|
5415
|
4 |
38 |
if ($self->{'_restart'}) |
|
5430
|
0 |
73 |
if $self->{'_xferlog'} |
|
5435
|
0 |
73 |
if ($transfer_hook = $self->transfer_hook('r', $file, $sock, \$buffer)) |
|
5452
|
0 |
73 |
unless (defined $w) |
|
5472
|
1 |
72 |
if ($self->{'_urgent'}) |
|
5483
|
0 |
41 |
unless (defined $r) |
|
5500
|
1 |
9 |
if ($self->{'_restart'}) |
|
5512
|
0 |
4664 |
if $self->{'_xferlog'} |
|
5520
|
0 |
4664 |
if ($transfer_hook = $self->transfer_hook('r', $file, $sock, \$_)) |
|
5535
|
1 |
4663 |
if ($self->{'_urgent'}) |
|
5547
|
0 |
50 |
unless (close $sock and $file->close) |
|
5557
|
0 |
50 |
if $self->{'_xferlog'} |
|
5567
|
0 |
0 |
if (exists $_->{'pid'}) |
|
5618
|
0 |
6 |
unless ($rest =~ /^([1-9][0-9]*|0)$/) |
|
5636
|
0 |
1 |
unless ($fileh) |
|
5643
|
0 |
1 |
unless ($self->_eval_rule('rename rule', $dirh->pathname . $filename, $filename, $dirh->pathname)) |
|
5664
|
0 |
1 |
unless ($self->{'_rename_fileh'}) |
|
5673
|
0 |
1 |
unless ($dirh) |
|
5680
|
0 |
1 |
unless ($self->_eval_rule('rename rule', $dirh->pathname . $filename, $filename, $dirh->pathname)) |
|
5689
|
0 |
0 |
if (defined $fileh and defined $self->config('allow rename to overwrite') and not $self->config('allow rename to overwrite')) |
|
5698
|
0 |
1 |
if ($self->{'_rename_fileh'}->move($dirh, $filename) < 0) |
|
5727
|
0 |
9 |
unless ($fileh) |
|
5734
|
0 |
9 |
unless ($self->_eval_rule('delete rule', $fileh->pathname, $filename, $dirh->pathname)) |
|
5742
|
0 |
9 |
if ($fileh->delete < 0) |
|
5759
|
0 |
1 |
unless ($fileh) |
|
5766
|
0 |
1 |
unless ($self->_eval_rule('delete rule', $fileh->pathname, $filename, $dirh->pathname)) |
|
5774
|
0 |
1 |
if ($fileh->delete < 0) |
|
5791
|
0 |
11 |
unless ($dirh) |
|
5797
|
0 |
11 |
if ($fileh) |
|
5804
|
0 |
11 |
unless ($self->_eval_rule('mkdir rule', $dirh->pathname . $filename, $filename, $dirh->pathname)) |
|
5813
|
0 |
11 |
if ($dirh->mkdir($filename) < 0) |
|
5830
|
4 |
1 |
unless $pathname eq '/' |
|
5850
|
0 |
3 |
unless ($dirh) |
|
5857
|
0 |
3 |
unless ($self->_eval_rule('list rule', undef, undef, $dirh->pathname)) |
|
5869
|
0 |
3 |
unless ($sock) |
|
5876
|
0 |
3 |
if $self->{'_xferlog'} |
|
5881
|
0 |
3 |
($fileh || $wildcard) && $rest =~ m[(.*/).*] ? : |
|
5885
|
0 |
3 |
if ($fileh) { } |
|
5891
|
1 |
2 |
unless ($wildcard) |
|
5911
|
0 |
3 |
unless ($sock->close) |
|
5917
|
0 |
3 |
if $self->{'_xferlog'} |
|
5939
|
0 |
3 |
if $rest =~ /^\-\w*l/i |
|
5945
|
0 |
3 |
unless ($dirh) |
|
5952
|
0 |
3 |
unless ($self->_eval_rule('list rule', undef, undef, $dirh->pathname)) |
|
5964
|
0 |
3 |
unless ($sock) |
|
5971
|
0 |
3 |
if $self->{'_xferlog'} |
|
5976
|
0 |
3 |
($fileh || $wildcard) && $rest =~ m[(.*/).*] ? : |
|
5980
|
0 |
3 |
if ($fileh) { } |
|
5998
|
0 |
3 |
unless ($sock->close) |
|
6004
|
0 |
3 |
if $self->{'_xferlog'} |
|
6019
|
0 |
5 |
unless ($rest =~ /^(\S{3,})\s?(.*)/i) |
|
6028
|
0 |
5 |
unless (exists $self->{'site_command_table'}{$cmd}) |
|
6044
|
0 |
0 |
unless ($self->config('allow site exec command')) |
|
6051
|
0 |
0 |
if ($self->{'user_is_anonymous'}) |
|
6058
|
0 |
0 |
if $rest =~ /(.*)/ |
|
6061
|
0 |
0 |
unless (open OUTPUT, "$rest |") |
|
6089
|
0 |
4 |
defined $self->config('allow site version command') ? : |
|
6093
|
0 |
4 |
unless ($enabled) |
|
6112
|
0 |
0 |
if ($rest eq '') |
|
6125
|
0 |
0 |
if ($name eq $rest) |
|
6145
|
0 |
0 |
unless (defined $cdpath) |
|
6164
|
0 |
0 |
if ($rest eq 'MD5') { } |
|
|
0 |
0 |
elsif ($rest eq '') { } |
|
6185
|
0 |
0 |
unless (exists $INC{'Digest/MD5.pm'}) |
|
6193
|
0 |
0 |
unless ($fileh) |
|
6201
|
0 |
0 |
unless ($mode eq 'f') |
|
6209
|
0 |
0 |
unless ($file) |
|
6227
|
0 |
1 |
if ($rest eq '') |
|
6237
|
0 |
1 |
!$self->{'_test_mode'} ? : |
|
6240
|
0 |
1 |
unless ($rest =~ /^[1-9][0-9]*$/ and $rest >= $min_timeout and $rest <= $max_timeout) |
|
6258
|
0 |
0 |
unless (exists $INC{'File/Sync.pm'}) |
|
6275
|
0 |
0 |
if (defined $self->config('enable archive mode') and not $self->config('enable archive mode')) |
|
6282
|
0 |
0 |
unless ($rest) |
|
6286
|
0 |
0 |
$self->{'archive_mode'} ? : |
|
6290
|
0 |
0 |
if (uc $rest eq 'ON') |
|
6297
|
0 |
0 |
if (uc $rest eq 'OFF') |
|
6324
|
0 |
0 |
unless ($fileh) |
|
6334
|
0 |
0 |
if ($mode ne 'f') |
|
6340
|
0 |
0 |
if ($self->{'type'} eq 'A') |
|
6343
|
0 |
0 |
if (my $file = $fileh->open('r')) |
|
6365
|
1 |
2 |
if ($rest eq '') { } |
|
6370
|
1 |
0 |
unless (defined $self->config('allow site version command') and not $self->config('allow site version command')) |
|
6383
|
0 |
1 |
if ($self->{'peeraddrstring'} and $self->{'peerport'}) |
|
6387
|
0 |
0 |
if $self->{'peerhostname'} |
|
6390
|
0 |
1 |
if ($self->{'user_is_anonymous'}) { } |
|
6409
|
1 |
1 |
unless ($dirh) |
|
6419
|
0 |
1 |
if ($fileh) { } |
|
6449
|
2 |
0 |
unless (defined $self->config('allow site version command') and not $self->config('allow site version command')) |
|
6456
|
1 |
1 |
if ($rest eq '') { } |
|
|
1 |
0 |
elsif (uc $rest eq 'SITE') { } |
|
6499
|
63 |
5 |
if $n < @_ |
|
6548
|
0 |
0 |
if ($rest ne '') |
|
6563
|
0 |
0 |
if ($self->{'features'}{$_}) { } |
|
6584
|
0 |
0 |
unless ($rest =~ /^([A-Z]{3,4})\s?(.*)/i) |
|
6593
|
0 |
0 |
unless (exists $self->{'options'}{$cmd}) |
|
6679
|
2 |
1 |
if ($rest eq '') |
|
6690
|
0 |
1 |
unless (length $rest <= 8 and $rest =~ /^[A-Z]{1,8}(-[A-Z]{1-8})*$/i) |
|
6720
|
0 |
0 |
unless ($fileh) |
|
6750
|
0 |
0 |
if ($rest ne '') |
|
6754
|
0 |
0 |
unless ($fileh) |
|
6762
|
0 |
0 |
unless ($self->_eval_rule('list rule', undef, undef, $fileh->pathname)) |
|
6793
|
0 |
0 |
unless ($dirh) |
|
6800
|
0 |
0 |
unless ($self->_eval_rule('list rule', undef, undef, $dirh->pathname)) |
|
6812
|
0 |
0 |
unless ($sock) |
|
6819
|
0 |
0 |
if $self->{'_xferlog'} |
|
6823
|
0 |
0 |
if ($fileh) { } |
|
6840
|
0 |
0 |
if $self->{'_xferlog'} |
|
6845
|
0 |
0 |
unless ($sock->close) |
|
6851
|
0 |
0 |
if $self->{'_xferlog'} |
|
6871
|
0 |
0 |
if ($_ ne '') |
|
6873
|
0 |
0 |
if ($self->_is_supported_mlst_fact($_)) |
|
6897
|
0 |
0 |
if $fact eq $supported_fact |
|
6910
|
0 |
0 |
if ($self->_is_enabled_fact($supported_fact)) { } |
|
6927
|
0 |
0 |
if $fact eq $enabled_fact |
|
6954
|
0 |
0 |
if ($statusref) { } |
|
6962
|
0 |
0 |
if $dirh |
|
6969
|
0 |
0 |
if ($_ eq 'TYPE') { } |
|
|
0 |
0 |
elsif ($_ eq 'SIZE') { } |
|
|
0 |
0 |
elsif ($_ eq 'MODIFY') { } |
|
|
0 |
0 |
elsif ($_ eq 'PERM') { } |
|
|
0 |
0 |
elsif ($_ eq 'UNIX.MODE') { } |
|
6971
|
0 |
0 |
if ($mode eq 'f') { } |
|
|
0 |
0 |
elsif ($mode eq 'd') { } |
|
6974
|
0 |
0 |
if ($filename eq '.') { } |
|
|
0 |
0 |
elsif ($filename eq '..') { } |
|
6996
|
0 |
0 |
if ($mode eq 'f') { } |
|
|
0 |
0 |
elsif ($mode eq 'd') { } |
|
6998
|
0 |
0 |
$perms & 256 ? : |
|
|
0 |
0 |
$perms & 128 ? : |
|
|
0 |
0 |
$perms & 128 ? : |
|
|
0 |
0 |
$dir_perms & 128 ? : |
|
|
0 |
0 |
$dir_perms & 128 ? : |
|
7007
|
0 |
0 |
$perms & 128 ? : |
|
|
0 |
0 |
$dir_perms & 128 ? : |
|
|
0 |
0 |
$perms & 64 ? : |
|
|
0 |
0 |
$perms & 320 ? : |
|
|
0 |
0 |
$dir_perms & 128 ? : |
|
|
0 |
0 |
$perms & 128 ? : |
|
7018
|
0 |
0 |
$perms & 256 ? : |
|
|
0 |
0 |
$perms & 128 ? : |
|
|
0 |
0 |
$dir_perms & 128 ? : |
|
|
0 |
0 |
$dir_perms & 128 ? : |
|
7027
|
0 |
0 |
$perms & 256 ? : |
|
|
0 |
0 |
$perms & 128 ? : |
|
|
0 |
0 |
$perms & 64 ? : |
|
|
0 |
0 |
$perms & 32 ? : |
|
|
0 |
0 |
$perms & 16 ? : |
|
|
0 |
0 |
$perms & 8 ? : |
|
|
0 |
0 |
$perms & 4 ? : |
|
|
0 |
0 |
$perms & 2 ? : |
|
|
0 |
0 |
$perms & 1 ? : |
|
7061
|
0 |
0 |
if $self->{'xfer'} |
|
7079
|
25 |
0 |
unless $self->{'xfer'} |
|
7090
|
0 |
0 |
unless $self->{'xfer'} |
|
7103
|
0 |
0 |
unless my $xfer = $self->{'xfer'} |
|
7104
|
0 |
0 |
unless $self->{'_xferlog'} |
|
7110
|
0 |
0 |
unless $xfer->{'bytes'} |
|
7125
|
0 |
0 |
$self->{'type'} eq 'A' ? : |
|
|
0 |
0 |
$self->{'user_is_anonymous'} ? : |
|
7144
|
0 |
213 |
defined $self->config($rulename) ? : |
|
7159
|
0 |
213 |
if $@ |
|
7174
|
24 |
8 |
if (substr($path, 0, 1) eq '/') |
|
7185
|
0 |
8 |
if ($_ eq '' or $_ eq '.') { } |
|
|
2 |
6 |
elsif ($_ eq '..') { } |
|
7197
|
1 |
5 |
unless $dirh and $dirh->isa('Net::FTPServer::DirHandle') |
|
7224
|
0 |
8 |
if (substr($path, 0, 1) eq '/') |
|
7241
|
1 |
5 |
if ($_ eq '' or $_ eq '.') { } |
|
|
0 |
5 |
elsif ($_ eq '..') { } |
|
7252
|
0 |
5 |
if (not $lastelement) { } |
|
7254
|
0 |
0 |
if (not $handle) { } |
|
|
0 |
0 |
elsif (not $handle->isa('Net::FTPServer::DirHandle')) { } |
|
7269
|
5 |
0 |
if (not $handle) { } |
|
|
0 |
0 |
elsif (not $handle->isa('Net::FTPServer::DirHandle')) { } |
|
7272
|
4 |
1 |
if (/\*/ or /\?/) { } |
|
7319
|
0 |
123 |
if (substr($path, 0, 1) eq '/') |
|
7323
|
0 |
0 |
if $path eq '' |
|
7331
|
0 |
123 |
unless (defined $filename and length $filename) |
|
7338
|
0 |
0 |
if ($_ eq '' or $_ eq '.') { } |
|
|
0 |
0 |
elsif ($_ eq '..') { } |
|
7348
|
0 |
0 |
if (not $handle) { } |
|
|
0 |
0 |
elsif (not $handle->isa('Net::FTPServer::DirHandle')) { } |
|
7364
|
0 |
123 |
$filename eq '..' ? : |
|
|
0 |
123 |
$filename eq '.' ? : |
|
7385
|
12 |
102 |
if (not $self->{'_passive'}) { } |
|
7391
|
0 |
12 |
if (my $source_port = $self->{'ftp_data_port'}) { } |
|
7399
|
0 |
0 |
unless $sock = 'IO::Socket::INET'->new('LocalAddr', $source_addr, 'LocalPort', $source_port, 'PeerAddr', $target_addr, 'PeerPort', $target_port, 'Proto', 'tcp', 'Type', 1, 'Reuse', 1) |
|
7408
|
0 |
0 |
if $sock |
|
7409
|
0 |
0 |
if $_ == 1 |
|
7411
|
0 |
0 |
unless $!{'EADDRINUSE'} |
|
7416
|
0 |
0 |
unless $sock |
|
7425
|
0 |
12 |
unless $sock = 'IO::Socket::INET'->new('LocalAddr', $self->{'sockaddrstring'}, 'PeerAddr', $self->{'_hostaddrstring'}, 'PeerPort', $self->{'_hostport'}, 'Proto', 'tcp', 'Type', 1, 'Reuse', 1) |
|
7434
|
0 |
102 |
unless $sock = $self->{'_passive_sock'}->accept |
|
7453
|
0 |
114 |
if (defined $self->config('tcp keepalive')) |
|
7455
|
0 |
0 |
unless $sock->sockopt(9, 1) |
|
7460
|
0 |
114 |
if (defined $self->config('tcp window')) |
|
7462
|
0 |
0 |
unless $sock->sockopt(7, $self->config('tcp window')) |
|
7464
|
0 |
0 |
unless $sock->sockopt(8, $self->config('tcp window')) |
|
7483
|
0 |
23 |
if $filename eq '' |
|
7488
|
21 |
2 |
if ($statusref) { } |
|
7498
|
23 |
0 |
if ($time > $mtime + 15552000 or $time < $mtime - 3600) { } |
|
7510
|
23 |
0 |
$perms & 256 ? : |
|
|
23 |
0 |
$perms & 128 ? : |
|
|
11 |
12 |
$perms & 64 ? : |
|
|
23 |
0 |
$perms & 32 ? : |
|
|
0 |
23 |
$perms & 16 ? : |
|
|
11 |
12 |
$perms & 8 ? : |
|
|
23 |
0 |
$perms & 4 ? : |
|
|
0 |
23 |
$perms & 2 ? : |
|
|
11 |
12 |
$perms & 1 ? : |
|
7522
|
12 |
11 |
$mode eq 'f' ? : |
|
7526
|
0 |
23 |
if ($mode eq 'l') |
|
7529
|
0 |
0 |
unless defined $link |
|
7531
|
0 |
23 |
defined $link ? : |
|
7545
|
0 |
23 |
if $self->{'_xferlog'} |
|
7562
|
9 |
47 |
if ($unique) { } |
|
7567
|
0 |
47 |
unless ($dirh) |
|
7587
|
0 |
56 |
unless ($self->_eval_rule('store rule', $dirh->pathname . $filename, $filename, $dirh->pathname)) |
|
7596
|
0 |
1 |
if (not $append and defined $fileh and defined $self->config('allow store to overwrite') and not $self->config('allow store to overwrite')) |
|
7606
|
1 |
55 |
$append ? : |
|
7608
|
0 |
56 |
unless ($file) |
|
7614
|
9 |
47 |
if ($unique) { } |
|
7618
|
16 |
31 |
$self->{'type'} eq 'A' ? : |
|
7630
|
0 |
56 |
unless ($sock) |
|
7637
|
0 |
56 |
if $self->{'_xferlog'} |
|
7640
|
16 |
40 |
if ($self->{'type'} eq 'A') { } |
|
7649
|
0 |
3603 |
if $self->{'_xferlog'} |
|
7654
|
0 |
3603 |
if ($transfer_hook = $self->transfer_hook('w', $file, $sock, \$buffer)) |
|
7669
|
0 |
3603 |
unless (defined $w) |
|
7686
|
0 |
40 |
unless (defined $r) |
|
7706
|
0 |
54622 |
if $self->{'_xferlog'} |
|
7714
|
0 |
54622 |
if ($transfer_hook = $self->transfer_hook('w', $file, $sock, \$_)) |
|
7726
|
0 |
54622 |
unless (defined $w) |
|
7740
|
0 |
56 |
unless ($sock->close and $file->close) |
|
7747
|
0 |
56 |
if $self->{'_xferlog'} |
|
8107
|
0 |
0 |
unless exists $INC{'Archive/Zip.pm'} |
|
8121
|
0 |
0 |
$self->compressedSize > 0 ? : |
|
8126
|
0 |
0 |
if $time > 0 |
|
8141
|
0 |
0 |
if $self->{'fh'} |
|
8143
|
0 |
0 |
unless $self->{'fh'} = $self->{'fileh'}->open('r') |
|
8154
|
0 |
0 |
if $status != &Archive::Zip::AZ_OK |
|
8156
|
0 |
0 |
unless $self->fh |
|
8160
|
0 |
0 |
unless $self->endRead == &Archive::Zip::AZ_OK |
|
8173
|
0 |
0 |
unless $chunksize |
|
8175
|
0 |
0 |
unless my $bytesread = $self->fh->sysread($$dataref, $chunksize) |
|
8185
|
0 |
0 |
if ($self->{'fh'}) |
|
8188
|
0 |
0 |
unless $self->{'fh'}->close |