Daniel Stenberg
73e91ce20c
Curl_GetFTPResponse() now checks and properly deals with the fact that the
...
underlying ftp_readresp() function has a separate "cache" where there might
in fact be leftover data...
2007-09-05 21:41:07 +00:00
Dan Fandrich
3fa60164af
Renamed the CURLE_FTP_SSL_FAILED error code to CURLE_USE_SSL_FAILED.
...
Renamed the curl_ftpssl enum to curl_usessl and its enumerated constants,
creating macros for backward compatibility.
2007-08-31 19:36:32 +00:00
Dan Fandrich
9f44a95522
Renamed several libcurl error codes and options to make them more general
...
and allow reuse by multiple protocols. Several unused error codes were
removed. In all cases, macros were added to preserve source (and binary)
compatibility with the old names. These macros are subject to removal at
a future date, but probably not before 2009. An application can be
tested to see if it is using any obsolete code by compiling it with the
CURL_NO_OLDIES macro defined.
Documented some newer error codes in libcurl-error(3)
2007-08-30 20:34:57 +00:00
Daniel Stenberg
da4a776758
Made Curl_GetFTPResponse() use lots less code and instead use the proper
...
low-level ftp_readresp() function. Hopefully adressing bug #1779054 .
2007-08-30 14:06:00 +00:00
Dan Fandrich
8cf0814a14
Fixed some minor type mismatches and missing consts mainly found by splint.
2007-08-27 06:31:28 +00:00
Daniel Stenberg
7cba40b218
Bug report #1779054 ( http://curl.haxx.se/bug/view.cgi?id=1779054 ) pointed
...
out that libcurl didn't deal with large responses from server commands, when
the single response was consisting of multiple lines but of a total size of
16KB or more. Dan Fandrich improved the ftp test script and provided test
case 1006 to repeat the problem, and I fixed the code to make sure this new
test case runs fine.
2007-08-24 14:00:42 +00:00
Daniel Stenberg
381e372939
Bug report #1779054 ( http://curl.haxx.se/bug/view.cgi?id=1779054 ) pointed
...
out that libcurl didn't deal with very long (>16K) FTP server response lines
properly. Starting now, libcurl will chop them off (thus the client app will
not get the full line) but survive and deal with them fine otherwise. Test
case 1003 was added to verify this.
2007-08-22 14:18:06 +00:00
Daniel Stenberg
b132e865b9
Based on a patch by Christian Vogt, the FTP code now sets the upcoming
...
download transfer size much earlier to be possible to get read with
CURLINFO_CONTENT_LENGTH_DOWNLOAD as soon as possible.
2007-08-20 21:54:00 +00:00
Daniel Stenberg
1aa82decea
- Robson Braga Araujo filed bug report #1776232
...
(http://curl.haxx.se/bug/view.cgi?id=1776232 ) about libcurl calling
Curl_client_write(), passing on a const string that the caller may not
modify and yet it does (on some platforms).
2007-08-17 22:31:51 +00:00
Daniel Stenberg
3217809294
Robson Braga Araujo filed bug report #1776235
...
(http://curl.haxx.se/bug/view.cgi?id=1776235 ) about ftp requests with NOBODY
on a directory would do a "SIZE (null)" request. This is now fixed and test
case 1000 was added to verify.
2007-08-17 22:22:43 +00:00
Daniel Stenberg
50c10aa5bf
Patrick Monnerat and I modified libcurl so that now it *copies* all strings
...
passed to it with curl_easy_setopt()! Previously it has always just refered
to the data, forcing the user to keep the data around until libcurl is done
with it. That is now history and libcurl will instead clone the given
strings and keep private copies.
2007-08-01 21:20:01 +00:00
Daniel Stenberg
f1fa7b8ba4
Bug report #1759542 ( http://curl.haxx.se/bug/view.cgi?id=1759542 ). A bad use
...
of a socket after it has been closed, when the FTP-SSL data connection is taken
down.
2007-07-29 12:54:05 +00:00
Dan Fandrich
5ecd56d964
Implemented only the parts of Patrick Monnerat's OS/400 patch that renamed
...
some few internal identifiers to avoid conflicts, which could be useful on
other platforms.
2007-07-23 18:51:22 +00:00
Dan Fandrich
b465750041
Make the pointers of a few static const arrays const, too, for safety.
2007-07-21 02:08:17 +00:00
Daniel Stenberg
e3377e637a
Ralf S. Engelschall filed bug report #1757328
...
(http://curl.haxx.se/bug/view.cgi?id=1757328 ) and submitted a patch. It turns
out we broke login to FTP servers that don't require (nor understand) PASS
after the USER command
2007-07-20 09:35:58 +00:00
Dan Fandrich
4a2f0fb2be
Made some const arrays static to avoid unnecessary stack usage.
2007-07-20 00:41:12 +00:00
Daniel Stenberg
1d728aae2a
Jofell Gallardo posted a libcurl log using FTP that exposed a bug which made
...
a control connection that was deemed "dead" to yet be re-used in a following
request. We must make sure the connection gets closed on this situation.
2007-07-17 20:59:53 +00:00
Daniel Stenberg
cf5378b366
Daniel Cater made libcurl build with CURL_NO_OLDIES defined (which doesn't
...
define the symbols for backwards source compatibility)
2007-07-13 20:04:53 +00:00
Daniel Stenberg
54967d2a3a
Thomas J. Moore provided a patch that introduces Kerberos5 support in
...
libcurl. This also makes the options change name to --krb (from --krb4) and
CURLOPT_KRBLEVEL (from CURLOPT_KRB4LEVEL) but the old names are still
2007-07-01 22:01:18 +00:00
Daniel Stenberg
667fd9a60b
Song Ma helped me verify and extend a fix for doing FTP over a SOCKS4/5 proxy
2007-07-01 21:28:14 +00:00
Daniel Stenberg
af4edf10f5
As reported by "Tro" in http://curl.haxx.se/mail/lib-2007-06/0161.html and
...
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-24 19:32:33 +00:00
Daniel Stenberg
fc3c5dae87
and fix another flaw in the singlecwd case when we get ftp://site.com/, also
...
from the #1739100 bug report
2007-06-19 12:33:28 +00:00
Daniel Stenberg
fe85ae15f3
make the ftp-method multicwd case possible to LIST the root directory of a
...
server!
2007-06-18 21:04:45 +00:00
Dan Fandrich
6e835ef3aa
Fixed an out of memory handling issue.
2007-04-25 20:54:02 +00:00
Yang Tse
3616912d22
Avoid an unnecessary call to gettimeofday() when
...
using custom timeout values.
2007-04-22 18:17:46 +00:00
Dan Fandrich
70cce4cddd
Work around an out of memory situation in Curl_ftp_done instead of
...
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-12 01:26:02 +00:00
Dan Fandrich
47f044265e
Fixed some out of memory handling issues.
2007-04-11 00:25:41 +00:00
Daniel Stenberg
5daa6b9367
Ravi Pratap provided fixes for HTTP pipelining
2007-04-10 20:46:40 +00:00
Daniel Stenberg
3af08472ad
Removed check for ftpcode being NULL, as later it is derefenced unconditionally
...
anyway and we can just as well rely on it being valid.
CID 12, coverity.com scan
2007-03-31 10:39:54 +00:00
Daniel Stenberg
74e54c5a49
Pointer "cur_pos" dereferenced before NULL check, found by coverity.com scan.
...
Removed the NULL check since the pointer must be valid already.
2007-03-30 20:52:42 +00:00
Dan Fandrich
ffb11ad5c6
Don't tear down the ftp connection if the maximum filesize was exceeded
...
and added tests 290 and 291 to check.
2007-03-30 01:13:47 +00:00
Yang Tse
d58c7a8bdd
Update message
2007-03-27 18:16:35 +00:00
Yang Tse
fba4cd0e62
Internal function Curl_select() renamed to Curl_socket_ready()
2007-03-26 23:23:46 +00:00
Yang Tse
f08ac86834
fix compiler warning
2007-03-25 02:30:58 +00:00
Yang Tse
d6eca89229
fix compiler warning
2007-03-25 01:59:52 +00:00
Gisle Vanem
c514a2a89a
Removed inclusion of <sys/types.h> and <sys/stat.h> in .c-files
...
since they're already included through "setup.h".
2007-02-26 04:24:26 +00:00
Linus Nielsen Feltzing
2f5e99ca02
New FTP CCC functionality - adds passive and active mode to accomodate for different server behaviour
2007-02-20 22:02:11 +00:00
Daniel Stenberg
d2bdad5945
and fix warnings due to lack of protos
2007-02-19 11:55:49 +00:00
Daniel Stenberg
17e8d60c01
- Robson Braga Araujo made passive FTP transfers work with SOCKS (both 4 and
...
5).
2007-02-19 11:53:54 +00:00
Yang Tse
a1d5983991
use macros ERRNO, SET_ERRNO(), SOCKERRNO and SET_SOCKERRNO() for errno handling
2007-02-16 18:19:35 +00:00
Daniel Stenberg
aa4435c23b
- Duncan Mac-Vicar Prett and Michal Marek reported problems with resetting
...
CURLOPT_RANGE back to no range on an easy handle when using FTP.
2007-02-16 15:37:05 +00:00
Yang Tse
e213555c98
compiler warning fix
2007-02-06 18:06:37 +00:00
Daniel Stenberg
91386937ff
- Michael Wallner provided a patch that adds support for CURLOPT_TIMEOUT_MS
...
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-05 22:51:32 +00:00
Yang Tse
d2dd3d7e16
compiler warning fix
2007-02-01 15:36:56 +00:00
Yang Tse
54db98c220
compiler warning fix
2007-02-01 01:42:13 +00:00
Dan Fandrich
5f9cbc4209
Only shut down SSL if the CCC command succeeded.
2007-01-24 19:09:12 +00:00
Daniel Stenberg
385e612fa5
- Armel Asselin improved libcurl to behave a lot better when an easy handle
...
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-16 22:22:10 +00:00
Linus Nielsen Feltzing
d465199411
Correct error code for CCC/SSL shutdown failure
2007-01-08 11:24:11 +00:00
Daniel Stenberg
4750e6f3c5
- Linus Nielsen Feltzing introduced the --ftp-ssl-ccc command line option to
...
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.
2007-01-05 23:11:14 +00:00
Daniel Stenberg
bedc61ac45
- Robert Foreman provided a prime example snippet showing how libcurl would
...
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-22 15:04:59 +00:00
Daniel Stenberg
1beb7de7e0
removed unused variables
2006-12-21 10:18:15 +00:00
Daniel Stenberg
89ab5f4380
Robson Braga Araujo reported bug #1618359
...
(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-21 10:15:38 +00:00
Daniel Stenberg
88c8d72a21
Alexey Simak found out that when doing FTP with the multi interface and
...
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-11 09:32:58 +00:00
Daniel Stenberg
3c4f622479
Alexey Simak filed bug report #1600447
...
(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-12-05 13:49:29 +00:00
Daniel Stenberg
44d84ac164
Avoid typecasting a signed char to an int when using is*() functions, as that
...
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-17 21:32:56 +00:00
Yang Tse
ec956b0334
Explicit typecast for Curl_debug() size argument
2006-10-17 10:04:13 +00:00
Yang Tse
e150150d9f
Remove redundant __CYGWIN__ symbol check
2006-10-11 16:01:16 +00:00
Daniel Stenberg
e2b48366d3
removed more dead code that is unused since the removal of the third party
...
transfer support
2006-10-02 13:00:54 +00:00
Daniel Stenberg
5e0d9aea32
Support for FTP third party transfers is now dropped
2006-09-30 20:31:11 +00:00
Daniel Stenberg
ab798fe5ba
(FTP) a failed upload does not invalidate the control connection
2006-09-21 20:52:58 +00:00
Daniel Stenberg
c001ed53fa
Armel Asselin - When the easy handle is removed from the multi while libcurl
...
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-16 20:57:59 +00:00
Yang Tse
733a184ce0
Compiler warning fix
2006-09-12 23:51:01 +00:00
Yang Tse
c30e908034
Compiler warning fix
2006-09-10 23:37:42 +00:00
Yang Tse
bb87b65f08
Compiler warning fix
2006-09-09 13:24:42 +00:00
Daniel Stenberg
ed72d4e104
tab => space
2006-09-09 11:45:05 +00:00
Daniel Stenberg
8ec1bfe897
Peter Sylvester cleaned up and fixed the getsockname() uses in ftp.c. Some
...
of them can be completetly removed though...
2006-09-08 22:17:39 +00:00
Yang Tse
dc7c915553
Compilation fix
2006-09-08 05:18:07 +00:00
Daniel Stenberg
b7eeb6e67f
Major overhaul introducing http pipelining support and shared connection
...
cache within the multi handle.
2006-09-07 21:49:20 +00:00
Gisle Vanem
4f4277d9c7
Simplified #ifdef on WIN32; the statement
...
" !defined(__GNUC__) || defined(__MINGW32__)" implies
CygWin.
2006-09-03 13:52:07 +00:00
Gisle Vanem
4031eb1d91
Avoid Metaware's High-C warning "'=' encountered where '==' may have been intended."
2006-08-29 21:11:55 +00:00
Daniel Stenberg
d792937686
Peter Sylvester pointed out a flaw in the AllowServerConnect() in the FTP
...
code when doing pure ipv6 EPRT connections.
2006-08-22 21:21:01 +00:00
Daniel Stenberg
cfdcae4bc7
Based on a patch by Armel Asselin, the FTP code no longer re-issues the TYPE
...
command on subsequent requests on a re-used connection unless it has to.
2006-08-19 21:18:36 +00:00
Daniel Stenberg
74a6921bc4
Armel Asselin fixed a crash in the FTP code when using SINGLECWD mode and
...
files in the root directory.
2006-08-18 23:17:33 +00:00
Daniel Stenberg
1eedad27a2
Armel Asselin made the CURLOPT_PREQUOTE option work fine even when
...
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-08-08 22:56:46 +00:00
Daniel Stenberg
2527b53019
Dan Nelson added the CURLOPT_FTP_ALTERNATIVE_TO_USER libcurl option and curl
...
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-25 22:45:21 +00:00
Gisle Vanem
73ebb0edde
Avoid warning 'port' might be used uninitialized in this function.
2006-07-20 15:54:01 +00:00
Daniel Stenberg
e85e30546c
Roland Blom filed bug report #1481217
...
(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-05-04 22:39:47 +00:00
Daniel Stenberg
95152aec68
David McCreedy brought line end conversions when doing FTP ASCII
...
transfers. They are done on non-windows systems and translate CRLF to LF.
2006-04-26 07:40:37 +00:00
Daniel Stenberg
e532b196cc
Robson Braga Araujo provided a patch that makes libcurl less eager to close
...
the control connection when using FTP, for example when you remove an easy
handle from a multi stack.
2006-04-18 23:14:30 +00:00
Daniel Stenberg
686d90745b
First curl_multi_socket() commit. Should primarily be considered as an internal
...
code rearrange to fit the future better.
2006-04-10 15:00:53 +00:00
Daniel Stenberg
5a4b43848a
First commit of David McCreedy's EBCDIC and TPF changes.
2006-04-07 21:50:47 +00:00
Daniel Stenberg
598ffeea89
David McCreedy added CURLINFO_FTP_ENTRY_PATH to export the FTP entry path
2006-03-21 22:30:03 +00:00
Daniel Stenberg
6421d69bff
David McCreedy fixed libcurl to no longer ignore AUTH failures and now it
...
reacts properly according to the CURLOPT_FTP_SSL setting.
2006-03-20 22:51:08 +00:00
Daniel Stenberg
7206181385
David McCreedy found a missing return code assignment
2006-03-13 23:33:46 +00:00
Daniel Stenberg
f70f11fc70
Peter Heuchert's correction for the clear control connection case
2006-03-08 15:46:21 +00:00
Daniel Stenberg
b8c8e7349f
Peter Heuchert made sure the CURLFTPSSL_CONTROL setting for CURLOPT_FTP_SSL
...
is used properly.
2006-03-07 22:28:08 +00:00
Daniel Stenberg
7d68101f83
Prevent uploading to a URL that has no file name part.
2006-03-03 13:09:30 +00:00
Daniel Stenberg
87bcb6f377
Karl M added the CURLOPT_CONNECT_ONLY and CURLINFO_LASTSOCKET options that
...
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-02-11 22:35:16 +00:00
Daniel Stenberg
67bf4f28ff
Michal Marek provided a patch for FTP that makes libcurl continue to try PASV
...
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-24 14:40:43 +00:00
Daniel Stenberg
fcfd6d9504
Duane Cathey was one of our friends who reported that curl -P [IP]
...
(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-19 23:52:03 +00:00
Daniel Stenberg
c31451cf13
Jon Turner pointed out that doing -P [hostname] with curl (built ipv4-only)
...
didn't work.
2006-01-19 22:02:46 +00:00
Daniel Stenberg
d9bd5de0b1
Fixed FTP_SKIP_PASV_IP and FTP_USE_EPSV to "do right" when used on FTP thru
...
HTTP proxy.
2006-01-12 22:18:38 +00:00
Daniel Stenberg
31c7aa0ba4
Michael Jahn fixed ftp over CONNECT
2006-01-12 12:40:04 +00:00
Daniel Stenberg
4431338691
When using a bad path over FTP, as in when libcurl couldn't CWD into all
...
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.
2006-01-10 23:03:22 +00:00
Yang Tse
b15f3bb969
Undo last changes
2005-12-11 23:37:58 +00:00
Yang Tse
e3f523ab2a
Avoid generation of additional warnings
2005-12-11 18:29:18 +00:00
Yang Tse
36485e56ed
Fix compiler warning and compatibility issue with the type of the parameter used in getnameinfo() to receive the length of the sockaddr struct.
2005-12-11 12:03:01 +00:00
Daniel Stenberg
272231fb09
Another Yang Tse warning cleanup raid!
2005-12-05 14:10:48 +00:00
Daniel Stenberg
0fd282b078
new experimental "ftp method" code
2005-11-28 23:06:00 +00:00
Daniel Stenberg
d52ed3fff2
Jan Kunder's debian bug report
...
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=338680 identified a weird
error message for when you try to upload a file and the requested directory
doesn't exist on the target server.
2005-11-14 00:18:12 +00:00
Daniel Stenberg
a5da1219bb
Reversed the logic for sockaddr_storage and made our own Curl_sockaddr_storage
...
struct instead to use.
2005-11-12 22:10:42 +00:00
Daniel Stenberg
37a6a0bb3e
Moved the sockaddr_storage definition to lib/sockaddr.h and only include that
...
in files that actually need the struct.
2005-11-11 22:04:11 +00:00
Daniel Stenberg
29676f473d
David Lang: if there is no sockaddr_storage, make up our own and use that
2005-11-10 22:24:49 +00:00
Daniel Stenberg
3beb2f6b5d
CURL_TIMECOND_IFMODSINCE actually requires that the remote document has been
...
modded since the given time, so we should compare <= and not just <.
2005-10-05 06:09:20 +00:00
Daniel Stenberg
a2902de67c
TJ Saunders of the proftpd project identified and pointed out problems with
...
the modified FTPS negotiation change of August 19 2005. Thus, we revert the
change back to pre-7.14.1 status.
2005-09-27 08:46:54 +00:00
Daniel Stenberg
e7093b3ca8
keep 'socktype' in the connectdata struct and make sure we use that for all
...
protocol sockets even if the resolved address may say otherwise
2005-09-16 21:30:08 +00:00
Daniel Stenberg
0b8ccd0ae7
oops, return error if an error did occur!
2005-09-14 15:04:01 +00:00
Daniel Stenberg
7e845e7cfd
Added FTP_SKIP_PASV_IP and --ftp-skip-pasv-ip
2005-09-04 05:16:06 +00:00
Daniel Stenberg
710ee3b0e0
Norbert Novotny had problems with FTPS and he helped me work out a patch
...
that made curl run fine in his end. The key was to make sure we do the
SSL/TLS negotiation immediately after the TCP connect is done and not after
a few other commands have been sent like we did previously. I don't consider
this change necessary to obey the standards, I think this server is pickier
than what the specs allow it to be, but I can't see how this modified
libcurl code can add any problems to those who are interpreting the
standards more liberally.
2005-08-19 14:41:09 +00:00
Dan Fandrich
6e87cf5b30
Fixed some typos in output messages.
2005-07-21 22:18:35 +00:00
Daniel Stenberg
20005a83d2
Andrew Bushnell provided enough info for me to tell that we badly needed to
...
fix the CONNECT authentication code with multi-pass auth methods (such as
NTLM) as it didn't previously properly ignore response-bodies - in fact it
stopped reading after all response headers had been received. This could
lead to libcurl sending the next request and reading the body from the first
request as response to the second request. (I also renamed the function,
which wasn't strictly necessary but...)
The best fix would to once and for all make the CONNECT code use the
ordinary request sending/receiving code, treating it as any ordinary request
instead of the special-purpose function we have now. It should make it
better for multi-interface too. And possibly lead to less code...
Added test case 265 for this. It doesn't work as a _really_ good test case
since the test proxy is too stupid, but the test case helps when running the
debugger to verify.
2005-07-03 22:25:15 +00:00
Daniel Stenberg
e7012a515c
Now allow TYPE responses to be any 2xx code, and log if it isn't 200.
2005-05-24 09:39:56 +00:00
Daniel Stenberg
ede9fb4fcc
check if getsockname() returns failure before using the address it provides
2005-05-17 09:18:17 +00:00
Daniel Stenberg
723aef71e8
reduced typecasts, from two to one
2005-05-17 09:15:21 +00:00
Gisle Vanem
ecdcb0ef67
Some patches for (a stricter/smarter) gcc 4.0 and
...
warnings like:
'x' may be used uninitialized in this function.
2005-05-14 06:00:40 +00:00
Daniel Stenberg
708ed6fded
silence compiler warnings
2005-05-08 22:45:01 +00:00
Daniel Stenberg
5c30fa50d6
fix warnings about unused variables for non-debug builds
2005-05-07 20:41:16 +00:00
Daniel Stenberg
fc33c424d9
fix
2005-05-07 20:28:39 +00:00
Daniel Stenberg
9c5f79c56a
DEBUGF() is a new conveniant macro to add infof() calls (or similar) for
...
debug builds only. Made the ftp code use it on several places.
2005-05-07 13:57:07 +00:00
Daniel Stenberg
44985e8884
improved failf() error messages
2005-05-02 22:53:55 +00:00
Daniel Stenberg
a31ddd363b
Now configure checks for struct sockaddr_storage and the ftp code tries
...
to survive without it if not found. AIX 4.3 targetted adjustment.
2005-05-02 11:56:15 +00:00
Daniel Stenberg
6b1220b61d
Cory Nelson's work on nuking compiler warnings when building on x64 with
...
VS2005.
2005-04-26 13:08:49 +00:00
Daniel Stenberg
6e61939382
GnuTLS support added. There's now a "generic" SSL layer that we use all over
...
internally, with code provided by sslgen.c. All SSL-layer-specific code is
then written in ssluse.c (for OpenSSL) and gtls.c (for GnuTLS).
As far as possible, internals should not need to know what SSL layer that is
in use. Building with GnuTLS currently makes two test cases fail.
TODO.gnutls contains a few known outstanding issues for the GnuTLS support.
GnuTLS support is enabled with configure --with-gnutls
2005-04-07 15:27:13 +00:00
Daniel Stenberg
758d9fe852
too late hacking error
2005-04-05 21:14:59 +00:00
Daniel Stenberg
ee44eec3e1
Christophe Legry's fix to grok time-conditoned uploads
2005-04-05 20:59:12 +00:00
Daniel Stenberg
371ef80dc3
When doing FTP-SSL, advance to the next state properly when the response to
...
AUTH has been received successfully.
2005-03-29 11:43:02 +00:00
Daniel Stenberg
84b4e9ff7c
Fixed the FTP response reader function to properly deal with responses split
...
up in several chunks when read.
2005-03-29 11:35:25 +00:00
Dan Fandrich
efaf688650
Fixed ftp support with uClibc due to differing inet_ntoa_r() behaviour.
2005-03-15 21:00:46 +00:00
Daniel Stenberg
3916d1e6cb
silence compiler warnings for mingw win32 builds --enable-debug
2005-03-14 15:43:23 +00:00
Daniel Stenberg
62970da675
Removed security.h since it shadows an include file mingw needs when building
...
for SSPI support. The contents of the file has been moved into the krb4.h file.
2005-03-14 00:00:45 +00:00
Daniel Stenberg
702664e959
Dominick Meglio reported that using CURLOPT_FILETIME when transferring a FTP
...
file got a Last-Modified: header written to the data stream, corrupting the
actual data. This was because some conditions from the previous FTP code was
not properly brought into the new FTP code. I fixed and I added test case 520
to verify. (This bug was introduced in 7.13.1)
2005-03-08 08:09:14 +00:00
Daniel Stenberg
aa47ac4c06
Added test case 235 that makes a resumed upload of a file that isn't present
...
on the remote side. This then converts the operation to an ordinary STOR
upload. This was requested/pointed out by Ignacio Vazquez-Abrams.
It also proved (and I fixed) a bug in the newly rewritten ftp code (and
present in the 7.13.1 release) when trying to resume an upload and the servers
returns an error to the SIZE command. libcurl then loops and sends SIZE
commands infinitely.
2005-03-04 23:52:06 +00:00
Daniel Stenberg
b98faaa8c0
Fixed bad krb4 code. It always tried to use krb4 if built enabled.
2005-02-11 22:50:57 +00:00
Daniel Stenberg
e7cefd684b
Removed all uses of strftime() since it uses the localised version of the
...
week day names and month names and servers don't like that.
2005-02-11 00:03:49 +00:00
Daniel Stenberg
17d61e4f29
typecast assign to ftpport from int to prevent warnings
2005-02-10 07:45:26 +00:00
Gisle Vanem
f5394cccb1
Use CURL_SOCKET_BAD.
2005-02-09 14:01:15 +00:00
Gisle Vanem
64dd9c7656
Handle CURLE_LOGIN_DENIED in strerror.c.
...
For ftp only?
2005-02-09 13:59:40 +00:00
Daniel Stenberg
16ae0c6466
FD_SET can be big macro, use braces
2005-02-09 13:47:35 +00:00
Daniel Stenberg
6a2e21ec8c
FTP code turned into state machine. Not completely yet, but a good start.
...
The tag 'before_ftp_statemachine' was set just before this commit in case
of future need.
2005-02-09 13:06:40 +00:00
Gisle Vanem
82b93e4945
Don't free too much in freedirs() if realloc() fails.
2005-02-08 12:32:28 +00:00
Daniel Stenberg
29350b363b
Eric Vergnaud found a use of an uninitialized variable
2005-02-04 23:43:44 +00:00
Daniel Stenberg
c4ff5eb0ca
conn->ip_addr MUST NOT be used on re-used connections
2005-01-29 13:07:16 +00:00
Daniel Stenberg
064bc3ecbc
Stephen More pointed out that CURLOPT_FTPPORT and the -P option didn't work
...
when built ipv6-enabled. I've now made a fix for it. Writing test cases for
custom port strings turned too tricky so unfortunately there's none.
2005-01-28 08:26:36 +00:00
Daniel Stenberg
177dbc7be0
Ian Ford asked about support for the FTP command ACCT, and I discovered it is
...
present in RFC959... so now (lib)curl supports it as well. --ftp-account and
CURLOPT_FTP_ACCOUNT set the account string. (The server may ask for an account
string after PASS have been sent away. The client responds with "ACCT [account
string]".) Added test case 228 and 229 to verify the functionality. Updated
the test FTP server to support ACCT somewhat.
2005-01-25 22:13:12 +00:00
Daniel Stenberg
7e42cb61f7
FTP third transfer support overhaul. See CHANGES for details.
2005-01-21 09:32:32 +00:00
Daniel Stenberg
3050ae57c0
Stephan Bergmann made libcurl return CURLE_URL_MALFORMAT if an FTP URL
...
contains %0a or %0d in the user, password or CWD parts. (A future fix would
include doing it for %00 as well - see KNOWN_BUGS for details.) Test case 225
and 226 were added to verify this
2005-01-19 21:56:02 +00:00
Daniel Stenberg
e3d342df96
avoid an extra malloc
2004-12-17 10:09:32 +00:00
Daniel Stenberg
ccf65be0a4
fixed minor memory leak when running out of memory
2004-12-17 09:00:19 +00:00
Daniel Stenberg
7dfef13224
oops, add missing return keyword
2004-12-17 08:58:48 +00:00
Daniel Stenberg
6e1e9caa32
Based on Gisle Vanem's patch: make sure the directory re-use works even when
...
a URL-encoded path is used.
2004-12-16 22:20:33 +00:00
Daniel Stenberg
8d4ac69175
reduced the number of sub-blocks
2004-12-16 18:18:23 +00:00
Dan Fandrich
a28b32aa45
Make some arrays of pointers const, too.
2004-12-15 02:32:04 +00:00
Daniel Stenberg
fec571f5b0
modified to use the current error code name, not the obsolete one
2004-12-11 22:18:11 +00:00
Daniel Stenberg
c78ee11c41
CURLFTPSSL_ALL should make sure that the transfer fails if the data connection
...
isn't set to encrypted properly
2004-12-07 10:00:20 +00:00
Daniel Stenberg
35944744f8
Richard Atterer fixed libcurl's way of dealing with the EPSV
...
response. Previously, libcurl would re-resolve the host name with the new
port number and attempt to connect to that, while it should use the IP from
the control channel. This bug made it hard to EPSV from an FTP server with
multiple IP addresses!
2004-12-05 23:33:33 +00:00
Daniel Stenberg
0966ddafaa
As reported in Mandrake's bug tracker bug 12285
...
(http://qa.mandrakesoft.com/show_bug.cgi?id=12285 ), when connecting to an
IPv6 host with FTP, --disable-epsv (or --disable-eprt) effectively disables
the ability to transfer a file. Now, when connected to an FTP server with
IPv6, these FTP commands can't be disabled even if asked to with the
available libcurl options.
2004-11-29 21:25:07 +00:00
Daniel Stenberg
a4752673bb
typecast the coversion from long to int
2004-11-27 09:27:48 +00:00
Daniel Stenberg
2459e1e268
removed no longer used variable
2004-11-26 08:52:18 +00:00
Daniel Stenberg
bf51f05a50
FTP improvements:
...
If EPSV, EPRT or LPRT is tried and doesn't work, it will not be retried on
the same server again even if a following request is made using a persistent
connection.
If a second request is made to a server, requesting a file from the same
directory as the previous request operated on, libcurl will no longer make
that long series of CWD commands just to end up on the same spot. Note that
this is only for *exactly* the same dir. There is still room for improvements
to optimize the CWD-sending when the dirs are only slightly different.
Added test 210, 211 and 212 to verify these changes. Had to improve the
test script too and added a new primitive to the test file format.
2004-11-25 22:21:49 +00:00
Daniel Stenberg
1a05a90f1c
David Phillips' FD_SETSIZE fix
2004-11-19 08:52:33 +00:00
Daniel Stenberg
24d47a6e07
Paul Nolan fix to make libcurl build nicely on Windows CE
2004-11-02 10:12:22 +00:00
Daniel Stenberg
2730842559
Dan Fandrich's better ifdef for include fix
2004-10-21 08:22:07 +00:00
Daniel Stenberg
21d5aead47
Alexander Krasnostavsky made the CURLOPT_FTP_CREATE_MISSING_DIRS option work
...
fine even for third party transfers.
2004-10-16 14:06:54 +00:00
Daniel Stenberg
39af394a1c
removed tabs and trailing whitespace from source
2004-10-06 07:50:18 +00:00
Daniel Stenberg
d239fc5d04
Aleksandar Milivojevic reported a problem in the Redhat bugzilla (see
...
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=134133 ) and not to anyone
involved in the curl project! This happens when you try to curl a file from a
proftpd site using SSL. It seems proftpd sends a somewhat unorthodox PASS
response code (232 instead of 230). I relaxed the response code check to deal
with this and similar cases.
2004-10-01 11:22:11 +00:00
Daniel Stenberg
6af6a2bbe8
Fixed an error message: we use CWD, we don't cd into dirs with FTP
2004-09-29 07:21:23 +00:00
Daniel Stenberg
6a06667cc0
Added CURLOPT_FTPSSLAUTH
2004-09-16 21:45:16 +00:00
Daniel Stenberg
e99bf99829
revert the change for the new date parser, as the new one can deal with
...
the old format now
2004-09-13 20:43:12 +00:00
Daniel Stenberg
27d509cfe9
Minor adjustment needed for the new date parser to succeed. ifdef'ed out
...
for now.
2004-09-11 19:19:59 +00:00
Daniel Stenberg
df59ca1a45
include the server response in the error message when an FTP server gives
...
back a 530 after the password is provided, as it isn't necessary because of a
bad user name or password.
2004-08-11 08:39:48 +00:00
Daniel Stenberg
9dbd6659dc
more typecasts to please picky compilers
2004-08-10 06:41:13 +00:00
Daniel Stenberg
4c17ba4fc0
make sure the 3rd argument passed to bind() is a socklen_t
2004-07-04 21:48:54 +00:00
Daniel Stenberg
31c332af93
typecast the conversion from long to int to prevent picky compiler warnings
2004-07-04 21:35:12 +00:00
Daniel Stenberg
f05d47ddd6
variable type cleanup to fix picky compiler warnings
2004-07-01 07:43:20 +00:00
Daniel Stenberg
8efa6f407d
I think 1024 bytes is enough for even most ipv6 addresses :-)
2004-06-30 12:04:37 +00:00
Daniel Stenberg
feb2dd2835
Replaced all uses of sprintf() with the safer snprintf(). It is just a
...
precaution to prevent mistakes to lead to buffer overflows.
2004-06-24 11:54:11 +00:00
Daniel Stenberg
c39858aac0
Source cleanups. The major one being that we now _always_ use a Curl_addrinfo
...
linked list for name resolved data, even on hosts/systems with only IPv4
stacks as this simplifies a lot of code.
2004-06-24 07:43:48 +00:00
Daniel Stenberg
90037b85d1
Alexander Krasnostavsky's fix to make libcurl build fine with configure
...
--disable-http, which thus builds a libcurl without HTTP support.
2004-06-09 08:23:55 +00:00
Daniel Stenberg
ea81dd9e2e
Alexander Krasnostavsky's FTP third party transfer (proxy) support
2004-06-03 11:41:05 +00:00
Daniel Stenberg
a8827b1ed6
Gisle made ftp_mkd static
2004-06-02 11:34:53 +00:00
Daniel Stenberg
2c43d64302
Added a new 'bit' in the connect struct named 'tunnel_proxy' that is set
...
if a connection is tunneled through a proxy. A tunnel is done with CONNECT,
either when using HTTPS or FTPS, or if explicitly enabled by the app.
2004-05-26 08:54:36 +00:00
Daniel Stenberg
d60c22572b
Curl_done() and the protocol-specific conn->curl_done() functions now all
...
take a CURLcode as a second argument, that is non-zero when Curl_done()
is called after an error was returned from Curl_do() (or similar).
2004-05-12 12:06:39 +00:00
Daniel Stenberg
bbafb2eb27
curl_global_init_mem() allows the memory functions to be replaced.
...
memory.h is included everywhere for this.
2004-05-11 11:30:23 +00:00
Daniel Stenberg
4b9f8e766d
Made host name and proxy name get stored in a 'struct hostname' and set
...
all things up to work with encoded host names internally, as well as keeping
'display names' to show in debug messages. IDN resolves work for me now using
ipv6, ipv4 and ares resolving. Even cookies on IDN sites seem to do right.
2004-04-27 13:56:23 +00:00
Daniel Stenberg
245e3122df
Made defines instead of plain numbers for the Curl_resolv() return code to
...
make the code easier to read
2004-04-26 14:18:00 +00:00
Daniel Stenberg
1d3f76df71
If only a partial file was transfered, we consider that a fatal problem so
...
we won't try to QUIT the control connection and risk "hanging" waiting for
a response. Test case 161 verifies this. The quit-sending function was
also made static.
2004-04-22 13:09:00 +00:00
Daniel Stenberg
3233322622
increase the headerbytecount for incoming "headers"
2004-04-21 08:47:57 +00:00
Daniel Stenberg
b7a7600465
Cleaned up hostname/name/gname and path/ppath confusion. Removed the fixed-
...
length limit of the hostname part of the URL.
2004-04-20 07:53:24 +00:00
Daniel Stenberg
592522ceaf
ftp->dirs[] is no longer terminated with a zero entry but ftp->dirdepth
...
should be used
2004-04-15 10:43:40 +00:00
Daniel Stenberg
4f84e6d9e2
removed the fixed dir depth limit in the FTP code
2004-04-15 07:52:39 +00:00
Daniel Stenberg
cf1f46e1ca
renamed the strtoofft() macro to curlx_strtoofft() to adjust to the curlx_*
...
concept, and added lib/README.curlx to explain details about it
2004-04-07 07:30:40 +00:00
Daniel Stenberg
8ed44e8dfb
New authentication code added, particularly noticable when doing POST or PUT
...
with Digest or NTLM. libcurl will now use HEAD to negotiate the authentication
and when done perform the requested POST.
2004-04-06 15:14:10 +00:00
Daniel Stenberg
5804c995e1
Use the new HAVE_NI_WITHSCOPEID define instead of merely checking for the
...
existance of NI_WITHSCOPEID since some platforms have that define but still
can't function with it set.
2004-03-31 21:33:52 +00:00
Daniel Stenberg
ce446dbdc2
Moved the NI_WITHSCOPEID magic #ifdef to the top of the file and made sure
...
we use the NIFLAGS properly on both places in the code that use getnameinfo().
2004-03-31 10:59:48 +00:00
Daniel Stenberg
762dcf0780
include the strerror.h file without curl_ prefix
2004-03-25 13:42:23 +00:00
Daniel Stenberg
b60d6404d8
Gisle Vanem's fix to replace the bad use of strerror(). This introduces
...
Curl_strerror() that attempts to be thread-safe _and_ works on Windows too!
2004-03-24 22:45:37 +00:00
Daniel Stenberg
5b55f9ecb3
Gnter Knauf's NetWare changes.
2004-03-17 12:46:42 +00:00
Daniel Stenberg
e545e33d5f
Gisle Vanem's fixes to use CURL_SOCKET_BAD more instead of -1 for sockets.
2004-03-11 13:13:35 +00:00
Daniel Stenberg
0d1fc73f21
Use more curl_off_t variables when doing the progress meter calculations and
...
argument passing and try to convert to double only when providing data to the
external world.
2004-03-10 16:20:33 +00:00
Daniel Stenberg
85838a8966
turn niflags into a define named NIFLAGS
2004-03-10 15:24:56 +00:00
Daniel Stenberg
ce5805a955
Use curl_socket_t instead of int for holding sockets. The typedefs and
...
defines are in setup.h.
2004-03-09 22:52:50 +00:00
Daniel Stenberg
ef0a2c714b
clearly tell that these are ftp response timeouts
2004-03-05 09:37:48 +00:00
Daniel Stenberg
5e7f1a0eaf
more variable type cleanups
2004-03-03 13:24:14 +00:00
Daniel Stenberg
eb9383d49b
our timeout values are longs while 'tv_sec' is int
2004-03-03 13:17:44 +00:00
Daniel Stenberg
353f764119
Yet another curl_off_t printf format attempt, we now exclude the %-letter from
...
FORMAT_OFF_T to allow additional options to get specified, like with '"%5"
FORMAT_OFF_T'.
2004-03-02 09:31:18 +00:00
Daniel Stenberg
7ab3b5b3bb
use FORMAT_OFF_T instead of CURL_FORMAT_OFF_T to reduce the complexity of
...
having to redef that name
2004-03-02 07:25:39 +00:00
Daniel Stenberg
cb72a80fe0
Use CURL_FORMAT_OFF_T for printf()inf curl_off_t variables.
2004-03-01 16:28:00 +00:00
Daniel Stenberg
4dfc0a78e7
Only attempt to send the FTP QUIT command if we actually have a FTP struct.
2004-03-01 07:59:25 +00:00
Daniel Stenberg
77268e0649
Joe Halpin made the FTP code send 'QUIT' on the control connection before
...
it disconnects the TCP connection, like a good ftp client should!
2004-02-27 07:08:37 +00:00
Daniel Stenberg
d571064b65
Clear up int/long/size_t/ssize_t usage a bit
2004-02-26 13:40:43 +00:00
Daniel Stenberg
1b26fe39f9
Tor Arntsen's fix for the bad (64bit wise) typecast when using gmtime()
2004-02-13 06:59:49 +00:00
Daniel Stenberg
011929cf4d
Tor Arntsen's patch for working around a notorious bug in the AIX5
...
getaddrinfo() implementation.
2004-02-09 07:52:36 +00:00
Daniel Stenberg
6587ff440a
use the timeout options when waiting for the server to connect when using
...
PORT
Provide better error messages to allow debugging if one if the ipv6-related
name functions fail in the ftp_use_port() function. This might help us
diagnose the problems on AIX. Also make sure getaddrinfo() uses NULL and
not "0" for the service argument.
2004-02-05 09:26:01 +00:00
Daniel Stenberg
556b68f44e
the unused quit-function didn't pass a correct variable type to the
...
response reading function
2004-02-03 09:52:32 +00:00
Daniel Stenberg
4d17d6876e
Dan Fandrich's cleanup patch to make pedantic compiler options cause less
...
warnings. Minor edits by me.
2004-01-29 13:56:45 +00:00
Daniel Stenberg
b791e158f0
use curl_off_t instead of off_t!
2004-01-22 12:45:50 +00:00
Daniel Stenberg
5e2fcc1f74
use the proper timecond defines, not the obsolete ones I've removed! ;-)
...
The initial QUIT-sending code is added, but not yet used due to the issues
previously mentioned on the mailing list.
2004-01-21 08:50:08 +00:00
Daniel Stenberg
053f6c85ef
updated year in the copyright string
2004-01-07 09:19:33 +00:00
Daniel Stenberg
b60e0fa97e
David J Meyer's large file support.
2004-01-05 22:29:29 +00:00
Daniel Stenberg
ee337309cf
better human error message when a FTP response can't be read
2003-12-08 13:06:08 +00:00
Daniel Stenberg
8ccc1148d9
my contentlength adjustment broke the ftp download range stuff, this makes
...
it work again
2003-12-03 08:26:31 +00:00
Daniel Stenberg
1b99d33b59
fix compiler warnings
2003-12-02 13:40:12 +00:00
Daniel Stenberg
800052dc50
use the HAVE_KRB4 define instead of just KRB4
2003-12-02 13:27:29 +00:00
Daniel Stenberg
2c22feced2
fixes from Gisle Vanem to try 'AUTH SSL' before 'AUTH TLS', edited by me
2003-12-02 13:21:53 +00:00
Daniel Stenberg
cd653f1be9
FTPS now works with active ftp and uploads too.
2003-12-01 10:14:39 +00:00
Daniel Stenberg
d5d55a856e
adjusted code to the new socket fields in the sessionhandle struct
2003-11-24 09:04:09 +00:00
Daniel Stenberg
1e98727c55
FTPS support added as RFC2228 and the murray-ftp-auth-ssl draft describe it
2003-11-24 07:15:37 +00:00
Daniel Stenberg
edce444551
If a partial file has been read or written, force a closure the existing
...
connection to avoid re-use of it, since we cannot know in what state it is.
2003-11-19 14:36:42 +00:00
Daniel Stenberg
17a834bc63
After Sbastien Willemijns' bug report, we now check the separators properly
...
in the 229-reply servers respond on a EPSV command and bail out better if
the reply string is not valid RFC2428-compliant.
2003-11-10 08:12:53 +00:00
Daniel Stenberg
a7aacac5e8
assume that MDTM returns the timestamp as UTC
2003-10-31 21:36:43 +00:00
Daniel Stenberg
46accd62d1
when getting headers only, stop pretending the reported time is GMT, as it
...
isn't. In fact, it might be, but we have no idea.
2003-10-30 09:06:24 +00:00
Daniel Stenberg
656d4b4c20
if malloc fails, we must bail out nicely
2003-10-24 12:58:59 +00:00
Daniel Stenberg
65dab79ca5
gcc -Wshadow complaints fixed
2003-10-18 20:14:33 +00:00
Daniel Stenberg
ce5db9a86e
Dominick Meglio implemented CURLOPT_MAXFILESIZE and --max-filesize.
2003-10-17 13:11:00 +00:00
Daniel Stenberg
9e3f54431d
made the code deal with empty name and password
2003-10-17 09:26:28 +00:00
Daniel Stenberg
749f5387c1
Gisle Vanem's IPv6-on-Windows patch applied!
2003-10-14 12:00:45 +00:00
Daniel Stenberg
45ef092cc2
Jon Turner mentioned this bug fix to correct how libcurl deals with paths
...
after a failed transfer.
2003-10-04 15:25:02 +00:00
Daniel Stenberg
cc497fd153
don't use a blank proxy
2003-09-11 22:05:23 +00:00
Daniel Stenberg
f2d422235b
Early Ehlinger's CURLOPT_FTP_RESPONSE_TIMEOUT patch applied.
2003-09-03 22:02:40 +00:00
Daniel Stenberg
2ad0a7d20f
minor fix to make better bail-out check
2003-09-03 21:44:59 +00:00
Daniel Stenberg
4459d3b434
have cwd_and_mkd prefixed with ftp_ to make it appear as a ftp-only
...
function
2003-08-22 12:35:18 +00:00
Daniel Stenberg
d00e4a377b
store the FTP response code in the httpcode variable
2003-08-20 15:41:45 +00:00
Daniel Stenberg
5dadbd094e
don't claim the PASV connect is connected unless it *really* is!
2003-08-10 17:11:41 +00:00
Daniel Stenberg
7954eee639
re-arranged the cwd/mkd stuff a bit
2003-08-08 09:55:16 +00:00
Daniel Stenberg
f9f1f0e316
Early Ehlinger's CURLOPT_FTP_CREATE_MISSING_DIRS patch was applied
2003-08-08 09:13:19 +00:00
Daniel Stenberg
b73612392d
ares awareness/usage/support added. If configure --enable-ares is used, we
...
build libcurl to use ares for asynch name resolves.
2003-08-05 14:40:59 +00:00
Daniel Stenberg
1e7e53c87e
clean up the dir tree hierarchy in *_done() to make persistant connection
...
FTP use the correct directories!
Reported in bug report #783116
2003-08-05 13:04:10 +00:00
Daniel Stenberg
e3b4dd08ff
Daniel Noguerol made the ftp code output "Accept-Ranges: bytes" in similar
...
style like other faked HTTP headers when NOBODY and HEADER are used.
2003-07-30 07:51:33 +00:00
Daniel Stenberg
1c35cbcc07
Reverted the 'filetime' struct field back to a 'long' as time_t is sometimes
...
unsigned and we want this to be able to hold -1 for illegal/unset values.
2003-07-30 07:22:28 +00:00
Daniel Stenberg
d9246ff24d
Franois Pons brought a patch that once again made curl deal with ftp and
...
"double slash" as indicating the root directory. In the RFC1738-fix of April
30, that ability was removed (since it is not the "right" way).
2003-07-28 08:50:02 +00:00
Daniel Stenberg
56014e74a0
krb4-fixes for the moved user+password fields within the structs
2003-07-21 09:19:48 +00:00
Daniel Stenberg
5e133e2dff
David Gardner pointed out in bug report 770755 that using the FTP command CWD
...
with a blank argument is a bad idea. Now skip blanks.
2003-07-20 00:18:11 +00:00
Daniel Stenberg
52b631fade
Access the user and passwd fields from the connectdata struct now instead
...
of the sessionhandle struct, as that was not good.
2003-07-19 23:56:33 +00:00
Daniel Stenberg
81d403e207
one typecast less for the localtime(), use CURLDEBUG instead of MALLOCDEBUG
2003-06-26 06:52:48 +00:00
Daniel Stenberg
e2f4656a86
Ricardo Cadime found a socket leak when listing directories without
...
contents. Test cases 144 and 145 were added to verify the fix.
Now we deal with return code 450 properly and other codes also do proper
cleanup.
2003-05-23 11:14:09 +00:00
Daniel Stenberg
22569681bc
George Comninos provided a fix that calls the progress meter when waiting
...
for FTP command responses take >1 second.
2003-05-14 06:31:00 +00:00
Daniel Stenberg
a51258b6bb
before using if2ip(), check if the address is an ip address and skip it if
...
it is.
2003-05-13 12:11:31 +00:00
Daniel Stenberg
9ead79c9d4
when we have accepted the server's connection in a PORT sequence, we set
...
the new socket to non-blocking
2003-05-12 12:37:35 +00:00
Daniel Stenberg
94a157d0b0
support for CURLOPT_FTP_USE_EPRT added
2003-05-09 07:39:29 +00:00
Daniel Stenberg
3ef06d7efe
when making up the list of path parts, save the last entry pointing to NULL
...
as otherwise we'll go nuts
2003-04-30 20:04:17 +00:00
Daniel Stenberg
bf2b3dbf3e
David Balazic's patch to make the FTP operations "do right" according to
...
RFC1738, which means it'll use one CWD for each pathpart.
2003-04-30 16:59:42 +00:00
Daniel Stenberg
028e9cc56f
According to RFC959, CWD is supposed to return 250 on success, but
...
there seem to be non-compliant FTP servers out there that return 200,
so we accept any '2xy' response now.
2003-04-11 08:10:54 +00:00
Daniel Stenberg
a4ffcfd4d5
timecond support added
...
made the Last-Modified (faked) header look correct using GMT always
2003-04-09 11:56:31 +00:00
Daniel Stenberg
3cba274ba6
kill a compiler warning on cygwin
2003-04-03 14:16:15 +00:00
Daniel Stenberg
853e240e1d
Use ssize_t instead of 'int' to make the 64 bit sparc compiler happier.
...
Fix by Richard Gorton.
2003-03-11 18:58:21 +00:00
Daniel Stenberg
52ebf50607
It appears that there are FTP-servers that return size 0 for files
...
when SIZE is used on the file while being in BINARY mode. To work
around that (stupid) behavior, we attempt to parse the RETR response
even if the SIZE returned size zero.
Debugging help from Salvatore Sorrentino on February 26, 2003.
2003-02-27 12:50:54 +00:00
Jean-Philippe Barette-LaPierre
beb13a1d3e
added the sharing of DNS cache
2003-02-04 23:48:46 +00:00
Daniel Stenberg
89934239d7
reset conn->size to -1 on the ftp-do function to make it not go on to
...
ftp_done() with the previous transfer's value, as Dave Halbakken found out.
He also verified this fixed corrected the problem.
2003-01-29 10:54:39 +00:00
Daniel Stenberg
a7c72b7abf
removed the local variables for emacs and vim, use the new sample.emacs
...
way for emacs, and vim users should provide a similar non-polluting style
2003-01-29 10:14:20 +00:00
Daniel Stenberg
f26a338a54
copyright year update in the source header
2003-01-16 21:08:12 +00:00
Daniel Stenberg
37ae32f688
Only output valid filetime.
...
Return file-error if 550 is returned when trying MDTM
2003-01-07 11:25:44 +00:00
Daniel Stenberg
4bcc866c52
The fread() callback pointer and associated pointer is now stored in the
...
connectdata struct instead, and is no longer modified within the 'set' struct
as previously (which was a really BAAAD thing).
2002-12-09 15:37:54 +00:00
Daniel Stenberg
d72aa49126
The waiting for the 226 or 250 line expected to come after a transfer is
...
complete is now only made for 60 seconds and if no data was received during
those 60 seconds, we store a special error message (preparing to make this
a special error code) as this most likely means that the control connection
has died while we were transferring data.
2002-12-04 08:56:55 +00:00
Daniel Stenberg
d0b97f7e1f
Curl_GetFTPResponse() takes a different set of parameters and now return a
...
proper CURLcode. The default timeout for reading one response is now also
possible to change while running.
2002-12-03 10:25:31 +00:00
Daniel Stenberg
ff5308a5af
if the PWD reply parser failed, we leaked memory
2002-12-02 07:18:24 +00:00
Daniel Stenberg
42acb00c81
moved the bools in the connectdata struct into the substruct named
...
ConnectBits where the other bools already are
2002-11-11 23:03:03 +00:00
Daniel Stenberg
66eb98bb0a
unlock dns cache entries with a function call instead of a variable fiddle
2002-11-11 22:36:00 +00:00
Daniel Stenberg
0ff1ca30c3
ipv4-fixes for the new Curl_dns_entry struct and Curl_resolv() proto
2002-11-05 11:07:49 +00:00
Daniel Stenberg
2cff251863
Curl_resolv() now returns a different struct, and it contains a reference
...
counter so that the caller needs to decrease that counter when done with
the returned data.
If compiled with MALLOCDEBUG I've added some extra checking that the counter
is decreased before a handle is closed etc.
2002-11-05 10:51:41 +00:00
Daniel Stenberg
b8a6913e09
prevent compiler warnings
2002-10-28 19:20:59 +00:00
Daniel Stenberg
aef3131e92
Craig Markwardt made the "struct hostent_data" get cleared too, as is
...
needed on Tru64 (or something).
2002-09-20 14:40:14 +00:00
Daniel Stenberg
ba4e69bebc
updated source code boilerplate/header
2002-09-03 11:52:59 +00:00
Daniel Stenberg
27a2e590cd
SSL_INSECURE support and usage added
2002-08-26 23:13:25 +00:00
Daniel Stenberg
6561ec524b
don't attempt to ftp_cwd() on a NULL path
2002-08-26 22:00:01 +00:00
Daniel Stenberg
cb895ec335
Initial fix to make the multi interface return control while waiting for
...
the initial connect to "come through".
This should work fine for connect and for FTP-PASV connects. Needs massive
testing.
2002-08-12 09:43:20 +00:00
Daniel Stenberg
ecd29a289a
corrected some warnings
2002-08-01 14:30:42 +00:00
Daniel Stenberg
e7d0af72e3
Changed the PORT command to pick a better default IP address if "-" is used.
...
It now uses the local IP adress of the control connection.
2002-08-01 14:25:12 +00:00
Daniel Stenberg
93f1784526
Remade the FTP not-check status line and not-attempt-to-read-status-line
...
variables, conditions and things.
2002-06-14 06:57:00 +00:00
Daniel Stenberg
559dc503c2
Tom Mattison's report found out, and this is the fix that should prevent
...
FTP from closing the connections a little too often!
2002-06-13 22:22:59 +00:00
Daniel Stenberg
3c63e1d8d9
Added 'dont_check' to be set during an FTP operation if the final status
...
message is supposed to be ignored.
2002-06-13 09:21:08 +00:00
Daniel Stenberg
cae555c977
when no FTP transfer was done, don't attempt to read the download transfer
...
thing. The 'resumed' flag is also causing confusions. I'll deal with that
tomorrow.
2002-06-12 22:05:28 +00:00
Daniel Stenberg
17b784381e
kris@freebsd.org fixed a few bad format strings
2002-06-12 07:44:22 +00:00
Daniel Stenberg
4fe252847c
ftp range downloads make us ignore the final status message as the server
...
will most likely treat the download as failed as we might abort it
pre-maturely
2002-06-11 12:35:03 +00:00
Daniel Stenberg
08ef208fb7
added disable-[protocol] support, largely provided by Miklos Nemeth
2002-06-11 11:13:01 +00:00
Daniel Stenberg
62032ee248
Getting an empty FTP file no longer makes us return error 19. An empty file
...
is fine to get.
2002-05-28 22:33:30 +00:00
Daniel Stenberg
c64fca1b0c
Fixed the FTP response reader to deal with timeouts better. Previously it
...
would reset the timeout for each incoming data, which would make veeery
slow responses be allowed to take even more time since the timeout would only
be reached if the time between two received data chunks was longer than the
set timeout value...
2002-04-27 13:24:06 +00:00
Daniel Stenberg
15b2a3af91
(Curl_GetFTPResponse) moved some code to only get performed when actually
...
needed
2002-04-27 13:09:37 +00:00
Daniel Stenberg
f564905ac4
adjusted to the new Curl_resolv() proto
2002-04-25 19:26:29 +00:00
Daniel Stenberg
8927ddec16
In order to not get problems with DNS cache pruning, we no longer store
...
any name resolved data in any curl handle struct. That way, we won't mind
if the cache entries are pruned for the next time we need them. We'll just
resolve them again instead.
This changes the Curl_resolv() proto. It modifies the SessionHandle struct
but perhaps most importantly, it'll make the internals somewhat dependent
on the DNS cache not being disabled as that will cripple operations somewhat.
Especially for persistant connections.
2002-04-25 19:00:57 +00:00
Daniel Stenberg
53c0e97117
removed unused variable
2002-04-14 07:33:44 +00:00
Daniel Stenberg
3f6133be27
Jean-Philippe Barrette-LaPierre provided his patch that introduces
...
CURLOPT_DEBUGFUNCTION and CURLOPT_DEBUGDATA.
2002-04-12 07:21:11 +00:00
Daniel Stenberg
d560207ea1
This corrects VERBOSE PASV ftp transfers on AIX (and OSF1/Tru64)
...
Gerhard Herre reported this in bug report #536238
2002-04-04 06:07:56 +00:00
Daniel Stenberg
ca9760756a
verbose FTP PASV output could output a "random" name from the stack based
...
array
Also, uploading data with --crlf cannot check that the proper size was
uploaded and thus should not warn if the sizes differ. This can be changed
in the future by having the expected size in the connectdata struct and then
increase the expected size for each byte that is added in the --crlf
replacement process.
2002-03-20 10:52:24 +00:00
Daniel Stenberg
974f314f57
copyright string (year) update
2002-03-19 07:54:55 +00:00
Daniel Stenberg
5c691ed835
verbose PASV transfers passed a bad buffer size to the name resolver functions
...
and it cause cause a crash.
Albert Choy found and fixed it.
2002-03-16 16:59:47 +00:00
Daniel Stenberg
76fe69b133
no longer attempts to SIZE a NULL pointer, as that wasn't very clever
...
(but didn't crash or anything)
2002-03-13 13:13:19 +00:00
Daniel Stenberg
80b004a57d
Wesley Laxton's CURLOPT_PREQUOTE work
2002-02-28 23:31:23 +00:00
Daniel Stenberg
721b05e343
Nico Baggus' VMS tweaks
2002-02-20 13:46:53 +00:00
Daniel Stenberg
49f7fa82b9
#if [undefined] => #ifdef [undefined]
2002-01-18 13:04:48 +00:00
Daniel Stenberg
a312127c91
made gcc -Wcast-align happy
2002-01-18 12:56:10 +00:00
Daniel Stenberg
b6dba9f5dd
Somewhat ugly fix to deal with non-blocking sockets. We just loop and try
...
again. THIS IS NOT A NICE FIX. We should/must make a select() then and only
retry when we can write to the socket again.
2002-01-16 14:46:00 +00:00
Daniel Stenberg
4931fbce49
Curl_read() now returns a negative return code if EWOULDBLOCK or similar
2002-01-14 23:14:59 +00:00
Daniel Stenberg
ae9bf16dee
#include the local "inet_ntoa_r.h" file if no proto was found in the global
...
header directory but the function *is* present!
2002-01-04 09:35:23 +00:00
Daniel Stenberg
17a8bf212f
The buffer in ftp_pasv_verbose(), used for gethostbyaddr_r(), is now defined
...
to become properly 8-byte aligned on 64-bit archs. Philip Gladstone reported.
2002-01-04 09:17:52 +00:00
Daniel Stenberg
4fc76afef4
The FTP response lines are now passed to the function callback registered for
...
headers.
2002-01-04 09:03:11 +00:00
Daniel Stenberg
6de7dc5879
Sterling Hughes' provided initial DNS cache source code.
2002-01-03 10:22:59 +00:00
Daniel Stenberg
0077b9c0a2
pass an 'int' as the third argument to bind()
2002-01-03 00:51:33 +00:00
Daniel Stenberg
fe37fb5921
Philip Gladstone's 64-bit sparc native compiler compatibility issues fixed.
2002-01-02 10:06:47 +00:00
Daniel Stenberg
28027c2aa2
If nobody is set we won't download any FTP file. If include_header is set,
...
we return a set of headers not more. This enables FTP operations that don't
transfer any data, only perform FTP commands.
2001-12-20 11:22:01 +00:00
Daniel Stenberg
e192261788
failf() calls should not have newlines in the message string!
2001-12-11 13:13:01 +00:00
Daniel Stenberg
779043f7a3
As Eric Lavigne pointed out, the ftp response reader MUST cache data that
...
is not dealt with when we find an end-of-response line, as there might be
important stuff even after the correct line. So on subsequent invokes, the
cached data must be used!
2001-12-03 13:48:59 +00:00
Daniel Stenberg
332eb7651a
CURLOPT_FTP_USE_EPSV can now be set to FALSE to prevent libcurl from
...
attempting to use EPSV before the standard PASV.
2001-11-28 23:20:14 +00:00
Daniel Stenberg
f0d3fccd4b
Added EPSV which is now unconditionally always tried before PASV, which
...
makes it work reaaaaly nicely on IPv6-enabled hosts!
Added SIZE before RETR is made, always done on downloads. It makes us know
the size prior to download much more frequently.
Unfortunately, this breaks all the FTP test cases. *fixfixfix*
2001-11-28 13:05:39 +00:00
Daniel Stenberg
aff19f64b5
use in_addr_t for inet_addr() return code. Now, now portable is this *REALLY*?
...
We should add some configure tests for this!
2001-11-28 12:16:52 +00:00
Daniel Stenberg
bbf80d0f93
commented out the EPSV support
2001-11-27 00:50:52 +00:00
Daniel Stenberg
6003f24f78
initial code added to support EPSV (IPv6-style PASV)
2001-11-27 00:48:45 +00:00
Daniel Stenberg
1c8da21083
Eric fixed a wild write
2001-11-22 09:40:34 +00:00
Sterling Hughes
8d62e21072
looks better on one line (testing the cvs diffing via mail, but I also think
...
this looks a bit better ;)
2001-11-15 14:16:13 +00:00
Daniel Stenberg
6aafc2dfd2
corrected the ftp_getsize() usage, as the HPUX compiler warned on them
2001-11-13 12:46:29 +00:00
Daniel Stenberg
65b22480f4
uninitialized variable
2001-11-13 12:09:05 +00:00
Daniel Stenberg
c7cdb0f266
make sure to "read out" the server reply even if we didn't get any data from
...
the server when that's the only error
2001-11-12 22:27:05 +00:00
Daniel Stenberg
96fb118251
added comments and function headers
2001-11-01 12:47:22 +00:00
Daniel Stenberg
99888388dc
Use Curl_tvdiff to compare times
2001-11-01 12:17:51 +00:00
Daniel Stenberg
027fc719cc
fixed FTPSENDF for ipv6 compiles
2001-10-31 20:59:24 +00:00
Daniel Stenberg
7e6a36ea7b
major commit, now we check the return code on every invoke of Curl_ftpsendf
...
- which now is made using a macro named FTPSENDF. I turned it all caps just
to make it more visible that it is in fact a macro.
2001-10-31 14:56:12 +00:00
Sterling Hughes
8e91d5de8e
looks nicer and is better compatible with older vim versions
2001-10-11 09:32:19 +00:00
Daniel Stenberg
5d9ae88f58
getaddrinfo() cleanups
2001-10-04 13:25:12 +00:00
Daniel Stenberg
51ca5fcbe0
major connecting updates
2001-10-02 09:40:06 +00:00
Daniel Stenberg
9d342bbf07
sessionhandle->hp => hostaddr
2001-10-01 22:31:43 +00:00
Daniel Stenberg
5cd267b2be
removed obsoletetd myalarm() calls
2001-10-01 11:35:29 +00:00
Daniel Stenberg
ae2ecfc5cb
removed the socket argument from some functions that always passed in the
...
same socket and it was available from the passed-in struct anyway!
2001-09-28 09:15:19 +00:00
Daniel Stenberg
cc610f0d1f
now compiles warning-free when IPv6-enabled
2001-09-28 09:02:57 +00:00
Daniel Stenberg
8333644c84
moved the PORT and PASV code into separate smaller functions for readability
...
renamed all static ^_ftp_* functions to ^ftp_, prefixing with underscore is
not nice
2001-09-28 08:58:18 +00:00
Daniel Stenberg
4d13b2cc64
more ipv6 cleanups to make smaller functions that are easier to read
2001-09-28 07:46:39 +00:00
Daniel Stenberg
48dc74aecc
more transparant support for IPv6 name resolving
2001-09-28 07:05:26 +00:00
Daniel Stenberg
711650b178
test 119 proved a memory leak in the FTP parts when IPv6 is enabled and the
...
RETR fails, this corrects it.
2001-09-23 12:47:07 +00:00
Daniel Stenberg
0e25cf41c4
modified error message when PWD fails
2001-09-14 12:18:46 +00:00
Daniel Stenberg
6d5b8b50e1
minor informatinal output changes
2001-09-13 12:52:58 +00:00
Sterling Hughes
e2e3c95d3b
fix for emacs
2001-09-07 03:30:30 +00:00
Sterling Hughes
08238f4320
Fix formatting when tabs and spaces got mixed up (if tabstop was not set to
...
8 this looked quite funny :)
Added a small formatting section for vim at the bottom, it also contains an
emacs portion (copied it from another project I'm working on), I don't know
if this is correct, but its a step (the vim part is correct :)
2001-09-05 02:49:04 +00:00