Newer
Older
_ _ ____ _
___| | | | _ \| |
/ __| | | | |_) | |
| (__| |_| | _ <| |___
\___|\___/|_| \_\_____|
Daniel (30 March 2004)
- David Byron's patch was appplied to make CURLOPT_FAILONERROR work nicely
even with authentcations such as NTLM or Digest enabled. Test cases 150, 151
and 152 were added to verify the functionality.
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
Daniel (29 March 2004)
- Gisle Vanem updated files for the djgpp/MS-DOS build.
- Andrés García helped me work out a fix for the runtests.pl script to make
the file:// tests run fine when tested with the mingw-built version of curl.
- Fixed an include issue with netinet/tcp.h on AIX, based on input by Tor.
This also required a minor fix of the configure script.
- The postit2.c source example used the wrong struct name for the post data.
Daniel (26 March 2004)
- Gisle Vanem improved ipv6 support on windows by making the curl build to use
the correct getaddrinfo() function.
Daniel (25 March 2004)
- It turned out that AIX, despite having a "thread-safe libc", doesn't offer
all traditional functions thread-safe. This URL is informative on this
subject:
http://publibn.boulder.ibm.com/doc_link/en_US/a_doc_lib/aixprggd/ \
genprogc/thread_quick_ref.htm
As a result of this, we now check for three *_r() functions on recent AIX
versions as well that the URL mentions aren't thread-safe in AIX 5.1.
- renamed curl_strerror.[ch] to strerror.[ch]
- Joe Halpin added CURLOPT_TCP_NODELAY and --tcp-nodelay to make it possible
for users to disable the Nagle algorthim-usage.
- Tor Arntsen provided some interesting strerror_r() knowledge. glibc has its
own API which differs from the POSIX one. Daniel adjusted the configure
script to detect the version in use, and the code now uses the new defines
accordingly.
- Fixed some build flaws with the new lib/curl_strerror.c source file.
Daniel (24 March 2004)
- 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!
- Tor Arntsen spell-fixed lots of libcurl man pages.
- Tor Arntsen made testcurl.pl work with older perl 5 versions, and Daniel
made it not use chdir .. to go back, as that isn't very good when you've
setup a testdir containing symlinks.
- Added a check for strerror_r() in the configure script.
Daniel Stenberg
committed
Daniel (23 March 2004)
- Added Greg Hewgill's testcurl.pl script to CVS. We have not moved over to
use this script for the real distributed testing just yet, but it is only
a matter of time.
- Gisle Vanem provided code that makes curl report a better error message
if --interface fails on windows.
Daniel Stenberg
committed
- The regular progress meter is now fixed to never wrap due to long lines. All
fields are now static sized. If the time in the time fields get a time value
that would represent a time that is 100 hours or more (if not, it remains
using a HH:MM:SS display), it switches first to a "NNNd NNh" display (for
days and hours) and if that isn't enough it switches to a "NNNd" display if
it is more than 999 days.
Several of the calculations were also moved to fixed-point math instead of
using doubles.
Daniel (22 March 2004)
Daniel Stenberg
committed
- Glen Nakamura noticed CURLINFO_CONTENT_LENGTH_DOWNLOAD didn't work as it
used to do if CURLOPT_NOBODY is set TRUE.
- Kevin Roth patched the cygwin package makefile and README to adjust to
new cygwin packaging guidelines.
- Enabled "NT responses" in the NTLM authentication. Doing this simply means
that we provide an extra chunk of data in each "type-3 message". The only
reason for doing this is that it seems that using only the "Lanmanager hash"
(as we've been doing until now) doesn't support passwords longer than 14
characters and it turns out there are users out there who want to use
libcurl and NTLM with such passwords! ;-) Seven NTLM-related test cases were
updated accordingly. Mentioned as issue 29 in TODO-RELEASE, bug report
#915609
- Moved the generated libcurl version info to a new header file, named
curl/curlver.h. Now interested parties can include ONLY version info, should
anyone want that (and it seems at least some windows resource files would).
Mentioned as issue 27 in TODO-RELEASE.
Daniel (21 March 2004)
- Fixed the root Makefile to use tabs for the netware target. Günter Knauf
pointed this out.
- Marty Kuhrt's VMS cleanup
- Thomas Schwinge made buildconf recognize ACLOCAL_FLAGS to invoke aclocal
with particular pre-determined options.
Daniel (18 March 2004)
- Tor Arntsen brought some info about SGI IRIX:
IRIX supports 3 different executable/object formats, -32, -n32 and -64.
-n32 is default 32-bit format, -32 is the "old" 32-bit format, and -64 is
the 64-bit format. Libraries for the different formats are in lib, lib32
and lib64 respectively.
We've now adjusted the configure script to adapt to this when scanning for
3rd party libs, such as OpenSSL.
- Watz pointed out a few missing files in the MSVC project description file.
- Günter Knauf brought patches, code and makefiles to build curl on Novell
NetWare.
- Lots of libcurl man pages were updated to contain references to other man
pages the recognized way so that they appear as nice hyperlinks in the HTML
versions.
- buildconf now checks the m4 version too, since autoconf requires a GNU m4
version to build proper configure scripts.
Daniel (12 March 2004)
- Added CURLOPT_POSTFIELDSIZE_LARGE, the large file version of
CURLOPT_POSTFIELDSIZE to allow POSTs larger than 2GB.
- David Byron fixed an uninitialized variable case/crash.
Daniel (10 March 2004)
- Jeff Lawson fixed the SSL connection to deal with received signals during the
connect.
- Changed the OS string for win32 to become "i386-pc-win32".
Daniel (9 March 2004)
- Changed the internals to use curl_socket_t for socket variable type. This
should enable us to build with less warnings on Windows, where SOCKET is
used which is an unsigned int, while most other platforms use a mere int.
- Modified lib/config-win32.h to build fine on MSVC again.
Version 7.11.1-pre1 (8 March 2004)
Daniel (8 March 2004)
- Minor fix to make curl CURL_VERSION_LARGEFILE is only set if curl_off_t is
larger than 4 bytes.
Daniel Stenberg
committed
- Improved PUT/POST with NTLM/Digest authentication, the so called issue 12.
- Modified the test HTTP server a lot to work with the upcoming changes for
PUT/POST with NTLM/Digest authentication (like test case 88). Added Andrés
García's win32-changes. Improved the logging.
- Fixed the file:-related progress/getinfo stuff a bit more.
Daniel (4 March 2004)
- I corrected a problem with the multi interface when following a Location:
header or when doing multiple-request authentications. A subsequent request
could erroneously re-use a previous connection that was sent with
Connection: close. Christopher R. Palmer reported.
- Andrés García patched curl to prevent warnings while compiling with mingw,
mainly because it is now possible to have both WIN32 and HAVE_CONFIG_H
defined.
- When transferring files from a file: URL, the progress meter and other
transfer metrics were not updated properly.
- David Byron provided a "version resource" file to the curl executable for
the windows builds.
- David Byron's work on making libcurl only require winsock 1.1 on Windows
machines.
- More variable cleanups based on compiler warnings generated by Tor Arntsen's
autobuilds with MIPSPro.
- Joe Halpin helped us fix some pedantic compiler warnings on FreeBSD.
- Applied Tom Bates' patch to build on nsr-tandem-nsk.
- Dan Fandrich corrected some flaws in the configure GSS detection.
Daniel (2 March 2004)
- Fixed the libcurl code to use FORMAT_OFF_T for printf() formatting
curl_off_t types internally.
- Added CURL_VERSION_LARGEFILE as a feature-bit in the curl_version_info()
response, that signals if this libcurl supports >2GB files. curl -V now
outputs 'Largefile' in the Features: field if this is the case. Most systems
are likely to support this.
- We offer a CURL_FORMAT_OFF_T define in the public header, which can be used
to printf() curl_off_t variables. We also modified the libcurl sources to
use this define instead of the previous %Od approach (although I've left the
O-flag functional in the code). This should also prevent compilers to warn
on the home-grown option.
- Fixed the resume-check code to test for a working resume at the end of the
headers and not at the first body-byte.
- CURLOPT_DNS_USE_GLOBAL_CACHE is now considered obsolete. Stop using it. If
you need a global DNS cache for whatever reason, use the share interface and
you'll get a global cache that works the way it should work. You can even
have any number of global caches, all at your command. This is now also
mentioned in the docs.
- Made the *printf code support the z-flag to enable size_t printf() in a
manner similar to how glibc allows it. To make printfing of this work on
platforms with 64bit size_t and 32bit ints. If there even are any! ;-)
- Christopher R. Palmer discovered that if you CURLOPT_FRESH_CONNECT and
CURLAUTH_NTLM (or CURLAUTH_ANY and libcurl then picked NTLM), libcurl would
loop without succeeding to authenticate due to the new connection that was
made for all round-trips in the authentication. Now, the FRESH_CONNECT is
remade to only matter for the first connection made with curl_easy_perform()
and all the rest that might follow due to FOLLOWLOCATION or HTTP
authentication are now ignoring that option.
- Adjusted the QUIT code slightly since it could core-dump.
- Corrected the test suite's FTP server to provide a correct size to the
'verifiedserver' request.
Daniel (27 February 2004)
- Joe Halpin made the FTP code send QUIT on the control connection before
disconnecting the TCP connection. This is what good-behaving ftp clients
should do.
Daniel (26 February 2004)
- David Byron updated several files to make curl build fine on MSVC 6. He
also added the 'buildconf.bat' that works like the 'buildconf + configure'
combo does on unixes.
- Gisle Vanem made the memdebug stuff support calloc() as well.
- Tor Arntsen pointed out that testcurl.sh needed to remove the generated
files in order to have them re-generated in each build.
- Andy Serpa found out that the share interface did not enjoy life when not
having the lock and unlock callbacks set, even though documented to be
OK. It still is OK, and now the code won't segfault anymore!
Daniel (25 February 2004)
- Based on a patch by Greg Hewgill I modified how long long is used in the
mprintf code, as we can use a 64bit type with MSVC that is a long long
equivalent. This corrects some weird large file behaviors on windows.
- Tor Arntsen helped me work out --enable-debug to work better with different
versions of the gcc and icc compilers.
- Added CURLOPT_SHARE to the curl_easy_setopt.3 man page.
Daniel (22 February 2004)
- Applied the final pieces of Gisle Vanem's patch that brings a working name
resolve timeout to the windows versions of curl!
Daniel (21 February 2004)
- David Byron's fix to allow the speed-limit logic work even if you set
limit-rate. It does work on the expense of the rate limiter.
Daniel (20 February 2004)
- configure --enable-debug with gcc now also tries to detect the icc compiler
(which somehow gets treated as if it is a gcc) to stop using all the gcc
options with it, and we also provide -isystem options for each extra -I
option the configure script has figured out (for OpenSSL, kerberos, zlib,
Heimdal etc). This of course to prevent warnings on headers we don't have
control of.
Daniel (19 February 2004)
- Doug Porter made libcurl use the HOME environment variable before the
getpwuid results when looking for .netrc files.
- If 'configure --enable-debug' is used with gcc, it now checks which gcc
version it is and uses as picky compiler options as possible for the
particular version.
- Code that can be used in both the lib and in the curl app is now made to use
the curlx_ prefix. The first function to be available like this is the
curlx_strtoll() function. This is made to allow the app to use existing code,
but without polluting the libcurl API. Further explanations posted here:
http://curl.haxx.se/mail/lib-2004-02/0215.html
Daniel (18 February 2004)
- Fixed buildconf to not use "which" as AIX and Tru64 have what have been
referred to as "horribly broken 'which' programs".
- Made sure dns cache timeout set to -1 really means caching forever.
Daniel (17 February 2004)
- Made it possibly to build c-ares with the libcurl memdebug system to better
track memory.
Daniel (16 February 2004)
- When using ares, we now initialize the ares 'channel' in curl_easy_init()
and re-use that same handle during the entire curl handle's life-time. It
improves performance.
- Fixed a problem when displaying verbose for ipv6-enabled libcurls and
re-used connections. Problem reported and fix verified by Grigory Entin.
- Jeff Lawson fixed the version-check in the SOCKS5 code.
Daniel (15 February 2004)
- Fixed a case where a host cache entry was not flagged in-use properly when a
cached entry was used.
- Andrés García's patch that checks for winmm in the configure script was
applied.
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
Daniel (13 February 2004)
- Ben Greear's SO_BINDTODEVICE patch for the binding of the local end to a
specific network interface.
- Greg Hewgill found out that the variable holding 'contentlength' wasn't big
enough to hold a large file!
- Tor Arntsen fixed a 64bit-related problem in date-related code in the ftp
department, and there was another potential problem in the name resolve code
too.
Daniel (11 February 2004)
- Removed a few variables that were only set but never used, as some compilers
warn about that and we do not like compiler warnings!
- Removed the need for symlinks in the tests/data directory if curl is built
outside of the source directory and the 'make test' is used. This was done
by providing a "source dir path" to the scripts/servers.
- Now, if the configure script can't find an nroff tool or an option to nroff
to use to convert man pages with, it will completely switch off the built-in
manual.
- 'configure --disable-manual' completely disables the built-in manual from
the curl command tool.
- Andrés García fixed the configure script and a minor source edit, and now
he has managed to get msys/mingw to run configure and then build!
Daniel (9 February 2004)
- The default HTTP Accept: header was modified to the much simpler
"Accept: */*".
- P R Schaffner updated the curl-ssl spec file for RPMs.
- Dominick Meglio brought lots of documentation for the share interface's man
pages that were previously missing.
- Tor Arntsen provided a patch that makes libcurl work-around a bug in the
AIX5 implementation of getaddrinfo(). This makes the FTP PORT stuff work on
ipv6-enabled AIX builds.
- Ken Rastatter provided portability fixes for the curlgtk.c example, and now
it runs on windows with GTK as well!
Daniel (6 February 2004)
- Andrés García made the configure script find gethostbyname() fine when run
with mingw on windows.
- Modified the ldap code to use proper function pointers all over (instead of
mixed data and function pointers) to work-around the picky MIPSPro compiler
warnings.
- A custom Host: header is only considered if the request is not made by
following a location. After discussions with Tim Baker.
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
Daniel (5 February 2004)
- The libz part of the configure script now only set the two libz-related
define HAVE_ZLIB_H and HAVE_LIBZ if both the lib and the header is found.
If one is missing, none of the defines is set.
- Andrés García fixed the Mingw makefiles.
- Len Krause reported that curl 7.9.X could do uploading from stdin without
doing chunked encoding, which current curl cannot do even if you disable
the transfer-encoding chunked header. Now it can again, and test case 98
verifies this functionality.
- Tor Arntsen fixed a weird getaddrinfo() usage in the FTP code, preventing
the ipv6-code for PORT work on AIX 5.2. We now also provide (better) error
messages when bailing out in the that function.
- Tor Arntsen now provides AIX and IRIX (using gcc, xlc and the MIPSPro
compilers) automated build logs (http://curl.haxx.se/auto/) and we've fixed
numerous minor quirks to make less warnings appear.
Daniel (4 February 2004)
- Based on a patch by Gilad, we now use the custom timeouts when waiting for a
server to connect when using FTP PORT. Previously we always waited 10
seconds, no more no less. We now also changed the default (if no timeout is
set) to wait 60 seconds for the connect before we fail.
Daniel (3 February 2004)
- Modified to link with c-ares instead of ares.
Daniel (2 February 2004)
- Added a configure test to check for which option the (g)nroff tool wants
to extract plain text from the man pages. Tor Arntsen told us the AIX
version of GNU gnroff doesn't support -man!
- Added an undef of accept in memdebug.h to make curl build with --enable-debug
on AIX 5.2 which seems to have accept defined. Reported by Tor Arntsen.
- curl_version() now includes c-ares version info, and curl_version_info() now
returns a struct with version SECOND that also includes that info.
- We are now officially using c-ares for asynch name resolves. c-ares is the
new library, based on the existing ares but with an extended and slightly
modified API.
- Dirk improved the ares timeout code, and now we also include the ares error
string when we fail to resolve a name.
- Another tweak to make test case 91 run fine. Now we have another bit on a
connection that is set true if the connection is marked for 'retry'. That
makes the connection get closed and re-opened and the HTTP-done code must
not complain on the fact that no data was received.
- Based on Dirk Manske's patch, I modified the name resolving with ares to
feature a timeout for really slow lookups. It now defaults to 300 seconds,
but is now adjusted to the CONNECTTIMEOUT/TIMOUE timeouts if one of them
is set.
- Fixed the inclusion of ca-bundle.h to really use the one in the build dir
before the one in the source dir. Domenico Andreoli found out and reported.
- Added test case 97, a simple POST with a custom Content-Type header
replacing the original application/x-www-form-urlencoded one.
- Added code that attempts to fix the test 91 failure. As has been figured out
by Patrick Smith, the error happens because we re-use a connection that the
server is just about to close and we even manage to send away the request
without seeing an error. On the first read attempt we get a ECONNRESET.
Starting now, we attempt to detect this and if so, we retry the request on a
fresh connection.
- I added test case 510 which is a custom program that does a POST using a
read callback, with chunked transfer-encoding.
- Adjusted one of the MPE/iX changes as it made test case 504 fail all over.
- Added --socks as a recognized option. It works just like --proxy but sets a
SOCKS5 proxy to use. SOCKS5 support has been available in libcurl for a
while, just not provided by the curl tool. This does not currently work for
IPv6-enabled libcurls.
- Stadler Stephan pointed out that src/hugehelp.c included config.h without
checking the define if its present...
- Ken Hirsch provided patches to make curl build fine on the MPE/iX operating
system.
- Dan Fandrich compiled curl with lots of aggressively pedantic compiler
options and thus found a few minor errors and did some general cleanups to
avoid them.
- Dirk Manske fixed a flaw in ares that prevented it to use non-blocking
sockets properly.
- Richard Bramante fixed chunked transfer-encoded "uploads" to send a final
CRLF combo properly.
- Made the response-headers during a CONNECT request to a proxy get passed on
as regular headers, so they appear with -i/-I options and similar.
- Based on a patch by Gisle Vanem, I've made the progress meter display
properly switch to a GB-display when more than 9999MB have been transfered.
- Gisle Vanem pointed out a curlrc parser problem/crash when an option with a
required didn't have one and was on the last line of a file.
- More Windows fixes for large files. We now build and link with
../lib/strtoofft.c in the app code since Curl_strtoll() is not a provided
libcurl function... Perhaps we should consider a 'common' dir or similar
where we put source code used in both the lib and the client. Or perhaps
we'll just make this function available in the library...
- Vincent Bronner found out the socks5 code crashed when no username was
set.
- Vincent Bronner spotted a problem with proxy username/password when re-using
- Fixed the progress meter display for files larger than 2^31 bytes. Gisle
Vanem reported.
- Gisle Vanem made strtoll() get used when curl is built with the mingw
compiler.
- Gisle Vanem fixed the compressed help text code to display properly.
- Removed the '#define HttpPost' from the public header file, as curl_httppost
is the proper name and it has been for quite some time now. Fixes another
name space pollution.
- Added 'curl_off_t' typedef in the public header file, to be used to provide
large file sizes to the *_LARGE options. Adjusted the code all over to use
this variable type instead of 'off_t'. This is an attempt to make the large
file support work on more platforms. The configure script now checks the
size of the curl_off_t instead of the plain off_t.
Daniel (21 January 2004)
- Removed the defines in the public header file with TIMECOND_ prefixes. They
have been obsolete since April 22nd 2002, and if this causes anyone any
problems now it is very easy to just add CURL_ to the names. This corrects
this name space pollution.
Daniel (19 January 2004)
- David Byron cleaned up how --trace with no option was treated, and also
arguments in a config file without a required parameter!
Daniel (16 January 2004)
- Gisle Vanem fixed a few issues where compilers warned about variables
possibly being used unassigned.
- Minor Interix build problem fixed.
Daniel (15 January 2004)
- Peter Sylvester pointed out some necessary escaping needed in the
acinclude.m4 file when automake 1.8 or later is used.
- Vincent Bronner fixed the Curl_resolv() return code. This extends the fix
Steve Green provided on december 3...
- Luke Call made the win32 version of the password prompting function support
backspace.
- Dan Fandrich fixed the hugehelp source file to contain both a compressed and
an uncompressed version in the distribution, so that more people easier can
build curl with the compressed version.
- Diego Casorran brought another AmigaOS build patch for native Amiga builds.
- Matt Veenstra updated the Mac OS X framework files.
- Brian R Duffy brought a section to the INSTALL file on how to build a
SSL-enabled curl using the free Borland C++ compiler. He also updated the
Borland lib/Makefile.b32.
- I fixed the test case 509 which I broke yesterday. Now the libtest are
compiled with an include path that points to the library's source dir, so
that the libtests can include files from the source tree. This was made to
make it possible to use the USE_SSLEAY define in the library test files.
Daniel Stenberg
committed
- Peter Sylvester brought code that now allows a callback to modified the URL
even when the multi interface is used, and then libcurl will simulate a
"follow location" to that new URL. Test 509 was added to test this feature.
- Extended the time we retry servers in the test script, and I also made it
retry the https and ftps servers before they are considered bad. I believe
the previous approach could turn problematic on really slow hosts.
Version 7.11.0-pre1 (12 January 2004)
Daniel (11 January 2004)
- Dominick Meglio pointed out FTPS should use default port 990 according to
IANA.
Daniel (8 January 2004)
- Fixed the SPNEGO configure check to not use -R or other non-portable options
in the LDFLAGS. Reported by Pierre in bug report #872930.
- Dan Fandrich provided a fix on our zlib usage.
- David J Meyer's patch that introduce large file support to libcurl was
applied. New curl_easy_setopt options that accept 'off_t' arguments are:
INFILESIZE_LARGE
RESUME_FROM_LARGE
MAXFILESIZE_LARGE
Daniel (4 January 2004)
- Based on Dominick Meglio's comments, I made our private version of
gettimeofday() declared static. This would otherwise collide with the same
function in other libs (like ares for example).
- Added Dominick Meglio's description on how to build libcurl with ares
on win32.
Daniel (19 December)
- CURLOPT_IPRESOLVE was not possible to set.
- Gisle Vanem updated the djgpp build files.
Daniel (18 December)
- John McGowan reported a redirect-problem that happened if a site used a URL
like "url.com?var=content" (without a proper slash) and from that address
redirected the user-agent to an absolute directory.
- David Byron made libcurl build fine with both the .NET and VC6 versions of
MSVC
Daniel (16 December)
- Updated test 506 since it started to fail after the cache prune change
yesterday. I also changed it slightly to feature a counter in each debug
output for easier tracing.
- Old DNS cache entries are now only pruned after curl is done with a request,
and not in the actual name resolve call.
- corrected the --enable-ares patch
- Giuseppe Attardi found and fixed a problem within libcurl that re-used
already freed memory.
- Gisle Vanem reported that the dict support was broken. I broke it during my
ftps-changes overhaul. I've now added a 'curlassert' function that can be
used to verify expressions, to prevent future errors of the same
kind. They're only present in debug-builds.
- Diego Casorran made curl and libcurl possible to build natively (no more
need for the ixemul library) on AmigaOS.
- Dominick Meglio made configure --enable-ares support a given path to the
installed ares lib, instead of always using it in the curl source tree.
This also fixed the curl-config --libs output.
- Eric S. Raymond patched a very minor man page format error in
libcurl-errors.3
Daniel (8 December)
- Fixed the flaw that made -lz appear twice on the link command line.
- After correspondence with Gisle Vanem, I changed the 'connection aborted'
error text when the FTP response reader failed to more specificly identify
what the problem is.
- Based on a patch from Dominick Meglio, curl-config --feature now outputs
'AsynchDNS' as a feature if libcurl was built with ares. The feature name
is the same that 'curl -V' outputs, for simplicity.
Daniel (3 December)
- Marty Kuhrt made the build up-to-date on VMS, and moved most of the VMS-
specific stuff in the client code to a separate header file.
- Steve Green fixed a return code bug in Curl_resolv(), that made the socks5
code fail.
- swalkaus at yahoo.com patched libcurl to ignore Content-Length: headers
when Transfer-Encoding: chunked is used, as mandated by RFC2616.
- --ftp-pasv was added, which serves the only purpose of overriding a
previously set --ftpport option. Starting now, --ftp-port is a recognized
alias for --ftpport for consistency.
- Giuseppe Attardi pointed out that we should use MSG_NOSIGNAL when we use
send() and recv(). I added checks for the define in the configure script and
adjusted the code accordingly. If the symbol is present, we won't attempt
to ignore the SIGPIPE signal.
Daniel (1 December)
- Mathias Axelsson set up a bsdftpd-ssl server for me and I could make curl
run fine against its FTPS implementation. Now these FTPS-related things
work:
o explicit and implicit FTPS
o active (PORT) and passive (PASV)
o upload and download
o verified against bsdftpd-ssl and RaidenFTPD
- James Clancy made the Borland Makefiles up to date.
- Markus Moeller improved the SPNEGO detection in the configure script.
- Dave May filed bug report #848371, identifying that if you'd do POST over a
proxy to a https server, libcurl didn't POST at all, it just made a GET! It
turned out to be because libcurl wrongly didn't consider the authentication
"negotiation phase" to be complete yet.
I added test case 95 to verify my fix for this.
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
- Thanks to Mathias Axelsson, I've been able to work on FTPS for libcurl and it
seems to work somewhat fine now.
The FTPS stuff is based on RFC2228 and the murray-auth-ftp-ssl draft
(version 12). There seems to exist quite a few servers that have implemented
the server side of this.
We can now use ftps:// URLs to explicitly switch on SSL/TSL for the control
connection and the data connection (dealing with two SSL connections forced
me to change a lot of stuff in libcurl).
Alternatively, and what seems to be the recommended way, we can set the new
option CURLOPT_FTP_SSL to one of these values:
CURLFTPSSL_NOPE, - do not attempt to use SSL
CURLFTPSSL_TRY - try using SSL, proceed anyway otherwise
CURLFTPSSL_CONTROL - SSL for the control connection or fail
CURLFTPSSL_ALL - SSL for all communication or fail
Any failure to set the desired level will make libcurl fail with the error
code CURLE_FTP_SSL_FAILED. This new option makes a "normal" ftp:// transfer
attempt to be made securely.
I've been able to login and get files (passively) from Mathias' server using
both ftps:// and CURLOPT_FTP_SSL. (I've made 'curl' understand the --ftp-ssl
option that sets CURLFTPSSL_TRY.)
- Gaz Iqbal fixed a range string memory leak.
- Gisle Vanem fixed the Windows builds.
- Added the new FTPSSL defines in curl/curl.h
- Josh Kapell filed bug report #845247 as he found an endless loop when
getting a 407 back from a proxy when no user+password was given. Added test
case 94 to verify the fix.
Daniel (19 November)
- Kevin Roth fixed a progress-bar problem on Windows.
- While working with Nicolas Croiset's bug report #843739, I noticed two minor
problems related to ftp partial downloads: if a partial transfer is
detected, we must close the connection as we cannot know in what state it is
anymore. This looks like a ProFTPD bug:
http://curl.haxx.se/mail/lib-2003-11/0079.html
- Maciej W. Rozycki made the configure script use a cache variable for the
writable argv test. This way, the default can be overridden better (for
cross-compiles etc)
Daniel (15 November)
- Mathias Axelsson found out libcurl sometimes freed the server certificate
twice, leading to crashes!
Daniel (14 November)
- Siddhartha Prakash Jain found a case with a bad resolve that we didn't
properly bail out from, when using ares.
Daniel (13 November)
- Default Content-Type for parts in multipart formposts has changed to
"application/octet-stream". This seems more appropriate, and I believe
mozilla and the likes do this. In the same area: .html files now get
text/html as Content-Type. (Pointed out in bug report #839806)
- Gisle Vanem corrected the --progress-bar output by doing a flush of the
output, which apparently makes it look better on at least windows, but
possibly other platforms too.
- Peter Sylvester identified a problem in the connect code, which made the
multi interface on a ipv6-enabled solaris box do bad. Test case 504 to be
specific. I've spent some time to clean-up the Curl_connecthost() function
now to use less duplicated code for the two different sections: ipv6 and
ipv4.
Daniel (11 November)
- Added CURLOPT_NETRC_FILE. Use this to tell libcurl which file to use instead
of trying to find a .netrc in the current user's home directory. The
existing .netrc file finder is somewhat naive and is far from perfect on
several platforms that aren't unix-style. If this option isn't set when
CURLOPT_NETRC is set, the previous approach will still be used.
The current .netrc check code now also support longer than 256 bytes path
names.
Daniel (10 November)
- Kang-Jin Lee pointed out that the generated ca-bundle.h file shouldn't be
written in the source dir if a different build dir is used.
- After Sébastien 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 RFC2428-compliant.
Daniel (7 November)
- Based on Gisle Vanem's patch, I made curl try harder to get the home
directory of the current user, in order to find the default .curlrc file.
We're also considering moving out the HOME-dir code from libcurl, and
instead have the app pass in the path to the .netrc file (which is the only
logic left in libcurl that uses the HOME dir). Then curl can use the home
dir for that purpose too.
- Ralph Mitchell's updated testcurl.sh to the script to take an existing
directory name and build/run/test curl in there instead of trying to update
from CVS. Using this approach, the script can now be used to test daily
tarballs etc.
- Gisle Vanem added a "resource file" to the Windows DLL builds, to contain
information such as version number, library name, copyright info etc.
- curl checks if the existing libcurl supports things like --ntlm, --negotiate
and --krb4 and returns error if not.
- I added three new global defines in the curl/curl.h header:
LIBCURL_VERSION_MAJOR, LIBCURL_VERSION_MINOR and LIBCURL_VERSION_PATCH. They
are the three numbers in the library's version number, separated for easier
usage. 'maketgz' was updated accordingly to generate these numbers properly
when building release-archives.
- Uninitialized variable fix, reported by both Marty Kuhrt and Benjamin
Gerard.
- Matt Veenstra provided build files to build libcurl as a "framework" under
Mac OS X. See the lib/libcurl.framework.make for details.
- Removed the defines of TRUE and FALSE from the curl/curl.h header file.
They're not in our name space so we should not fiddle with them.
Daniel (5 November)
- Replaced the man page to HTML converter program with a new one: roffit.
Makes nicer web pages.
Daniel (4 November)
- Troels Walsted Hansen fixed the MSVC makefiles to let them build curl fine
on Windows.
- Kevin Roth corrected the cygwin package generator and spell-fixed the
comment in the ca-bundle.h file.
- Assume that MDTM on an FTP server returns the timestamp using the UTC time
zone. This changes the time CURLINFO_FILETIME returns for a given file over
FTP, and will change existing uses of CURLOPT_TIMECONDITION. It will make
the functionality more similar to how the HTTP one is already working.
- Command line options that take numerical parameters (such as -y, -Y, -C etc)
now report error and exit if the parameter isn't truly a number greater than
or equal to zero. This helps users to notice bad usage earlier. Before, when
a user forgot or missed to add a numerical parameter to an option, the
command line parser would simply "eat" the following option and it would
cause great confusion.
Daniel (30 October)
- David Hull made libcurl deal with NOBODY and HEADER for file:// the same way
it already does for FTP: it provides HTTP-looking headers that provide info
only about the file, without doing the actual transfer. The curl tool then
lets --head do this.
Daniel (29 October)
- runtests.pl now checks for and use valgrind if present. It will redirect the
valgrind results in log/valgrind[num] but it currently doesn't scan that
file for any errors or anything, that is still only made manually.
- David Hull made the file: URL parser also accept the somewhat sloppy file
syntax: file:/path. I added test case 203 to verify this.
Daniel (28 October)
- Dan C tracked down yet another weird behavior in the glibc gethostbyname_r()
function for some specific versions (reported on 2.2.5 and 2.1.1), and
provided a fix. On Linux machines with these glibc versions, non-ipv6
builds of libcurl would often fail to resolve perfectly resolvable host
names.
Daniel (26 October)
- James Bursa found out that curl_msnprintf() could write the trailing
zero-byte outside its given buffer size. This could happen if you generated
a very long error message as then libcurl would overwrite the ERRORBUFFER
with one byte. Using a non-existing very long local file:// name is one case
that could make this occur.
- David Hull filed bug report #829827. It identified a problem with -C - if
the full file already was downloaded and thus the server responded with a
416. libcurl would then wrongly use the Content-Length: header and expect
that size to get transfer, causing a "hang" until the server closed the
connection and then an error 18 ("still N bytes data left of the transfer").
Now we don't return any error at all, but I think libcurl should perhaps
return some kind of info since the requested range was out of the size of
the document.
- Based on David Hull's fix in bug report #804599, we now check for solaris and
gcc in configure and set the -mimpure-text link flag for linking the lib
better.
- I've introduced a -t option to the runtests.pl script. With that option set,
the script runs special "memory torture" tests. For each test command line
in that section, the script first runs the command line and counts the total
amount of allocations made. It then runs the exact same command line again,
forcing allocation number N to fail. It will try every N from 1 to the total
number of amounts made. For every invoke, it checks that no memory was
leaked as that would indicate a bad cleanup somewhere in the code.
This is just beginning to work, and I've already made some corrections in
libcurl code. When this code works somewhat fine, I'll make sure 'make test'
in the root dir will run these tests as well.
Daniel (23 October)
- Georg Horn fixed how the CA verification is made. Verifications can now be
made while at the same time the result of it can be ignored. This also
affects the curl tool as -k can now be used together with --cacert or
--capath.
Daniel (22 October)
- Gisle Vanem found out --disable-eprt didn't work and patched it.
- Test case 91 was modified and could now repeat the problem Kevin Roth has
reported, and the bug was fixed.
- Dylan Ellicott added vc-libcurl-ssl-dll as a target to the root makefile
to build a static libcurl that links with a shared OpenSSL using MSVC.
Daniel (21 October)
- Andrés García updated the mingw32 makefiles.
Version 7.10.8-pre5 (21 October 2003)
Daniel (19 October)
- Georg Horn made libcurl output more info on SSL failures when receiving
data.
- Dominick Meglio implemented CURLOPT_MAXFILESIZE and --max-filesize.
- Made libcurl show verbose info about what auth type and user name that is
being sent in its HTTP request-headers.
Daniel (16 October)
- Removed support for CURLOPT_PASSWDFUNCTION and CURLOPT_PASSWDDATA. libcurl
no longer prompt for passwords under any circumstances. Password prompting
was instead moved to curl, which now prompts for password if -u or -U lack
it. This solves the problem Kevin Roth reported when curl prompted for
password twice when doing NTLM authentication.
- I rewrote the SSL subjectAltName check to avoid having to rely on OpenLDAP-
licensed derivate code.
Daniel (15 October)
- Avoid doing getsockopt() on Windows to verify connects. It seems that this
hogs Windows machines when libcurl is being used multi-threaded (with > ~50
threads). Andrew Fuller helped us verify and test this.
Daniel (14 October)
- Kimmo Kinnunen fixed a crash with duphandle() when CURLDEBUG is set.
- Gisle Vanem made libcurl build and work with IPv6 on Windows.
- Giuseppe Attardi reported yet another segfault with ares and the multi
interface. Me fixed.
- Domenico Andreoli removed the extra LDFLAGS assignment in lib/Makefile.am
that was reported about in the debian bug report #212086.
Domenico also fixed two makefiles where we used 'gnroff' instead of the more
portable $(NROFF).
Daniel (12 October)
- Dirk Manske made the share locking around DNS lookups slightly different to
allow the share system's DNS lookups to run somewhat more
independent/faster.
- Lachlan O'Dea fixed a resume problem: "If I set CURLOPT_RESUME_FROM, perform
an HTTP download, then reset CURLOPT_RESUME_FROM to 0, the next download
still has a Range header with a garbage value." bug report #820502
- Dominick Meglio made the inet_pton.c file build fine using MSVC.
- The 'sws' test suite web server now #include setup.h from the lib directory.
This makes it more portable easier.
Daniel Stenberg
committed
Daniel (8 October)
- Frank Ticheler provided a patch that fixes how libcurl connects to multiple
addresses, if one of them fails (ipv4-code).