- Pramod Sharma reported and tracked down a bug when doing FTP over a HTTP
proxy. libcurl would then wrongly close the connection after each request. In his case it had the weird side-effect that it killed NTLM auth for the proxy causing an inifinite loop! I added test case 1098 to verify this fix. The test case does however not properly verify that the transfers are done persistently - as I couldn't think of a clever way to achieve it right now - but you need to read the stderr output after a test run to see that it truly did the right thing.
This commit is contained in:
Родитель
f6b55fae79
Коммит
30f7a2ff20
11
CHANGES
11
CHANGES
|
@ -6,6 +6,17 @@
|
|||
|
||||
Changelog
|
||||
|
||||
Daniel Stenberg (17 Apr 2009)
|
||||
- Pramod Sharma reported and tracked down a bug when doing FTP over a HTTP
|
||||
proxy. libcurl would then wrongly close the connection after each
|
||||
request. In his case it had the weird side-effect that it killed NTLM auth
|
||||
for the proxy causing an inifinite loop!
|
||||
|
||||
I added test case 1098 to verify this fix. The test case does however not
|
||||
properly verify that the transfers are done persistently - as I couldn't
|
||||
think of a clever way to achieve it right now - but you need to read the
|
||||
stderr output after a test run to see that it truly did the right thing.
|
||||
|
||||
Daniel Stenberg (13 Apr 2009)
|
||||
- bug report #2727981 (http://curl.haxx.se/bug/view.cgi?id=2727981) by Martin
|
||||
Storsjö pointed out how setting CURLOPT_NOBODY to 0 could be downright
|
||||
|
|
|
@ -4146,7 +4146,12 @@ static CURLcode ftp_setup_connection(struct connectdata * conn)
|
|||
return CURLE_UNSUPPORTED_PROTOCOL;
|
||||
#endif
|
||||
}
|
||||
|
||||
/*
|
||||
* We explicitly mark this connection as persistent here as we're doing
|
||||
* FTP over HTTP and thus we accidentally avoid setting this value
|
||||
* otherwise.
|
||||
*/
|
||||
conn->bits.close = FALSE;
|
||||
#else
|
||||
failf(data, "FTP over http proxy requires HTTP support built-in!");
|
||||
return CURLE_UNSUPPORTED_PROTOCOL;
|
||||
|
|
|
@ -60,7 +60,8 @@ EXTRA_DIST = test1 test108 test117 test127 test20 test27 test34 test46 \
|
|||
test1072 test1073 test1074 test1075 test1076 test1077 test1078 test1079 \
|
||||
test1080 test1081 test1082 test1083 test1084 test1085 test633 test634 \
|
||||
test635 test636 test637 test558 test559 test1086 test1087 test1088 \
|
||||
test1089 test1090 test1091 test1092 test1093 test1094 test1095 test1096
|
||||
test1089 test1090 test1091 test1092 test1093 test1094 test1095 test1096 \
|
||||
test1097 test560 test561 test1098
|
||||
|
||||
filecheck:
|
||||
@mkdir test-place; \
|
||||
|
|
|
@ -0,0 +1,73 @@
|
|||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
FTP
|
||||
HTTP proxy
|
||||
CURLOPT_PROXY
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
#
|
||||
# Server-side
|
||||
<reply>
|
||||
<data nocheck="yes">
|
||||
HTTP/1.1 200 OK
|
||||
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||||
Content-Length: 6
|
||||
|
||||
hello
|
||||
</data>
|
||||
|
||||
</reply>
|
||||
|
||||
#
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
http
|
||||
</server>
|
||||
<features>
|
||||
http
|
||||
ftp
|
||||
</features>
|
||||
<name>
|
||||
FTP RETR twice over proxy confirming persistent connection
|
||||
</name>
|
||||
|
||||
<command>
|
||||
ftp://ftp-site/moo/1098 ftp://ftp-site/moo/1098 --proxy http://%HOSTIP:%HTTPPORT
|
||||
</command>
|
||||
</client>
|
||||
|
||||
#
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<strip>
|
||||
^User-Agent:.*
|
||||
</strip>
|
||||
<protocol>
|
||||
GET ftp://ftp-site/moo/1098 HTTP/1.1
|
||||
Host: ftp-site:21
|
||||
Accept: */*
|
||||
Proxy-Connection: Keep-Alive
|
||||
|
||||
GET ftp://ftp-site/moo/1098 HTTP/1.1
|
||||
Host: ftp-site:21
|
||||
Accept: */*
|
||||
Proxy-Connection: Keep-Alive
|
||||
|
||||
</protocol>
|
||||
<stdout mode="text">
|
||||
HTTP/1.1 200 OK
|
||||
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||||
Content-Length: 6
|
||||
|
||||
hello
|
||||
HTTP/1.1 200 OK
|
||||
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||||
Content-Length: 6
|
||||
|
||||
hello
|
||||
</stdout>
|
||||
</verify>
|
||||
</testcase>
|
Загрузка…
Ссылка в новой задаче