tests: Added POP3 APOP authentication test
authorSteve Holme <steve_holme@hotmail.com>
Sat, 19 Oct 2013 11:20:00 +0000 (12:20 +0100)
committerSteve Holme <steve_holme@hotmail.com>
Sat, 19 Oct 2013 11:20:00 +0000 (12:20 +0100)
tests/data/Makefile.am
tests/data/test864 [new file with mode: 0644]
tests/ftpserver.pl

index 48583176048682a67ea6e40cfa0d5aeba1aaa1ad..4c9b4379dde33a92190a403b6a7cf10fa8d26f3d 100644 (file)
@@ -67,7 +67,7 @@ test800 test801 test802 test803 test804 test805 test806 test807 test808 \
 test809 test810 test811 test812 test813 test814 \
 \
 test850 test851 test852 test853 test854 test855 test856 test857 test858 \
-test859 test860 test861 test862 test863 \
+test859 test860 test861 test862 test863 test864 \
 \
 test900 test901 test902 test903 test904 test905 test906 test907 test908 \
 test909 test910 test911 test912 test913 test914 test915 test916 test917 \
diff --git a/tests/data/test864 b/tests/data/test864
new file mode 100644 (file)
index 0000000..c4cb61f
--- /dev/null
@@ -0,0 +1,53 @@
+<testcase>
+<info>
+<keywords>
+POP3
+POP3 APOP
+</keywords>
+</info>
+
+#
+# Server-side
+<reply>
+<servercmd>
+CAPA APOP
+</servercmd>
+<data>
+From: me@somewhere\r
+To: fake@nowhere\r
+\r
+body\r
+\r
+--\r
+  yours sincerely\r
+</data>
+</reply>
+
+#
+# Client-side
+<client>
+<server>
+pop3
+</server>
+<features>
+crypto
+</features>
+ <name>
+POP3 APOP authentication
+ </name>
+ <command>
+pop3://%HOSTIP:%POP3PORT/864 -u user:secret
+</command>
+</client>
+
+#
+# Verify data after the test has been "shot"
+<verify>
+<protocol>
+CAPA\r
+APOP user 7501b4cdc224d469940e65e7b5e4d6eb\r
+RETR 864\r
+QUIT\r
+</protocol>
+</verify>
+</testcase>
index 7efc8be04aa2afee1fc2a535ef21f018213e17de..d0986ea7733d072693b6c46b7cc8f1a13a63d75d 100755 (executable)
@@ -1640,7 +1640,10 @@ sub APOP_pop3 {
     my ($args) = @_;
     my ($user, $secret) = split(/ /, $args, 2);
 
-    if (($user eq "") || ($secret eq "")) {
+    if (!grep /^APOP$/, @capabilities) {
+        sendcontrol "-ERR Unrecognized command\r\n";
+    }
+    elsif (($user eq "") || ($secret eq "")) {
         sendcontrol "-ERR Protocol error\r\n";
     }
     else {