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