diff options
Diffstat (limited to 'tests')
-rwxr-xr-x | tests/ftpserver.pl | 33 |
1 files changed, 19 insertions, 14 deletions
diff --git a/tests/ftpserver.pl b/tests/ftpserver.pl index d5ae6bbf6..2732b1696 100755 --- a/tests/ftpserver.pl +++ b/tests/ftpserver.pl @@ -1034,27 +1034,32 @@ sub STATUS_imap { sub SEARCH_imap { my ($what) = @_; - my $testno = $selected; fix_imap_params($what); - logmsg "SEARCH_imap got test $testno\n"; + if ($selected eq "") { + sendcontrol "$cmdid BAD Command received in Invalid state\r\n"; + else { + my $testno = $selected; - $testno =~ s/^([^0-9]*)//; - my $testpart = ""; - if ($testno > 10000) { - $testpart = $testno % 10000; - $testno = int($testno / 10000); - } + logmsg "SEARCH_imap got test $testno\n"; - loadtest("$srcdir/data/test$testno"); + $testno =~ s/^([^0-9]*)//; + my $testpart = ""; + if ($testno > 10000) { + $testpart = $testno % 10000; + $testno = int($testno / 10000); + } - my @data = getpart("reply", "data$testpart"); + loadtest("$srcdir/data/test$testno"); - for my $d (@data) { - sendcontrol $d; - } + my @data = getpart("reply", "data$testpart"); - sendcontrol "$cmdid OK SEARCH completed\r\n"; + for my $d (@data) { + sendcontrol $d; + } + + sendcontrol "$cmdid OK SEARCH completed\r\n"; + } return 0; } |