mirror of
https://github.com/curl/curl.git
synced 2025-03-19 15:40:42 +08:00
Active mode FTP test cases with server not establishing data connection
591 -> FTP multi PORT and 425 on upload 592 -> FTP multi PORT and 421 on upload 593 -> FTP multi PORT upload, no data conn and no transient neg. reply 594 -> FTP multi PORT upload, no data conn and no positive prelim. reply 1206 -> FTP PORT and 425 on download 1207 -> FTP PORT and 421 on download 1208 -> FTP PORT download, no data conn and no transient negative reply 1209 -> FTP PORT download, no data conn and no positive preliminary reply
This commit is contained in:
parent
fd765c627f
commit
082e8a3b03
@ -3,4 +3,11 @@
|
||||
# per line.
|
||||
# Lines starting with '#' letters are treated as comments.
|
||||
811
|
||||
589
|
||||
591
|
||||
592
|
||||
593
|
||||
594
|
||||
1206
|
||||
1207
|
||||
1208
|
||||
1209
|
||||
|
@ -47,8 +47,8 @@ test542 test543 test544 test545 test546 test547 test548 test549 test550 \
|
||||
test551 test552 test553 test554 test555 test556 test557 test560 test561 \
|
||||
test562 test563 test564 test565 test566 test567 test568 test569 test570 \
|
||||
test571 test572 test573 test574 test575 test576 test578 test579 test580 \
|
||||
test581 test582 test583 test584 test585 test586 test587 test588 test589 \
|
||||
test590 \
|
||||
test581 test582 test583 test584 test585 test586 test587 test588 test590 \
|
||||
test591 test592 test593 test594 \
|
||||
test600 test601 test602 test603 test604 \
|
||||
test605 test606 test607 test608 test609 test610 test611 test612 test613 \
|
||||
test614 test615 test616 test617 test618 test619 test620 test621 test622 \
|
||||
@ -75,7 +75,8 @@ test1102 test1103 test1104 test1105 test1106 test1107 test1108 test1109 \
|
||||
test1110 test1111 test1112 test1113 test1114 test1115 test1116 test1117 \
|
||||
test1118 test1119 test1120 test1121 test1122 test1123 test1124 test1125 \
|
||||
test1126 test1127 test1128 test1129 test1130 test1131 \
|
||||
test1200 test1201 test1202 test1203 test1204 test1205 \
|
||||
test1200 test1201 test1202 test1203 test1204 test1205 test1206 test1207 \
|
||||
test1208 test1209 \
|
||||
test1300 test1301 test1302 test1303 test1304 test1305 \
|
||||
test1306 test1307 test1308 test1309 test1310 test1311 test1312 test1313 \
|
||||
test1314 \
|
||||
|
53
tests/data/test1206
Normal file
53
tests/data/test1206
Normal file
@ -0,0 +1,53 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
FTP
|
||||
PORT
|
||||
RETR
|
||||
NODATACONN425
|
||||
</keywords>
|
||||
</info>
|
||||
# Server-side
|
||||
<reply>
|
||||
<data nocheck="yes">
|
||||
some bytes
|
||||
</data>
|
||||
<servercmd>
|
||||
NODATACONN425
|
||||
</servercmd>
|
||||
</reply>
|
||||
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
ftp
|
||||
</server>
|
||||
<name>
|
||||
FTP PORT and 425 on download
|
||||
</name>
|
||||
<command>
|
||||
--max-time %FTPTIME2 ftp://%HOSTIP:%FTPPORT/1206 -P -
|
||||
</command>
|
||||
|
||||
</client>
|
||||
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<strippart>
|
||||
s/^EPRT \|1\|(.*)/EPRT \|1\|/
|
||||
</strippart>
|
||||
<protocol>
|
||||
USER anonymous
|
||||
PASS ftp@example.com
|
||||
PWD
|
||||
EPRT |1|
|
||||
TYPE I
|
||||
SIZE 1206
|
||||
RETR 1206
|
||||
QUIT
|
||||
</protocol>
|
||||
<errorcode>
|
||||
19
|
||||
</errorcode>
|
||||
</verify>
|
||||
</testcase>
|
53
tests/data/test1207
Normal file
53
tests/data/test1207
Normal file
@ -0,0 +1,53 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
FTP
|
||||
PORT
|
||||
RETR
|
||||
NODATACONN421
|
||||
</keywords>
|
||||
</info>
|
||||
# Server-side
|
||||
<reply>
|
||||
<data nocheck="yes">
|
||||
some bytes
|
||||
</data>
|
||||
<servercmd>
|
||||
NODATACONN421
|
||||
</servercmd>
|
||||
</reply>
|
||||
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
ftp
|
||||
</server>
|
||||
<name>
|
||||
FTP PORT and 421 on download
|
||||
</name>
|
||||
<command>
|
||||
--max-time %FTPTIME2 ftp://%HOSTIP:%FTPPORT/1207 -P -
|
||||
</command>
|
||||
|
||||
</client>
|
||||
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<strippart>
|
||||
s/^EPRT \|1\|(.*)/EPRT \|1\|/
|
||||
</strippart>
|
||||
<protocol>
|
||||
USER anonymous
|
||||
PASS ftp@example.com
|
||||
PWD
|
||||
EPRT |1|
|
||||
TYPE I
|
||||
SIZE 1207
|
||||
RETR 1207
|
||||
QUIT
|
||||
</protocol>
|
||||
<errorcode>
|
||||
19
|
||||
</errorcode>
|
||||
</verify>
|
||||
</testcase>
|
53
tests/data/test1208
Normal file
53
tests/data/test1208
Normal file
@ -0,0 +1,53 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
FTP
|
||||
PORT
|
||||
RETR
|
||||
NODATACONN150
|
||||
</keywords>
|
||||
</info>
|
||||
# Server-side
|
||||
<reply>
|
||||
<data nocheck="yes">
|
||||
some bytes
|
||||
</data>
|
||||
<servercmd>
|
||||
NODATACONN150
|
||||
</servercmd>
|
||||
</reply>
|
||||
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
ftp
|
||||
</server>
|
||||
<name>
|
||||
FTP PORT download, no data conn and no transient negative reply
|
||||
</name>
|
||||
<command>
|
||||
--max-time %FTPTIME2 ftp://%HOSTIP:%FTPPORT/1208 -P -
|
||||
</command>
|
||||
|
||||
</client>
|
||||
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<strippart>
|
||||
s/^EPRT \|1\|(.*)/EPRT \|1\|/
|
||||
</strippart>
|
||||
<protocol>
|
||||
USER anonymous
|
||||
PASS ftp@example.com
|
||||
PWD
|
||||
EPRT |1|
|
||||
TYPE I
|
||||
SIZE 1208
|
||||
RETR 1208
|
||||
QUIT
|
||||
</protocol>
|
||||
<errorcode>
|
||||
19
|
||||
</errorcode>
|
||||
</verify>
|
||||
</testcase>
|
53
tests/data/test1209
Normal file
53
tests/data/test1209
Normal file
@ -0,0 +1,53 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
FTP
|
||||
PORT
|
||||
RETR
|
||||
NODATACONN
|
||||
</keywords>
|
||||
</info>
|
||||
# Server-side
|
||||
<reply>
|
||||
<data nocheck="yes">
|
||||
some bytes
|
||||
</data>
|
||||
<servercmd>
|
||||
NODATACONN
|
||||
</servercmd>
|
||||
</reply>
|
||||
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
ftp
|
||||
</server>
|
||||
<name>
|
||||
FTP PORT download, no data conn and no positive preliminary reply
|
||||
</name>
|
||||
<command>
|
||||
--max-time %FTPTIME2 ftp://%HOSTIP:%FTPPORT/1209 -P -
|
||||
</command>
|
||||
|
||||
</client>
|
||||
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<strippart>
|
||||
s/^EPRT \|1\|(.*)/EPRT \|1\|/
|
||||
</strippart>
|
||||
<protocol>
|
||||
USER anonymous
|
||||
PASS ftp@example.com
|
||||
PWD
|
||||
EPRT |1|
|
||||
TYPE I
|
||||
SIZE 1209
|
||||
RETR 1209
|
||||
QUIT
|
||||
</protocol>
|
||||
<errorcode>
|
||||
19
|
||||
</errorcode>
|
||||
</verify>
|
||||
</testcase>
|
@ -1,6 +1,7 @@
|
||||
#
|
||||
# For this test the server rejects the EPRT command
|
||||
# and code in lib589 makes use of curl_multi_timeout()
|
||||
# For this test the server rejects the EPRT command,
|
||||
# code in lib591 makes use of curl_multi_timeout()
|
||||
# and server does not establish data connection.
|
||||
#
|
||||
<testcase>
|
||||
<info>
|
||||
@ -10,6 +11,7 @@ PORT
|
||||
STOR
|
||||
multi
|
||||
EPRT refused
|
||||
NODATACONN425
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
@ -18,6 +20,7 @@ EPRT refused
|
||||
<data>
|
||||
</data>
|
||||
<servercmd>
|
||||
NODATACONN425
|
||||
REPLY EPRT 500 we don't like EPRT now
|
||||
</servercmd>
|
||||
</reply>
|
||||
@ -28,16 +31,16 @@ REPLY EPRT 500 we don't like EPRT now
|
||||
ftp
|
||||
</server>
|
||||
<tool>
|
||||
lib589
|
||||
lib591
|
||||
</tool>
|
||||
<name>
|
||||
FTP PORT upload using multi interface timeout, EPRT doesn't work
|
||||
FTP multi PORT and 425 on upload
|
||||
</name>
|
||||
<command>
|
||||
ftp://%HOSTIP:%FTPPORT/path/589 log/upload589
|
||||
ftp://%HOSTIP:%FTPPORT/path/591 %FTPTIME2 log/upload591
|
||||
</command>
|
||||
<file name="log/upload589">
|
||||
Moooooooooooo for 589
|
||||
<file name="log/upload591">
|
||||
Moooooooooooo for 591
|
||||
upload this
|
||||
</file>
|
||||
</client>
|
||||
@ -57,12 +60,13 @@ CWD path
|
||||
EPRT |1|
|
||||
PORT
|
||||
TYPE I
|
||||
STOR 589
|
||||
STOR 591
|
||||
QUIT
|
||||
</protocol>
|
||||
<errorcode>
|
||||
28
|
||||
</errorcode>
|
||||
<upload>
|
||||
Moooooooooooo for 589
|
||||
upload this
|
||||
</upload>
|
||||
</verify>
|
||||
</testcase>
|
72
tests/data/test592
Normal file
72
tests/data/test592
Normal file
@ -0,0 +1,72 @@
|
||||
#
|
||||
# For this test the server rejects the EPRT command,
|
||||
# code in lib591 makes use of curl_multi_timeout()
|
||||
# and server does not establish data connection.
|
||||
#
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
FTP
|
||||
PORT
|
||||
STOR
|
||||
multi
|
||||
EPRT refused
|
||||
NODATACONN421
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
# Server-side
|
||||
<reply>
|
||||
<data>
|
||||
</data>
|
||||
<servercmd>
|
||||
NODATACONN421
|
||||
REPLY EPRT 500 we don't like EPRT now
|
||||
</servercmd>
|
||||
</reply>
|
||||
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
ftp
|
||||
</server>
|
||||
<tool>
|
||||
lib591
|
||||
</tool>
|
||||
<name>
|
||||
FTP multi PORT and 421 on upload
|
||||
</name>
|
||||
<command>
|
||||
ftp://%HOSTIP:%FTPPORT/path/592 %FTPTIME2 log/upload592
|
||||
</command>
|
||||
<file name="log/upload592">
|
||||
Moooooooooooo for 592
|
||||
upload this
|
||||
</file>
|
||||
</client>
|
||||
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
# Strip off parts of the PORT and EPRT commands that might differ
|
||||
<strippart>
|
||||
s/^PORT (.*)/PORT/
|
||||
s/^EPRT \|1\|(.*)/EPRT \|1\|/
|
||||
</strippart>
|
||||
<protocol>
|
||||
USER anonymous
|
||||
PASS ftp@example.com
|
||||
PWD
|
||||
CWD path
|
||||
EPRT |1|
|
||||
PORT
|
||||
TYPE I
|
||||
STOR 592
|
||||
QUIT
|
||||
</protocol>
|
||||
<errorcode>
|
||||
28
|
||||
</errorcode>
|
||||
<upload>
|
||||
</upload>
|
||||
</verify>
|
||||
</testcase>
|
72
tests/data/test593
Normal file
72
tests/data/test593
Normal file
@ -0,0 +1,72 @@
|
||||
#
|
||||
# For this test the server rejects the EPRT command,
|
||||
# code in lib591 makes use of curl_multi_timeout()
|
||||
# and server does not establish data connection.
|
||||
#
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
FTP
|
||||
PORT
|
||||
STOR
|
||||
multi
|
||||
EPRT refused
|
||||
NODATACONN150
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
# Server-side
|
||||
<reply>
|
||||
<data>
|
||||
</data>
|
||||
<servercmd>
|
||||
NODATACONN150
|
||||
REPLY EPRT 500 we don't like EPRT now
|
||||
</servercmd>
|
||||
</reply>
|
||||
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
ftp
|
||||
</server>
|
||||
<tool>
|
||||
lib591
|
||||
</tool>
|
||||
<name>
|
||||
FTP multi PORT upload, no data conn and no transient neg. reply
|
||||
</name>
|
||||
<command>
|
||||
ftp://%HOSTIP:%FTPPORT/path/593 %FTPTIME2 log/upload593
|
||||
</command>
|
||||
<file name="log/upload593">
|
||||
Moooooooooooo for 593
|
||||
upload this
|
||||
</file>
|
||||
</client>
|
||||
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
# Strip off parts of the PORT and EPRT commands that might differ
|
||||
<strippart>
|
||||
s/^PORT (.*)/PORT/
|
||||
s/^EPRT \|1\|(.*)/EPRT \|1\|/
|
||||
</strippart>
|
||||
<protocol>
|
||||
USER anonymous
|
||||
PASS ftp@example.com
|
||||
PWD
|
||||
CWD path
|
||||
EPRT |1|
|
||||
PORT
|
||||
TYPE I
|
||||
STOR 593
|
||||
QUIT
|
||||
</protocol>
|
||||
<errorcode>
|
||||
28
|
||||
</errorcode>
|
||||
<upload>
|
||||
</upload>
|
||||
</verify>
|
||||
</testcase>
|
72
tests/data/test594
Normal file
72
tests/data/test594
Normal file
@ -0,0 +1,72 @@
|
||||
#
|
||||
# For this test the server rejects the EPRT command,
|
||||
# code in lib591 makes use of curl_multi_timeout()
|
||||
# and server does not establish data connection.
|
||||
#
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
FTP
|
||||
PORT
|
||||
STOR
|
||||
multi
|
||||
EPRT refused
|
||||
NODATACONN
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
# Server-side
|
||||
<reply>
|
||||
<data>
|
||||
</data>
|
||||
<servercmd>
|
||||
NODATACONN
|
||||
REPLY EPRT 500 we don't like EPRT now
|
||||
</servercmd>
|
||||
</reply>
|
||||
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
ftp
|
||||
</server>
|
||||
<tool>
|
||||
lib591
|
||||
</tool>
|
||||
<name>
|
||||
FTP multi PORT upload, no data conn and no positive prelim. reply
|
||||
</name>
|
||||
<command>
|
||||
ftp://%HOSTIP:%FTPPORT/path/594 %FTPTIME2 log/upload594
|
||||
</command>
|
||||
<file name="log/upload594">
|
||||
Moooooooooooo for 594
|
||||
upload this
|
||||
</file>
|
||||
</client>
|
||||
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
# Strip off parts of the PORT and EPRT commands that might differ
|
||||
<strippart>
|
||||
s/^PORT (.*)/PORT/
|
||||
s/^EPRT \|1\|(.*)/EPRT \|1\|/
|
||||
</strippart>
|
||||
<protocol>
|
||||
USER anonymous
|
||||
PASS ftp@example.com
|
||||
PWD
|
||||
CWD path
|
||||
EPRT |1|
|
||||
PORT
|
||||
TYPE I
|
||||
STOR 594
|
||||
QUIT
|
||||
</protocol>
|
||||
<errorcode>
|
||||
28
|
||||
</errorcode>
|
||||
<upload>
|
||||
</upload>
|
||||
</verify>
|
||||
</testcase>
|
@ -15,8 +15,8 @@ noinst_PROGRAMS = chkhostname \
|
||||
lib579 lib529 lib530 lib532 lib533 lib536 lib537 lib540 lib541 lib542 \
|
||||
lib543 lib544 lib545 lib547 lib548 lib549 lib552 lib553 lib554 lib555 \
|
||||
lib556 lib539 lib557 lib560 lib562 lib564 lib565 lib566 lib567 lib568 \
|
||||
lib569 lib570 lib571 lib572 lib573 lib582 lib583 lib585 lib587 lib589 \
|
||||
lib590
|
||||
lib569 lib570 lib571 lib572 lib573 lib582 lib583 lib585 lib587 lib590 \
|
||||
lib591
|
||||
|
||||
chkhostname_SOURCES = chkhostname.c $(top_srcdir)/lib/curl_gethostname.c
|
||||
chkhostname_LDADD = @CURL_NETWORK_LIBS@
|
||||
@ -171,6 +171,6 @@ lib585_CPPFLAGS = $(AM_CPPFLAGS) -DLIB585
|
||||
lib587_SOURCES = lib554.c $(SUPPORTFILES)
|
||||
lib587_CPPFLAGS = $(AM_CPPFLAGS) -DLIB587
|
||||
|
||||
lib589_SOURCES = lib589.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
|
||||
|
||||
lib590_SOURCES = lib590.c $(SUPPORTFILES)
|
||||
|
||||
lib591_SOURCES = lib591.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
|
||||
|
@ -21,6 +21,8 @@
|
||||
***************************************************************************/
|
||||
#include "test.h"
|
||||
|
||||
/* lib591 is used for test cases 591, 592, 593 and 594 */
|
||||
|
||||
#include <fcntl.h>
|
||||
|
||||
#include "testutil.h"
|
||||
@ -42,12 +44,12 @@ int test(char *URL)
|
||||
|
||||
start_test_timing();
|
||||
|
||||
upload = fopen(libtest_arg2, "rb");
|
||||
upload = fopen(libtest_arg3, "rb");
|
||||
if(!upload) {
|
||||
error = ERRNO;
|
||||
fprintf(stderr, "fopen() failed with error: %d (%s)\n",
|
||||
error, strerror(error));
|
||||
fprintf(stderr, "Error opening file: (%s)\n", libtest_arg2);
|
||||
fprintf(stderr, "Error opening file: (%s)\n", libtest_arg3);
|
||||
return TEST_ERR_FOPEN;
|
||||
}
|
||||
|
||||
@ -74,6 +76,9 @@ int test(char *URL)
|
||||
/* use active mode FTP */
|
||||
easy_setopt(easy, CURLOPT_FTPPORT, "-");
|
||||
|
||||
/* server connection timeout */
|
||||
easy_setopt(easy, CURLOPT_CONNECTTIMEOUT, strtol(libtest_arg2, NULL, 10));
|
||||
|
||||
multi_init(multi);
|
||||
|
||||
multi_add_handle(multi, easy);
|
Loading…
x
Reference in New Issue
Block a user