mirror of
https://github.com/curl/curl.git
synced 2026-07-23 18:37:17 +03:00
tool_getparam: fix --ftp-pasv
This boolean option was moved to the wrong handling function. Make it
an ARG_NONE and move it to the correct handler and add a test to
verify that the option works.
Follow-up to 698491f44
Reported-by: fjaell on github
Fixes #17545
Closes #17547
This commit is contained in:
parent
900612df79
commit
5f805eec11
4 changed files with 66 additions and 6 deletions
|
|
@ -6,7 +6,8 @@ Help: Send PASV/EPSV instead of PORT
|
|||
Protocols: FTP
|
||||
Added: 7.11.0
|
||||
Category: ftp
|
||||
Multi: boolean
|
||||
Multi: mutex
|
||||
Mutexed: ftp-port
|
||||
See-also:
|
||||
- disable-epsv
|
||||
Example:
|
||||
|
|
|
|||
|
|
@ -153,7 +153,7 @@ static const struct LongShort aliases[]= {
|
|||
{"ftp-alternative-to-user", ARG_STRG, ' ', C_FTP_ALTERNATIVE_TO_USER},
|
||||
{"ftp-create-dirs", ARG_BOOL, ' ', C_FTP_CREATE_DIRS},
|
||||
{"ftp-method", ARG_STRG, ' ', C_FTP_METHOD},
|
||||
{"ftp-pasv", ARG_BOOL, ' ', C_FTP_PASV},
|
||||
{"ftp-pasv", ARG_NONE, ' ', C_FTP_PASV},
|
||||
{"ftp-port", ARG_STRG, 'P', C_FTP_PORT},
|
||||
{"ftp-pret", ARG_BOOL, ' ', C_FTP_PRET},
|
||||
{"ftp-skip-pasv-ip", ARG_BOOL, ' ', C_FTP_SKIP_PASV_IP},
|
||||
|
|
@ -1703,6 +1703,9 @@ static ParameterError opt_none(struct GlobalConfig *global,
|
|||
break;
|
||||
case C_DUMP_CA_EMBED: /* --dump-ca-embed */
|
||||
return PARAM_CA_EMBED_REQUESTED;
|
||||
case C_FTP_PASV: /* --ftp-pasv */
|
||||
tool_safefree(config->ftpport);
|
||||
break;
|
||||
|
||||
case C_HTTP1_0: /* --http1.0 */
|
||||
/* HTTP version 1.0 */
|
||||
|
|
@ -2293,9 +2296,6 @@ static ParameterError opt_filestring(struct GlobalConfig *global,
|
|||
case C_URL: /* --url */
|
||||
err = parse_url(global, config, nextarg);
|
||||
break;
|
||||
case C_FTP_PASV: /* --ftp-pasv */
|
||||
tool_safefree(config->ftpport);
|
||||
break;
|
||||
case C_SOCKS5: /* --socks5 */
|
||||
/* socks5 proxy to use, and resolves the name locally and passes on the
|
||||
resolved address */
|
||||
|
|
|
|||
|
|
@ -203,7 +203,7 @@ test1508 test1509 test1510 test1511 test1512 test1513 test1514 test1515 \
|
|||
test1516 test1517 test1518 test1519 test1520 test1521 test1522 test1523 \
|
||||
test1524 test1525 test1526 test1527 test1528 test1529 test1530 test1531 \
|
||||
test1532 test1533 test1534 test1535 test1536 test1537 test1538 test1539 \
|
||||
test1540 test1541 test1542 test1543 test1544 test1545 test1546 \
|
||||
test1540 test1541 test1542 test1543 test1544 test1545 test1546 test1547 \
|
||||
\
|
||||
test1550 test1551 test1552 test1553 test1554 test1555 test1556 test1557 \
|
||||
test1558 test1559 test1560 test1561 test1562 test1563 test1564 test1565 \
|
||||
|
|
|
|||
59
tests/data/test1547
Normal file
59
tests/data/test1547
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
<testcase>
|
||||
# Based on test100 & test101
|
||||
<info>
|
||||
<keywords>
|
||||
FTP
|
||||
PASV
|
||||
LIST
|
||||
</keywords>
|
||||
</info>
|
||||
#
|
||||
# Server-side
|
||||
<reply>
|
||||
<data mode="text">
|
||||
total 20
|
||||
drwxr-xr-x 8 98 98 512 Oct 22 13:06 .
|
||||
drwxr-xr-x 8 98 98 512 Oct 22 13:06 ..
|
||||
drwxr-xr-x 2 98 98 512 May 2 1996 curl-releases
|
||||
-r--r--r-- 1 0 1 35 Jul 16 1996 README
|
||||
lrwxrwxrwx 1 0 1 7 Dec 9 1999 bin -> usr/bin
|
||||
dr-xr-xr-x 2 0 1 512 Oct 1 1997 dev
|
||||
drwxrwxrwx 2 98 98 512 May 29 16:04 download.html
|
||||
dr-xr-xr-x 2 0 1 512 Nov 30 1995 etc
|
||||
drwxrwxrwx 2 98 1 512 Oct 30 14:33 pub
|
||||
dr-xr-xr-x 5 0 1 512 Oct 1 1997 usr
|
||||
</data>
|
||||
</reply>
|
||||
|
||||
#
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
ftp
|
||||
</server>
|
||||
<name>
|
||||
FTP dir list PASV overriding PORT
|
||||
</name>
|
||||
<command>
|
||||
ftp://%HOSTIP:%FTPPORT/test-%TESTNUMBER/ -P %CLIENTIP --ftp-pasv
|
||||
</command>
|
||||
</client>
|
||||
|
||||
#
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<strip>
|
||||
QUIT
|
||||
</strip>
|
||||
<protocol>
|
||||
USER anonymous
|
||||
PASS ftp@example.com
|
||||
PWD
|
||||
CWD test-%TESTNUMBER
|
||||
EPSV
|
||||
TYPE A
|
||||
LIST
|
||||
QUIT
|
||||
</protocol>
|
||||
</verify>
|
||||
</testcase>
|
||||
Loading…
Add table
Add a link
Reference in a new issue