From 187ac6937449491c1313acc2dc0d08db500a07b6 Mon Sep 17 00:00:00 2001 From: Steve Holme Date: Sat, 14 Sep 2013 20:52:29 +0100 Subject: ftpserver.pl: Moved IMAP LOGIN handler into own function --- tests/ftpserver.pl | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) (limited to 'tests/ftpserver.pl') diff --git a/tests/ftpserver.pl b/tests/ftpserver.pl index 4f67207cd..d26a76cf1 100755 --- a/tests/ftpserver.pl +++ b/tests/ftpserver.pl @@ -169,6 +169,12 @@ my $datasockf_conn = 'no'; # ['no','yes'] my $got_exit_signal = 0; # set if program should finish execution ASAP my $exit_signal; # first signal handled in exit_signal_handler +#********************************************************************** +# Mail related definitions +# +my $TEXT_USERNAME = "user"; +my $TEXT_PASSWORD = "secret"; + #********************************************************************** # exit_signal_handler will be triggered to indicate that the program # should finish its execution in a controlled way as soon as possible. @@ -594,6 +600,7 @@ sub protocolsetup { 'FETCH' => \&FETCH_imap, 'LIST' => \&LIST_imap, 'LSUB' => \&LSUB_imap, + 'LOGIN' => \&LOGIN_imap, 'LOGOUT' => \&LOGOUT_imap, 'NOOP' => \&NOOP_imap, 'RENAME' => \&RENAME_imap, @@ -604,7 +611,6 @@ sub protocolsetup { 'UID' => \&UID_imap, ); %displaytext = ( - 'LOGIN' => ' OK LOGIN completed', 'welcome' => join("", ' _ _ ____ _ '."\r\n", ' ___| | | | _ \| | '."\r\n", @@ -817,6 +823,26 @@ sub CAPABILITY_imap { return 0; } +sub LOGIN_imap { + my ($args) = @_; + my ($user, $password) = split(/ /, $args, 2); + fix_imap_params($user, $password); + + logmsg "LOGIN_imap got $args\n"; + + if ($user eq "") { + sendcontrol "$cmdid BAD Command Argument\r\n"; + } + elsif (($user ne $TEXT_USERNAME) && ($password ne $TEXT_PASSWORD)) { + sendcontrol "$cmdid NO LOGIN failed\r\n"; + } + else { + sendcontrol "$cmdid OK LOGIN completed\r\n"; + } + + return 0; +} + sub SELECT_imap { my ($testno) = @_; fix_imap_params($testno); @@ -1463,7 +1489,7 @@ sub PASS_pop3 { logmsg "PASS_pop3 got $password\n"; - if (($username ne "user") && ($password ne "secret")) { + if (($username ne $TEXT_USERNAME) && ($password ne $TEXT_PASSWORD)) { sendcontrol "-ERR Login failure\r\n"; } else { -- cgit v1.2.3