aboutsummaryrefslogtreecommitdiff
path: root/lib/ftp.c
AgeCommit message (Collapse)Author
2007-07-01Song Ma helped me verify and extend a fix for doing FTP over a SOCKS4/5 proxyDaniel Stenberg
2007-06-24As reported by "Tro" in http://curl.haxx.se/mail/lib-2007-06/0161.html andDaniel Stenberg
http://curl.haxx.se/mail/lib-2007-06/0238.html, libcurl didn't properly do no-body requests on FTP files on re-used connections properly, or at least it didn't provide the info back in the header callback properly in the subsequent requests.
2007-06-19and fix another flaw in the singlecwd case when we get ftp://site.com/, alsoDaniel Stenberg
from the #1739100 bug report
2007-06-18make the ftp-method multicwd case possible to LIST the root directory of aDaniel Stenberg
server!
2007-04-25Fixed an out of memory handling issue.Dan Fandrich
2007-04-22Avoid an unnecessary call to gettimeofday() whenYang Tse
using custom timeout values.
2007-04-12Work around an out of memory situation in Curl_ftp_done instead ofDan Fandrich
returning an error code, to allow connections to be torn down cleanly since this function can be called AFTER an OOM situation has already been reached.
2007-04-11Fixed some out of memory handling issues.Dan Fandrich
2007-04-10Ravi Pratap provided fixes for HTTP pipeliningDaniel Stenberg
2007-03-31Removed check for ftpcode being NULL, as later it is derefenced unconditionallyDaniel Stenberg
anyway and we can just as well rely on it being valid. CID 12, coverity.com scan
2007-03-30Pointer "cur_pos" dereferenced before NULL check, found by coverity.com scan.Daniel Stenberg
Removed the NULL check since the pointer must be valid already.
2007-03-30Don't tear down the ftp connection if the maximum filesize was exceededDan Fandrich
and added tests 290 and 291 to check.
2007-03-27Update messageYang Tse
2007-03-26Internal function Curl_select() renamed to Curl_socket_ready()Yang Tse
2007-03-25fix compiler warningYang Tse
2007-03-25fix compiler warningYang Tse
2007-02-26Removed inclusion of <sys/types.h> and <sys/stat.h> in .c-filesGisle Vanem
since they're already included through "setup.h".
2007-02-20New FTP CCC functionality - adds passive and active mode to accomodate for ↵Linus Nielsen Feltzing
different server behaviour
2007-02-19and fix warnings due to lack of protosDaniel Stenberg
2007-02-19- Robson Braga Araujo made passive FTP transfers work with SOCKS (both 4 andDaniel Stenberg
5).
2007-02-16use macros ERRNO, SET_ERRNO(), SOCKERRNO and SET_SOCKERRNO() for errno handlingYang Tse
2007-02-16- Duncan Mac-Vicar Prett and Michal Marek reported problems with resettingDaniel Stenberg
CURLOPT_RANGE back to no range on an easy handle when using FTP.
2007-02-06compiler warning fixYang Tse
2007-02-05- Michael Wallner provided a patch that adds support for CURLOPT_TIMEOUT_MSDaniel Stenberg
and CURLOPT_CONNECTTIMEOUT_MS that, as their names should hint, do the timeouts with millisecond resolution instead. The only restriction to that is the alarm() (sometimes) used to abort name resolves as that uses full seconds. I fixed the FTP response timeout part of the patch. Internally we now count and keep the timeouts in milliseconds but it also means we multiply set timeouts with 1000. The effect of this is that no timeout can be set to more than 2^31 milliseconds (on 32 bit systems), which equals 24.86 days. We probably couldn't before either since the code did *1000 on the timeout values on several places already.
2007-02-01compiler warning fixYang Tse
2007-02-01compiler warning fixYang Tse
2007-01-24Only shut down SSL if the CCC command succeeded.Dan Fandrich
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.