aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Holme <steve_holme@hotmail.com>2013-09-14 20:52:29 +0100
committerSteve Holme <steve_holme@hotmail.com>2013-09-14 20:52:29 +0100
commit187ac6937449491c1313acc2dc0d08db500a07b6 (patch)
treecbd4707136af2a459972dace4a9f4aa3cb82f132
parent84ad1569e5fc939eb8bdac2baf4836806c519579 (diff)
ftpserver.pl: Moved IMAP LOGIN handler into own function
-rwxr-xr-xtests/ftpserver.pl30
1 files changed, 28 insertions, 2 deletions
diff --git a/tests/ftpserver.pl b/tests/ftpserver.pl
index 4f67207cd..d26a76cf1 100755
--- a/tests/ftpserver.pl
+++ b/tests/ftpserver.pl
@@ -170,6 +170,12 @@ 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.
# For now, program will also terminate from within this handler.
@@ -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 {