FTP: perform active connections non-blocking

1- Two new error codes are introduced.

CURLE_FTP_ACCEPT_FAILED to be set whenever ACCEPTing fails because of
FTP server connected.

CURLE_FTP_ACCEPT_TIMEOUT to be set whenever ACCEPTing timeouts.

Neither of these errors are considered fatal and control connection
remains OK because it could just be a firewall blocking server to
connect to the client.

2- One new setopt option was introduced.

CURLOPT_ACCEPTTIMEOUT_MS

It sets the maximum amount of time FTP client is going to wait for a
server to connect. Internal default accept timeout is 60 seconds.
This commit is contained in:
Gokhan Sengun
2011-12-19 14:35:20 +01:00
committed by Daniel Stenberg
parent 5527417afa
commit c834213ad5
20 changed files with 366 additions and 132 deletions

View File

@@ -36,12 +36,6 @@ FTP PORT and 421 on download
<strippart>
s/^EPRT \|1\|(.*)/EPRT \|1\|/
</strippart>
# The protocol part does not include QUIT simply because the error is
# CURLE_OPERATION_TIMEDOUT (28) which is a generic timeout error without
# specificly saying for which connection it concerns, and for timeouts libcurl
# marks the control channel as "invalid". As this test case times out for the
# data connection it could still use the control channel.
<protocol>
USER anonymous
PASS ftp@example.com
@@ -50,9 +44,10 @@ EPRT |1|
TYPE I
SIZE 1207
RETR 1207
QUIT
</protocol>
<errorcode>
28
10
</errorcode>
</verify>
</testcase>