aboutsummaryrefslogtreecommitdiff
path: root/lib/ftp.c
AgeCommit message (Collapse)Author
2007-01-16- Armel Asselin improved libcurl to behave a lot better when an easy handleDaniel Stenberg
doing an FTP transfer is removed from a multi handle before completion. The fix also fixed the "alive counter" to be correct on "premature removal" for all protocols.
2007-01-08Correct error code for CCC/SSL shutdown failureLinus Nielsen Feltzing
2007-01-05- Linus Nielsen Feltzing introduced the --ftp-ssl-ccc command line option toDaniel Stenberg
curl that uses the new CURLOPT_FTP_SSL_CCC option in libcurl. If enabled, it will make libcurl shutdown SSL/TLS after the authentication is done on a FTP-SSL operation.
2006-12-22- Robert Foreman provided a prime example snippet showing how libcurl wouldDaniel Stenberg
get confused and not acknowledge the 'no_proxy' variable properly once it had used the proxy and you re-used the same easy handle. I made sure the proxy name is properly stored in the connect struct rather than the sessionhandle/easy struct.
2006-12-21removed unused variablesDaniel Stenberg
2006-12-21Robson Braga Araujo reported bug #1618359Daniel Stenberg
(http://curl.haxx.se/bug/view.cgi?id=1618359) and subsequently provided a patch for it: when downloading 2 zero byte files in a row, curl 7.16.0 enters an infinite loop, while curl 7.16.1-20061218 does one additional unnecessary request. Fix: During the "Major overhaul introducing http pipelining support and shared connection cache within the multi handle." change, headerbytecount was moved to live in the Curl_transfer_keeper structure. But that structure is reset in the Transfer method, losing the information that we had about the header size. This patch moves it back to the connectdata struct.
2006-12-11Alexey Simak found out that when doing FTP with the multi interface andDaniel Stenberg
something went wrong like it got a bad response code back from the server, libcurl would leak memory. Added test case 538 to verify the fix. I also noted that the connection would get cached in that case, which doesn't make sense since it cannot be re-use when the authentication has failed. I fixed that issue too at the same time, and also that the path would be "remembered" in vain for cases where the connection was about to get closed.
2006-12-05Alexey Simak filed bug report #1600447Daniel Stenberg
(http://curl.haxx.se/bug/view.cgi?id=1600447) in which he noted that active FTP connections don't work with the multi interface. The problem is here that the multi interface state machine has a state during which it can wait for the data connection to connect, but the active connection is not done in the same step in the sequence as the passive one is so it doesn't quite work for active. The active FTP code still use a blocking function to allow the remote server to connect. The fix (work-around is a better word) for this problem is to set the boolean prematurely that the data connection is completed, so that the "wait for connect" phase ends at once.
2006-10-17Avoid typecasting a signed char to an int when using is*() functions, as thatDaniel Stenberg
could very well cause a negate number get passed in and thus cause reading outside of the array usually used for this purpose. We avoid this by using the uppercase macro versions introduced just now that does some extra crazy typecasts to avoid byte codes > 127 to cause negative int values.
2006-10-17Explicit typecast for Curl_debug() size argumentYang Tse
2006-10-11Remove redundant __CYGWIN__ symbol checkYang Tse
2006-10-02removed more dead code that is unused since the removal of the third partyDaniel Stenberg
transfer support
2006-09-30Support for FTP third party transfers is now droppedDaniel Stenberg
2006-09-21(FTP) a failed upload does not invalidate the control connectionDaniel Stenberg
2006-09-16Armel Asselin - When the easy handle is removed from the multi while libcurlDaniel Stenberg
is still trying to resolve the host name, it seems that the ftp struct is not yet initialized, but the removal action calls Curl_done() which calls Curl_ftp_done. So we simply return success from there if no ftp pointer is set.
2006-09-12Compiler warning fixYang Tse
2006-09-10Compiler warning fixYang Tse
2006-09-09Compiler warning fixYang Tse
2006-09-09tab => spaceDaniel Stenberg
2006-09-08Peter Sylvester cleaned up and fixed the getsockname() uses in ftp.c. SomeDaniel Stenberg
of them can be completetly removed though...
2006-09-08Compilation fixYang Tse
2006-09-07Major overhaul introducing http pipelining support and shared connectionDaniel Stenberg
cache within the multi handle.
2006-09-03Simplified #ifdef on WIN32; the statementGisle Vanem
" !defined(__GNUC__) || defined(__MINGW32__)" implies CygWin.
2006-08-29Avoid Metaware's High-C warning "'=' encountered where '==' may have been ↵Gisle Vanem
intended."
2006-08-22Peter Sylvester pointed out a flaw in the AllowServerConnect() in the FTPDaniel Stenberg
code when doing pure ipv6 EPRT connections.
2006-08-19Based on a patch by Armel Asselin, the FTP code no longer re-issues the TYPEDaniel Stenberg
command on subsequent requests on a re-used connection unless it has to.
2006-08-18Armel Asselin fixed a crash in the FTP code when using SINGLECWD mode andDaniel Stenberg
files in the root directory.
2006-08-08Armel Asselin made the CURLOPT_PREQUOTE option work fine even whenDaniel Stenberg
CURLOPT_NOBODY is set true. PREQUOTE is then run roughly at the same place in the command sequence as it would have run if there would've been a transfer.
2006-07-25Dan Nelson added the CURLOPT_FTP_ALTERNATIVE_TO_USER libcurl option and curlDaniel Stenberg
tool option named --ftp-alternative-to-user. It provides a mean to send a particular command if the normal USER/PASS approach fails.
2006-07-20Avoid warning 'port' might be used uninitialized in this function.Gisle Vanem
2006-05-04Roland Blom filed bug report #1481217Daniel Stenberg
(http://curl.haxx.se/bug/view.cgi?id=1481217), with follow-ups by Michele Bini and David Byron. libcurl previously wrongly used GetLastError() on windows to get error details after socket-related function calls, when it really should use WSAGetLastError() instead. When changing to this, the former function Curl_ourerrno() is now instead called Curl_sockerrno() as it is necessary to only use it to get errno from socket-related functions as otherwise it won't work as intended on Windows.
2006-04-26David McCreedy brought line end conversions when doing FTP ASCIIDaniel Stenberg
transfers. They are done on non-windows systems and translate CRLF to LF.
2006-04-18Robson Braga Araujo provided a patch that makes libcurl less eager to closeDaniel Stenberg
the control connection when using FTP, for example when you remove an easy handle from a multi stack.
2006-04-10First curl_multi_socket() commit. Should primarily be considered as an internalDaniel Stenberg
code rearrange to fit the future better.
2006-04-07First commit of David McCreedy's EBCDIC and TPF changes.Daniel Stenberg
2006-03-21David McCreedy added CURLINFO_FTP_ENTRY_PATH to export the FTP entry pathDaniel Stenberg
2006-03-20David McCreedy fixed libcurl to no longer ignore AUTH failures and now itDaniel Stenberg
reacts properly according to the CURLOPT_FTP_SSL setting.
2006-03-13David McCreedy found a missing return code assignmentDaniel Stenberg
2006-03-08Peter Heuchert's correction for the clear control connection caseDaniel Stenberg
2006-03-07Peter Heuchert made sure the CURLFTPSSL_CONTROL setting for CURLOPT_FTP_SSLDaniel Stenberg
is used properly.
2006-03-03Prevent uploading to a URL that has no file name part.Daniel Stenberg
2006-02-11Karl M added the CURLOPT_CONNECT_ONLY and CURLINFO_LASTSOCKET options thatDaniel Stenberg
an app can use to let libcurl only connect to a remote host and then extract the socket from libcurl. libcurl will then not attempt to do any transfer at all after the connect is done.
2006-01-24Michal Marek provided a patch for FTP that makes libcurl continue to try PASVDaniel Stenberg
even after EPSV returned a positive response code, if libcurl failed to connect to the port number the EPSV response said. Obviously some people are going through protocol-sensitive firewalls (or similar) that don't understand EPSV and then they don't allow the second connection unless PASV was used. This also called for a minor fix of test case 238.
2006-01-19Duane Cathey was one of our friends who reported that curl -P [IP]Daniel Stenberg
(CURLOPT_FTPPORT) didn't work for ipv6-enabed curls if the IP wasn't a "native" IP while it works fine for ipv6-disabled builds! In the process of fixing this, I removed the support for LPRT since I can't think of many reasons to keep doing it and asking on the mailing list didn't reveal anyone else that could either. The code that sends EPRT and PORT is now also a lot simpler than before (IMHO).
2006-01-19Jon Turner pointed out that doing -P [hostname] with curl (built ipv4-only)Daniel Stenberg
didn't work.
2006-01-12Fixed FTP_SKIP_PASV_IP and FTP_USE_EPSV to "do right" when used on FTP thruDaniel Stenberg
HTTP proxy.
2006-01-12Michael Jahn fixed ftp over CONNECTDaniel Stenberg
2006-01-10When using a bad path over FTP, as in when libcurl couldn't CWD into allDaniel Stenberg
given subdirs, libcurl would still "remember" the full path as if it is the current directory libcurl is in so that the next curl_easy_perform() would get really confused if it tried the same path again - as it would not issue any CWD commands at all, assuming it is already in the "proper" dir. Starting now, a failed CWD command sets a flag that prevents the path to be "remembered" after returning.
2005-12-11Undo last changesYang Tse
2005-12-11Avoid generation of additional warningsYang Tse