url: given a user in the URL, find pwd for that user in netrc

Add test 380 and 381 to verify, edited test 133

Reported-by: Manfred Schwarb
Fixes #8241
Closes #8243
This commit is contained in:
Daniel Stenberg 2022-01-07 17:44:42 +01:00
parent 919baa5802
commit d1237ac906
No known key found for this signature in database
GPG key ID: 5CC908FDB71E12C2
6 changed files with 179 additions and 36 deletions

View file

@ -63,6 +63,7 @@ test352 test353 test354 test355 test356 test357 test358 test359 test360 \
test361 test362 test363 test364 test365 test366 test367 test368 test369 \
test370 test371 test372 test373 \
\
test380 test381 \
test392 test393 test394 test395 test396 test397 \
\
test400 test401 test402 test403 test404 test405 test406 test407 test408 \

View file

@ -34,7 +34,7 @@ dr-xr-xr-x 5 0 1 512 Oct 1 1997 usr
ftp
</server>
<name>
FTP (compulsory .netrc; ignored user/passwd) dir list PASV
FTP compulsory .netrc; ignore passwd in URL
</name>
<command>
-n --netrc-file log/netrc%TESTNUMBER ftp://mary:mark@%HOSTIP:%FTPPORT/
@ -42,7 +42,7 @@ FTP (compulsory .netrc; ignored user/passwd) dir list PASV
<file name="log/netrc%TESTNUMBER" >
# the following two lines were created while testing curl
machine %HOSTIP login user1 password passwd1
machine %HOSTIP login user2 password passwd2
machine %HOSTIP login mary password drfrank
</file>
</client>
@ -50,8 +50,8 @@ machine %HOSTIP login user2 password passwd2
# Verify data after the test has been "shot"
<verify>
<protocol>
USER user1
PASS passwd1
USER mary
PASS drfrank
PWD
EPSV
TYPE A

63
tests/data/test380 Normal file
View file

@ -0,0 +1,63 @@
<testcase>
<info>
<keywords>
FTP
EPSV
LIST
netrc
</keywords>
</info>
#
# Server-side
<reply>
# When doing LIST, we get the default list output hard-coded in the test
# FTP server
<datacheck 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 .NeXT
-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
</datacheck>
</reply>
#
# Client-side
<client>
<server>
ftp
</server>
<name>
pick netrc password based on user name in URL
</name>
<command>
--netrc --netrc-file log/netrc%TESTNUMBER ftp://mary@%HOSTIP:%FTPPORT/
</command>
<file name="log/netrc%TESTNUMBER" >
# the following two lines were created while testing curl
machine %HOSTIP login frankenstein password wrongone
machine %HOSTIP login mary password yram
</file>
</client>
#
# Verify data after the test has been "shot"
<verify>
<protocol>
USER mary
PASS yram
PWD
EPSV
TYPE A
LIST
QUIT
</protocol>
</verify>
</testcase>

67
tests/data/test381 Normal file
View file

@ -0,0 +1,67 @@
<testcase>
<info>
<keywords>
FTP
EPSV
LIST
netrc
</keywords>
</info>
#
# Server-side
<reply>
# When doing LIST, we get the default list output hard-coded in the test
# FTP server
<datacheck 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 .NeXT
-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
</datacheck>
</reply>
#
# Client-side
<client>
<server>
ftp
</server>
# When CURL_NETRC_REQUIRED is set, the password in the URL is ignored and
# using the netrc is mandatory.
#
<name>
netrc-optional lets URL creds override netrc
</name>
<command>
--netrc-optional --netrc-file log/netrc%TESTNUMBER ftp://mary:drfrank@%HOSTIP:%FTPPORT/
</command>
<file name="log/netrc%TESTNUMBER" >
# the following two lines were created while testing curl
machine %HOSTIP login frankenstein password wrongone
machine %HOSTIP login mary password yram
</file>
</client>
#
# Verify data after the test has been "shot"
<verify>
<protocol>
USER mary
PASS drfrank
PWD
EPSV
TYPE A
LIST
QUIT
</protocol>
</verify>
</testcase>