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
Daniel Stenberg
47e7a3e678
a few more struct fixes
2001-08-30 22:59:58 +00:00
Daniel Stenberg
0ece1b5c34
Major rename and redesign of the internal "backbone" structs. Details will
...
be posted in a minute to the libcurl list.
2001-08-30 22:48:34 +00:00
Daniel Stenberg
83a8786fe1
I want Sterling to be my friend, so I wasted some time on splitting up the
...
huge monster function _ftp() into more little functions. There are still
more that can be done, but this is at least improving readability and
maintainability... :-)
2001-08-23 06:10:01 +00:00
Sterling Hughes
1d3542a38f
<couldn't resist>
...
Use a more appropriate variable name
</couldn't resist>
2001-08-18 02:42:23 +00:00
Daniel Stenberg
1b00298b52
modified to use the renamed kerberos functions with Curl_ prefix
2001-08-17 10:14:06 +00:00
Daniel Stenberg
aa21e42d5b
const fixes
2001-08-15 18:42:17 +00:00
Daniel Stenberg
cec8a3afb2
removed one compiler error and two "unused variable" warnings
2001-08-15 12:26:34 +00:00
Sterling Hughes
7d17713d62
more _ftp_cwd
2001-08-15 07:21:21 +00:00
Sterling Hughes
546f4dca52
ftp_cwd() abstraction
...
"%" -> "%s"
2001-08-15 07:14:51 +00:00
Sterling Hughes
09a9b57bae
This can be used in another place (Curl_ftp_done :)...
...
declare at the top of the file, put the private functions at the bottom of
the file, however, this is clearer imho (since _ftp is already there).
2001-08-15 06:58:56 +00:00
Sterling Hughes
bff5f1b944
must merge before commit
...
must merge before commit
must merge before commit
2001-08-15 06:54:16 +00:00
Sterling Hughes
7994817185
begin abstraction process...
2001-08-15 06:52:42 +00:00
Daniel Stenberg
a9665b092b
exchanged the second and third argument to fwrite(), as that makes it look
...
good on VMS.
Removed a '#if 0' section, made Curl_getmyhost static and cut off the 'Curl_'
prefix
2001-08-14 09:26:32 +00:00
Daniel Stenberg
d95ed06aa9
corrected the size_t weirdness. Expect size_t to be unsigned. Moved most
...
over to ssize_t that is signed. Removed all the special-purpose VMS #ifdefs
that were added for this.
2001-08-14 08:24:37 +00:00
Daniel Stenberg
823fa6d273
Nico's fixes for VMS, most of these are fixes for bad uses of size_t that
...
forgets that it is very often unsigned. These should be fixed globally and
then many #ifdef VMS lines can be removed.
2001-08-06 12:47:39 +00:00
Daniel Stenberg
b1bbaebb17
better treatment of truly aborted transfers
2001-06-19 06:04:21 +00:00
Daniel Stenberg
e82d2dc634
Jun-ichiro itojun Hagino fixed FTP PORT for IPv6-enabled libcurl
2001-05-14 11:29:47 +00:00
Daniel Stenberg
c7dbde9f3f
Uses the Curl_SSLConnect() according to the new return type
2001-05-12 09:30:42 +00:00
Daniel Stenberg
11f2464a22
when asking for a resumed FTP transfer, even though the entire file has
...
already been transfered no longer returns error but instead is OK. The
reasoning behind this is of course that no extra actions need to be taken
and it is as if a transfer had been successfully performed.
2001-05-11 11:38:13 +00:00
Daniel Stenberg
5c25c7bbfa
when getting a FTP file with NOBODY, we will no longer return error if
...
SIZE doesn't work, we just don't output any size info!
2001-05-08 12:10:14 +00:00
Daniel Stenberg
ef07903a51
Curl_GetFTPResponse() is rewritten to read all incoming data in large
...
chunks, which makes it a lot faster and will make ftps work better...
2001-04-26 10:29:24 +00:00
Daniel Stenberg
3fd65fb7d8
Remade resume stuff to keep data in the connectdata struct instead of the
...
main handle struct to work with persistant connections
2001-04-18 07:25:11 +00:00
Daniel Stenberg
60aa975610
Frederic Lepied's ftp download resume fix
2001-04-17 13:21:13 +00:00
Daniel Stenberg
28497e7ee4
better error checks for failure conditions (based on Puneet Pawaia's reports)
2001-04-03 10:20:23 +00:00
Daniel Stenberg
b1328430c9
ftps:// support added
2001-03-29 08:16:55 +00:00
Daniel Stenberg
4eb2a165e8
removed a bunch of warnings for IPv6-compiles
2001-03-14 18:24:07 +00:00
Daniel Stenberg
7d7c24f915
accept() and getsockname() now use socklen_t types, as that was just added
...
to configure
2001-03-09 15:12:22 +00:00
Daniel Stenberg
c21f848c1c
enable persistant connections by default
2001-03-05 13:40:08 +00:00
Daniel Stenberg
d1cfbd51b5
remade the port number stuff so that following locations work and doing
...
intermixed HTTP and FTP persistant connections also work!
2001-03-02 15:34:15 +00:00
Daniel Stenberg
415d2e7cb7
removed the slist -functions from here
...
added the Curl_ftp_disconnect function for FTP-specific disconnects
2001-03-02 07:44:05 +00:00
Daniel Stenberg
584dbffe60
moved the dynamicly set pointers to the connectdata struct
2001-02-22 23:32:02 +00:00
Daniel Stenberg
da06a6e7e3
IPv6-adjustments
2001-02-21 17:15:09 +00:00