aboutsummaryrefslogtreecommitdiff
path: root/lib/ftp.c
AgeCommit message (Collapse)Author
2010-02-24fix compiler warningYang Tse
2010-02-05- attempt to workaround icc 9.1 optimizer issueYang Tse
2010-02-04fix printf-style format stringsYang Tse
2010-02-02Fix compiler warning: conditional expression is constantYang Tse
2010-02-02Julien Chaffraix pointed out a comment mistake, and I re-indented the codeDaniel Stenberg
slightly while editing
2010-01-29fix errno usage for WIN32 buildsYang Tse
2010-01-25make Curl_handler_*_proxy definition staticYang Tse
2010-01-22wrap long lines and do some indent policingDaniel Stenberg
2010-01-19- David McCreedy brought a fix and a new test case (129) to make libcurl workDaniel Stenberg
again when downloading files over FTP using ASCII and it turns out that the final size of the file is not the same as the initial size the server reported. This is very common since servers don't take the newline conversions into account.
2010-01-01update copyright year since we are in 2010 nowDaniel Stenberg
2010-01-01- Ingmar Runge enhanced libcurl's FTP engine to support the PRET command. ThisDaniel Stenberg
command is a special "hack" used by the drftpd server, but even though it is a custom extension I've deemed it fine to add to libcurl since this server seems to survive and people keep using it and want libcurl to support it. The new libcurl option is named CURLOPT_FTP_USE_PRET, and it is also usable from the curl tool with --ftp-pret. Using this option on a server that doesn't support this command will make libcurl fail.
2009-12-30VMS specific preprocessor symbol checking adjustmentsYang Tse
2009-12-14Fix compiler warningsYang Tse
2009-12-12introducing IMAP, POP3 and SMTP support (still lots of polish left to do)Daniel Stenberg
2009-11-26 - Extended and fixed the change I did on Dec 11 for the the progressDaniel Stenberg
meter/callback during FTP command/response sequences. It turned out it was really lame before and now the progress meter SHOULD get called at least once per second.
2009-11-19Explicit initialization of all FTP struct members in ftp_init()Yang Tse
2009-11-18Make usage of calloc()'s arguments consistent with rest of code baseYang Tse
2009-11-11- Christian Schmitz noticed that the progress meter/callback was not properlyDaniel Stenberg
used during the FTP connection phase (after the actual TCP connect), while it of course should be. I also made the speed check get called correctly so that really slow servers will trigger that properly too.
2009-09-17fix compiler warning: enumerated type mixed with another typeYang Tse
2009-08-31- When using the multi interface with FTP and you asked for NOBODY, you did noDaniel Stenberg
QUOTE commands and the request used the same path as the connection had already changed to, it would decide that no commands would be necessary for the "DO" action and that was not handled properly but libcurl would instead hang.
2009-08-24- Introduced a SYST-based test to properly set-up name format when dealing ↵Patrick Monnerat
with the OS/400 FTP server. - Fixed an ftp_readresp() bug preventing detection of failing control socket and causing FTP client to loop forever.
2009-08-11- Benbuck Nason posted the bug report #2835196Daniel Stenberg
(http://curl.haxx.se/bug/view.cgi?id=2835196), fixing a few compiler warnings when mixing ints and bools.
2009-08-11Fixed a memory leak in the FTP code and an off-by-one heap buffer overflow.Dan Fandrich
2009-07-27- All the quote options (CURLOPT_QUOTE, CURLOPT_POSTQUOTE andDaniel Stenberg
CURLOPT_PREQUOTE) now accept a preceeding asterisk before the command to send when using FTP, as a sign that libcurl shall simply ignore the response from the server instead of treating it as an error. Not treating a 400+ FTP response code as an error means that failed commands will not abort the chain of commands, nor will they cause the connection to get disconnected.
2009-07-16added a cast to silent compiler warning with 64bit systems.Gunter Knauf
2009-07-09- Eric Wong introduced curlx_nonblock() that the curl tool now (re-)uses forDaniel Stenberg
setting a file descriptor non-blocking. Used by the functionality Eric himself brough on June 15th.
2009-07-04added INET_ADDRSTRLEN define in case system headers dont provide.Gunter Knauf
2009-07-04removed NIFLAGS which is no longer used; added NI_MAXHOST since its missing ↵Gunter Knauf
with some platforms.
2009-07-04Markus Koetter provided a patch to avoid getnameinfo() usage which broke a ↵Gunter Knauf
couple of both IPv4 and IPv6 autobuilds.
2009-06-30Tor Arntsen pointed out a missing #ifdef for IPv6, and I changed another oneDaniel Stenberg
to use the "standard" ENABLE_IPV6 one. Also, if port number cannot be figured out to connect to after a name resolve (due to it not being IPv4 or IPv6), that particular address will now simply be skipped.
2009-06-29- Markus Koetter made CURLOPT_FTPPORT (and curl's -P/--ftpport) support a portDaniel Stenberg
range if given colon-separated after the host name/address part. Like "192.168.0.1:2000-10000"
2009-06-10Adjusted to take in account that...Yang Tse
With the curl memory tracking feature decoupled from the debug build feature, CURLDEBUG and DEBUGBUILD preprocessor symbol definitions are used as follows: CURLDEBUG used for curl debug memory tracking specific code (--enable-curldebug) DEBUGBUILD used for debug enabled specific code (--enable-debug)
2009-05-19- Kamil Dudka brought the patch from the Redhat bug entryDaniel Stenberg
https://bugzilla.redhat.com/show_bug.cgi?id=427966 which was libcurl closing a bad file descriptor when closing down the FTP data connection. Caolan McNamara seems to be the original author of it.
2009-05-12Reverted my change to use Curl_connected_proxy() here. Clearly I wasn'tDaniel Stenberg
thinking straight.
2009-05-11moved variables more locally to get rid of one set of #ifdefsDaniel Stenberg
2009-05-11Use Curl_connected_proxy() here instead of duplicating code. Spell out theDaniel Stenberg
badness in the code flow even for the socks case.
2009-05-07- Made the SO_SNDBUF setting for the data connection socket for ftp uploads asDaniel Stenberg
well. See change 28 Apr 2009.
2009-05-02Use build-time configured curl_socklen_t instead of socklen_tYang Tse
2009-04-28- Bug report #2709004 (http://curl.haxx.se/bug/view.cgi?id=2709004) by TimDaniel Stenberg
Chen pointed out how curl couldn't upload with resume when reading from a pipe. This ended up with the introduction of a new return code for the CURLOPT_SEEKFUNCTION callback that basically says that the seek failed but that libcurl may try to resolve the situation anyway. In our case this means libcurl will attempt to instead read that much data from the stream instead of seeking and that way curl can now upload with resume when data is read from a stream!
2009-04-21libcurl's memory.h renamed to curl_memory.hYang Tse
2009-04-20- Leanic Lefever reported a crash and did some detailed research on why andDaniel Stenberg
how it occurs (http://curl.haxx.se/mail/lib-2009-04/0289.html). The conclusion was that if an error is detected and Curl_done() is called for the connection, ftp_done() could at times return another error code that then would take precedence and that new code confused existing logic that works for the first error code (CURLE_SEND_ERROR) only.
2009-04-19attempt to workaround icc 9.1 optimizer induced problemYang Tse
2009-04-17- Pramod Sharma reported and tracked down a bug when doing FTP over a HTTPDaniel Stenberg
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.
2009-04-01- Andre Guibert de Bruet fixed a NULL pointer use in an infof() call if aDaniel Stenberg
strdup() call failed.
2009-03-09Avoid a compile warning in --disable-proxy caseDan Fandrich
2009-02-20- Linus Nielsen Feltzing reported and helped me repeat and fix a problem withDaniel Stenberg
FTP with the multi interface: when a transfer fails, like when aborted by a write callback, the control connection was wrongly closed and thus not re-used properly. This change is also an attempt to cleanup the code somewhat in this area, as now the FTP code attempts to keep (better) track on pending responses necessary to get read in ftp_done().
2009-02-18FTP downloads (i.e.: RETR) ending with code 550 now return error ↵Patrick Monnerat
CURLE_REMOTE_FILE_NOT_FOUND instead of CURLE_FTP_COULDNT_RETR_FILE.
2009-02-17- CURLOPT_FTP_CREATE_MISSING_DIRS can now be set to 2 in addition to 1 forDaniel Stenberg
plain FTP connections, and it will then allow MKD to fail once and retry the CWD afterwards. This is especially useful if you're doing many simultanoes connections against the same server and they all have this option enabled, as then CWD may first fail but then another connection does MKD before this connection and thus MKD fails but trying CWD works! The numbers can (should?) now be set with the convenience enums now called CURLFTP_CREATE_DIR and CURLFTP_CREATE_DIR_RETRY. Tests has proven that if you're making an application that uploads a set of files to an ftp server, you will get a noticable gain in speed if you're using multiple connections and this option will be then be very useful.
2009-02-11- CURLINFO_CONDITION_UNMET was added to allow an application to get to know ifDaniel Stenberg
the condition in the previous request was unmet. This is typically a time condition set with CURLOPT_TIMECONDITION and was previously not possible to reliably figure out. From bug report #2565128 (http://curl.haxx.se/bug/view.cgi?id=2565128)
2009-02-02- Craig A West brought us: libcurl now defaults to do CONNECT with HTTPDaniel Stenberg
version 1.1 instead of 1.0 like before. This change also introduces the new proxy type for libcurl called 'CURLPROXY_HTTP_1_0' that then allows apps to switch (back) to CONNECT 1.0 requests. The curl tool also got a --proxy1.0 option that works exactly like --proxy but sets CURLPROXY_HTTP_1_0. I updated all test cases cases that use CONNECT and I tried to do some using --proxy1.0 and some updated to do CONNECT 1.1 to get both versions run.