Newer
Older
_ _ ____ _
___| | | | _ \| |
/ __| | | | |_) | |
| (__| |_| | _ <| |___
\___|\___/|_| \_\_____|
History of Changes
Daniel (25 February 2002)
- Fiddled with the automake files to make all source files in the lib
directory not have ../src in the include path, and the src sources shouldn't
have ../lib!
- All 79 test cases ran OK under Linux and Solaris using the new HTTP server
in the test suite. The new HTTP server was first donated by Georg Horn and
subsequently modified to work with the test suite. It is currently still not
portable enough to run on "all over" but this is a start and I can run all
curl tests on my machines. This is an important requirement for the upcoming
public release.
- Using -d and -I on the same command line now reports an error, as it implies
two different HTTP requests that can't be mixed.
- Jeffrey Pohlmeyer provided a patch that made the -w/--write-out option
support %{content_type} to get the content type of the recent download.
- Kevin Roth reported that pre2 and pre3 didn't compile properly on cygwin,
and this was because I used #ifdef HAVE_WINSOCK_H in lib/multi.h to figure
out if we could include winsock.h which turns out not to be a wise choice to
do on cygwin since it has the file but can't include it!
Daniel (22 February 2002)
- Added src/config-vms.h to the release archive.
- Fixed the connection timeout value again, the change from February 18 wasn't
complete.
Version 7.9.5-pre3
Daniel (21 February 2002)
- Kevin Roth and Andrés García both found out that lib/config.h.in was missing
in the pre-release archive and thus the configure script failed.
Version 7.9.5-pre2
Daniel (20 February 2002)
- Andrés García provided a solution to bug report #515228. the total time
counter was not set correctly when -I was used during some conditions (all
headers were read in one single read).
- Nico Baggus provided a huge patch with minor tweaks all over to make curl
compile nicely on VMS.
Daniel (19 February 2002)
- Rick Richardson found out that by replacing PF_UNSPEC with PF_INET in the
getaddrinfo() calls, he could speed up some name resolving calls with an
order of magnitudes on his Redhat Linux 7.2.
- Philip Gladstone found a second INADDR_NONE problem where we used long
intead of in_addr_t which caused 64bit problemos. We really shouldn't define
that on two different places.
- Philip Gladstone found a problem in how HTTP requests were sent if the
request couldn't be sent all at once.
- Emil found and corrected a bad connection timeout comparison that made curl
use the longest of connect-timeout and timout as a timeout value, instead of
the shortest as it was supposed to!
- Aron Roberts provided updated information about LDAP URL syntax to go into
the manual as a replacement for the old references.
Daniel (17 February 2002)
- Philip Gladstone pointed out two missing include files that made curl core
dump on 64bit architectures. We need to pay more attention on these details.
It is *lethal* to for example forget the malloc() prototype, as 'int' is
32bit and malloc() must return a 64bit pointer on these platforms.
- Giaslas Georgios fixed a problem with Host: headers on repeated requests on
the same handle using a proxy.
Daniel (8 February 2002)
- Hanno L. Kranzhoff accurately found out that disabling the Expect: header
when doing multipart formposts didn't work very well. It disabled other
parts of the request header too, resulting in a broken header. When I fixed
this, I also noticed that the Content-Type wasn't possible to disable. It is
now, even though it probably is really stupid to try to do this (because of
the boundary string that is included in the internally generated header,
used as form part separator.)
Daniel (7 February 2002)
- I moved the config*.h files from the root directory to the lib/ directory.
- I've added the new test suite HTTP server to the CVS repository, It seems to
work pretty good now, but we must make it get used by the test scripts
properly and then we need to make sure that it compiles, builds and runs on
most operating systems.
Version 7.9.5-pre1
Daniel (6 February 2002)
- Miklos Nemeth provided updated windows makefiles and INSTALL docs.
- Mr Larry Fahnoe found a problem with formposts and I managed to track down
and patch this bug. This was actually two bugs, as the posted size was also
said to be two bytes too large.
- Brent Beardsley found out and brought a correction for the
CURLINFO_CONTENT_TYPE parser that was off one byte. This was my fault, I
accidentaly broke Giaslas Georgios' patch.
Daniel (5 February 2002)
- Kevin Roth found yet another SSL download problem.
Version 7.9.4
- no changes since pre-release
Version 7.9.4-pre2
Daniel (3 February 2002)
- Eric Melville provided a few spelling corrections in the curl man page.
Daniel (1 February 2002)
- Andreas Damm corrected the unconditional use of gmtime() in getdate, it now
uses gmtime_r() on all hosts that have it.
Daniel (31 January 2002)
- An anonymous bug report identified a problem in the DNS caching which made it
sometimes allocate one byte too little to store the cache entry in. This
happened when the port number started with 1!
- Albert Chin provided a patch that improves the gethostbyname_r() configure
check on HP-UX 11.00.
Version 7.9.4-pre1
Daniel (30 January 2002)
- Georg Horn found another way the SSL reading failed due to the non-blocking
state of the sockets! I fixed.
- Multipart formposts now send the full request properly, including the CRLF.
They were previously treated as part of the post data.
- The upload byte counter bugged.
- T. Bharath pointed out that we seed SSL on every connect, which is a time-
consuming operation that should only be needed to do once. We patched
libcurl to now only seed on the first connect when unseeded. The seeded
status is global so it'll now only happen once during a program's life time.
If the random_file or egdsocket is set, the seed will be re-made though.
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
- Giaslas Georgios introduced CURLINFO_CONTENT_TYPE that lets
curl_easy_getinfo() read the content-type from the previous request.
Daniel (28 January 2002)
- Kjetil Jacobsen found a way to crash curl and after much debugging, it
turned out it was a IPv4-linux only problem introduced in 7.9.3 related to
name resolving.
- Andreas Damm posted a huge patch that made the curl_getdate() function fully
reentrant!
- Steve Marx pointed out that you couldn't mix CURLOPT_CUSTOMREQUEST with
CURLOPT_POSTFIELDS. You can now!
Daniel (25 January 2002)
- Krishnendu Majumdar pointed out that the header length counter was not reset
between multiple requests on the same handle.
- Pedro Neves rightfully questioned why curl always append \r\n to the data
that is sent in HTTP POST requests. Unfortunately, this broke the test suite
as the test HTTP server is lame enough not to deal with this... :-O
- Following Location: headers when the connection didn't close didn't work as
libcurl didn't properly stop reading. This problem was added in 7.9.3 due to
the restructured internals. 'Frank' posted a bug report about this.
Daniel (24 January 2002)
- Kevin Roth very quickly spotted that we wrongly installed the example
programs that were built in the multi directory, when 'make install' was
used. :-/
Version 7.9.3
Daniel (23 January 2002)
- Andrés García found a persistancy problem when doing HTTP HEAD, that made
curl "hang" until the connection was closed by the server. This problem has
been introduced in 7.9.3 due to internal rewrites, this was not present in
7.9.2.
Version 7.9.3-pre4
Daniel (19 January 2002)
- Antonio filed bug report #505514 and provided a fix! When doing multipart
formposts, libcurl would include an error text in the actual post if a
specified file wasn't found. This is not libcurl's job. Instead we add an
empty part.
Daniel (18 January 2002)
- Played around with stricter compiler warnings for gcc (when ./configure
--enable-debug is used) and changed some minor things to stop the warnings.
- Commented out the 'long long' and 'long double' checks in configure.in, as
we don't currently use them anyway and the code in lib/mprintf.c that use
them causes warnings.
- Saul Good and jonatan pointed out Mac OS X build problems with pre3 and how
to correct them. Two compiler warnings were removed as well.
- Andrés García fixed two minor mingw32 building problems.
Version 7.9.3-pre3
Daniel (17 January 2002)
- docs/libcurl-the-guide is a new tutorial for our libcurl programming
friends.
- Richard Archer brought back the ability to compile and build with OpenSSL
versions before 0.9.5.
[http://sourceforge.net/tracker/?func=detail&atid=100976&aid=504163&group_id=976]
- The DNS cache code didn't take the port number into account, which made it
work rather bad on IPv6-enabled hosts (especially when doing passive
FTP). Sterling fixed it.
Daniel (16 January 2002)
- Georg Horn could make a transfer time-out without error text. I found it and
corrected it.
- SSL writes didn't work, they return an uninitialized value that caused
havoc all over. Georg Horn experienced this.
- Kevin Roth patched the curl_version() function to use the proper OpenSSL
function for version information. This way, curl will report the version of
the SSL library actually running right now, not the one that had its headers
installed when libcurl was built. Mainly intersting when running with shared
OpenSSL libraries.
Version 7.9.3-pre2
Daniel (16 January 2002)
- Mofied the main transfer loop and related stuff to deal with non-blocking
sockets in the upload section. While doing this, I've now separated the
connection oriented buffers to have one for downloads and one for uploads
(as two can happen simultaneously). I also shrunk the buffers to 20K
each. As we have a scratch buffer twice the size of the upload buffer, we
arrived at 80K for buffers compared with the previous 150K.
- Added the --cc option to curl-config command as it enables so very cool
one-liners. Have a go a this one, building the simple.c example:
$ `curl-config --cc --cflags --libs` -o example simple.c
Daniel Stenberg
committed
Daniel (14 January 2002)
- I made all socket reads (recv) handle EWOULDBLOCK. I hope nicely. Now we
only need to address all writes (send) too and then I'm ready for another
pre-release...
- Stoned Elipot patched the in_addr_t configure test to make it work better on
more platforms.
Daniel (9 January 2002)
- Cris Bailiff found out that filling up curl's SSL session cache caused a
crash!
- Posted the curl questionnaire on the web site. If you haven't posted your
opinions there yet, go there and do it now while it is still there:
http://curl.haxx.se/q/
- Georg Horn quickly found out that the SSL reading no longer worked as
supposed since the switch to non-blocking sockets. I've made a quick patch
(for reading only) but we should improve it even further.
Version 7.9.3-pre1
Daniel (7 January 2002)
- I made the 'bool' typedef use an "unsigned char". It makes it the same on
all platforms, no matter what the platform thinks the default format for
char is. This was noticed since we made a silly comparison involving such a
bool variable, and only one compiler/platform combination (on Debian Linux)
complained about it (that happened to have its char unsigned by default).
- Bug report #495290 identified a cookie parsing problem that was corrected.
When a Set-Cookie: line is received without a trailing semicolon, libcurl
didn't read the last "name=value" pair of the line, leading to confusions...
- Sterling committed his updated DNS cache code.
- I worked with Georg Horn and comments from Götz Babin-Ebell and switched
curl's socket operations completely over to non-blocking for the entire
operation (previously we used non-blocking only for the connection phase).
We had to do this to make the SSL connection phase timeout properly without
the use of signals. A little extra code to deal with this was added.
- T. Bharath pointed out a slightly obscure cookie engine flaw.
- Pete Su pointed out that libcurl didn't treat HTTP code 204 as it should.
204-replies never provides a response-body. This resulted in bad persistant
behavior when 204 was received.
Daniel (5 January 2002)
- SM updated the VC++ library Makefiles for the new source files.
Daniel (4 January 2002)
- I discovered that we wrongly used inet_ntoa() (instead of inet_ntoa_r() in
two places in the source code). One happened with VERBOSE set on connects,
and the other when VERBOSE was on and krb4 over nat was used... I honestly
don't think anyone has suffered from these mistakes.
- I replaced a lot of silly occurances of printf() to instead use the more
appropriate Curl_infof() or Curl_failf(). The krb4 and telnet code were
affected.
- Philip Gladstone found a few more problems with 64-bit archs (the 64-bit
sparc on solaris 8).
- After discussions on the libcurl list with Raoul Cridlig, I just made FTP
response lines get passed to the header callback if such a one is
registered. It'll make it possible for any application to get all the
responses an FTP server sends to libcurl.
- Sterling Hughes brought a few buckets of code. Now, libcurl will
automatically cache DNS lookups and re-use the previous results first if any
such is available. It greatly improves speed when doing many repeated
operations to the same host.
- As the test case uses --include and then --head, I had to modify src/main.c
to deal with this situation slightly better than previously. When done, we
have 100% good tests again in the main branch.
- Made test case 25 run again in the multi-dev branch. But it seems that the
changes done on dec-20 made test case 104 cease to work (in both branches).
- Philip Gladstone pointed out a few portability problems in the source code
that didn't compile on 64-bit sparcs using Sun's native compiler...
Daniel (20 December 2001)
- Björn Stenberg caught an unpleasent (but hard-to-find) bug that could cause
libcurl to hang on transfers over proxy, when the proxy was specified with
an environment variable!
- Added code to make ftp operations treat the NO_BODY and HEADERS options
better:
NO_BODY set TRUE and HEADERS set TRUE:
Return a set of headers with file info
NO_BODY set FALSE
Transfer data as usual, HEADERS is ignored
NO_BODY set TRUE and HEADERS set FALSE
Don't transfer any data, don't return any headers. Just perform the set
of FTP commands.
Daniel (17 December 2001)
- Götz Babin-Ebell dove into the dark dungeons of the OpenSSL ENGINE stuff and
made libcurl support it! This allows libcurl to do SSL connections with the
private key stored in external hardware.
To make this good, he had to add a bunch of new library options that'll be
useful to others as well:
CURLOPT_SSLCERTTYPE set SSL cert type (PEM/DER)
CURLOPT_SSLKEY set SSL private key (file)
CURLOPT_SSLKEYTYPE: set SSL key type (PEM/DER/ENG)
CURLOPT_SSLKEYPASSWD: set the passphrase for your private key
(CURLOPT_SSLCERTPASSWD is an alias)
CURLOPT_SSLENGINE: set the name of the crypto engine
(returns CURLE_SSL_ENGINE_NOTFOUND on error)
CURLOPT_SSLENGINE_DEFAULT: set the default engine
There are two new failure codes:
CURLE_SSL_ENGINE_NOTFOUND
CURLE_SSL_ENGINE_SETFAILED
Daniel (14 December 2001)
- We have "branched" the source-tree at a few places. Checkout the CVS sources
with the 'multi-dev' label to get the latest multi interface development
tree. The idea is to only branch affected files and to restrict the branch
to the v8 multi interface development only.
*NOTE* that if we get bug reports and patches etc, we might need to apply
them in both branches!
The multi-dev branch is what we are gonna use as main branch in the future
if it turns out successful. Thus, we must maintain both now in case we need
them. The current main branch will be used if we want to release a 7.9.3 or
perhaps a 7.10 release before version 8. Which is very likely.
- Marcus Webster provided code for the new CURLFORM_CONTENTHEADER option for
curl_formadd(), that lets an application add a set of headers for that
particular part in a multipart/form-post. He also provided a section to the
man page that describes the new option.
Daniel (11 December 2001)
- Ben Greear made me aware of the fact that the Curl_failf() usage internally
was a bit sloppy with adding newlines or not to the error messages. Let's
once and for all say that they do not belong there!
- When uploading files with -T to give a local file name, and you end the URL
with a slash to have the local file name used remote too, we now no longer
use the local directory as well. Only the file part of the -T file name
will be appended to the right of the slash in the URL.
Daniel (7 December 2001)
- Michal Bonino pointed out that Digital Unix doesn't have gmtime_r so the
link failed. Added a configure check and corrected source code.
Version 7.9.2
Daniel (5 December 2001)
- Jon Travis found out that if you used libcurl and CURLOPT_UPLOAD and then
on the same handle used CURLOPT_HTTPGET it would still attempt to upload.
His suggested fix was perfect.
Daniel (4 December 2001)
- Incorporated more macos fixes and added four specific files in a new
subdirectory below src.
Daniel (3 December 2001)
- Eric Lavigne reported two problems:
First one in the curl_strnequal() function. I think this problem is rather
macos 9 specific, as most platform provides a function to use instead of the
one provided by libcurl.
A second, more important, was in the way we take care of FTP responses. The
code would read a large chunk of data and search for the end-of-response
line within that chunk. When found, it would just skip the rest of the
data. However, when the network connections are special, or perhaps the
server is, we could actually get more than one response in that chunk of
data so that when the next invoke to this function was done, the response
had already been read and thrown away. Now, we cache the data not used in
one call, as it could be useful in the subsequent call. Test case 126 was
added and the test ftp server modified, to exercise this particular case.
Version 7.9.2-pre8
Daniel (2 December 2001)
- Bug report #487825 correctly identified a problem when using a proxy and
following a redirection from HTTP to HTTPS. libcurl then re-used the same
proxy connection but without doing a proper HTTPS request.
- Fixed win32 compiling quirks.
Version 7.9.2-pre7
Daniel (30 November 2001)
- Documented --disable-epsv and CURLOPT_FTP_USE_EPSV.
- Added --disable-epsv as an option. When used, curl won't attempt to use the
EPSV command when doing passive FTP downloads. Wrote a test case for it.
- Eric provided a few more fixes for building on Macs. He also pointed out
a flaw in the signal handler restoration code.
- Fiddled with some Tru64 problems reported by Dimitris Sarris. They appeared
only when using VERBOSE ftp transfers. Do we use a too small buffer for
gethostbyaddr_r(), was the lack of using in_addr_t wrong or is it that the
hostent struct must be blanked before use? With Dimitris help and these
patches, the problems seem to be history.
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
- CURLOPT_FTP_USE_EPSV was added and can be set to FALSE to prevent libcurl
from using the EPSV command before trying the normal PASV. Heikki Korpela
pointed out that some firewalls and similar don't like the EPSV so we must
be able to shut if off to work everywhere.
- I added a configure check for 'in_addr_t' and made the ftp code use that to
receive the inet_addr() return code in. Works on Solaris and Linux at
least. The Linux man page for inet_addr() doesn't even mention in_addr_t...
- Adjusted (almost) all FTP tests to the new command sequence.
- FTP command sequence changes:
EPSV is now always attempted before PASV. It is the final touch to make IPv6
passive FTP downloads to work, but EPSV is not restricted to IPv6 but works
fine with IPv4 too on the servers that support it.
SIZE is now always issued before RETR. It makes curl know the actual
download size before the download takes place, as it makes it less important
to find the size sent in RETR responses. Many sites don't include the size
in there.
Both these changes made it necessary to change the test suite's ftp server
code, and all FTP test cases need to be checked and adjusted!
Daniel (27 November 2001)
- Hans Steegers pointed out that the telnet code read from stdout, not stdin
as it is supposed to do!
Version 7.9.2-pre6
- Eric Lavigne's minor changes to build on MacOS before OS X were applied.
- greep at mindspring.com provided a main index.html page for our release
archive docs directory. It just links to all the existing HTML files, but
I think it may come useful to people.
- There's now some initial code to support the EPSV FTP command. That should
be used to do passive transfers IPv6-style. The code is still #if 0'ed in
lib/ftp.c as I have no IPv6 ftp server to test this with.
Daniel (26 November 2001)
- Robert Schlabbach had problems to understand how to do resumed transfers,
and I clarified the man page -C section somewhat.
Daniel (22 November 2001)
- Andrés García helped me out to track down the roots of bug report #479537,
which was concerning curl returning the wrong error code when failing to
connect. This didn't happen on all systems, and more specificly I've so far
only seen this happen on IPv4-only Linux hosts.
- I applied the fixes for the two bugs Eric Lavigne found when doing his MacOS
port. A missing comma in arpa_telnet.h and a pretty wild write in the FTP
response reader function. The latter write is however likely to occur in our
own buffer unless very big FTP server replies (>25K) are read. I've never
seen such a reply ever, so I think this is a relatively minor risk.
Daniel (21 November 2001)
- Moonesamy provided code to prevent junk from being output when libcurl
returns an error code but no error description and that corrects how make is
run in the Makefile.dist file (that appears as root Makefile in release
archives).
- Eric Lavigne mailed me bugfixes and patches for building libcurl on MacOS
- Kevin Roth modified the cygwin files once again, now to build against the
shared OpenSSL DLLs.
Version 7.9.2-pre4
Daniel (20 November 2001)
- Georg Horn brought a patch that introduced CURLINFO_STARTTRANSFER_TIME,
complete with man page updates!
- Miklos Nemeth provided details enough to update the Borland makefile
properly.
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
- Lars M Gustafsson found a case with a bad free(). In fact, it was so bad I'm
amazed we never saw this before!
- Kevin Roth patched the cygwin Makfile.
Daniel (16 November 2001)
- Klevtsov Vadim fixed a bug in how time-conditionals were sent when doing
HTTP.
Version 7.9.2-pre3
Daniel (14 November 2001)
- Samuel Listopad patched away the problem with SSL we got when someone call
curl_global_init() => curl_global_cleanup() => curl_global_init(). The
second init would not "take" and SSL would be unusable with curl from that
point. This doesn't change the fact that calling the functions that way is
wrong. curl_global_init() should be called exactly once and not more.
Daniel (13 November 2001)
- Fixed some minor variable type mixups in ftp.c that caused compiler warnings
on HP-UX 11.00.
- The FTP fix I did yesterday used an uninitialized variable that caused
spurious errors when doing FTP.
Version 7.9.2-pre2
- Ricardo Cadime fell over a multiple-requests problem when first a FTP
directory fetch failed and then a second request is made after that. The
second request happened to get the FTP server response back from the
previous request, when it did its initial CWD command.
- Bjorn Reese pointed out that we could improve the time diff function to
- Kai-Uwe Rommel made me aware that -p (http proxy tunnel) silly enough didn't
work for plain HTTP requests! So I made that work.
Version 7.9.2-pre1
Daniel (12 November 2001)
- Rewrote the Curl_ConnectHTTPProxyTunnel(). It should now not only work a lot
faster, it should also support such ("broken") proxies that John Lask
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
previously have reported problems with. His proxy sends a trailing zero byte
after the end of the (proxy-) headers. I've tested this myself and it seems
to work on a proxy the previous version also worked with...! This rewrite is
due to the problems John Lask previously experienced.
- Andrés García found out why the "current speed" meter sometimes showed 2048K
for very quick transfers. It turned out the "time diff"-function returned a
zero millisecond diff. We now always say it is at least one millisecond! In
reality, these timers very rarely have that good resolution so even though
the time diff was longer than 1 millisecond, it was reported as no diff.
- I also modified the getinfo() again when returning times, as Paul Harrington
reports that 7.9.1 only returns times with 1 second accuracy, which indeed
is wrong.
Daniel (8 November 2001)
- Marcus Webster found out that curl_formadd() could read one byte outside a
buffer boundary, which then of course could lead to a crash. Marcus also
gracefully provided a patch for this this.
- Glen Scott ran configure on his Cobalt Qube and it didn't figure out the
correct way of calling gethostbyname_r() and thus failed to resolve hosts.
This is two errors: it shouldn't continue the configure script if it finds
gethostbyname_r() but can't figure out how to use it, and it should really
figure out how to use it as it was running Linux and we know how that
works...
Daniel (7 November 2001)
- docs/VERSIONS is a new file in the archive that explains the version number
system we use in the curl project.
- Did some more fixes that now makes libcurl only ignore signals as long as
it needs to, and then restore (if any) previous signal handler again.
Daniel Stenberg
committed
Daniel (6 November 2001)
- Enrik Berkhan posted bug report #478780, in which he very correctly pointed
out two bad timeout matters in libcurl: we didn't restore the sigaction
struct (the alarm handler for SIGALRM) nor did we restore the previous
alarm() timeout that could've been set by a "parent" process or similar.
Daniel Stenberg
committed
- Kevin Roth made the cygwin binary get stripped before install.
Daniel (5 November 2001)
- Detlef Schmier reported that curl didn't compile using Solaris 8 with the
native cc compiler. It was due to a bad function prototype. Fixed now.
Unfortunately, I can't enable the -Wstrict-prototypes in my debug builds
though, as gcc then complains like crazy on OpenSSL include files... :-(
- John Lask provided SSL over HTTP proxy fixes. They'll need some tweaking
to work on all platforms.
Daniel Stenberg
committed
- John Lask added the -1/--TLSv1 options that forces SSL into using TLS
version 1 when speaking HTTPS.
- John Lask brought a brand new VC++ makefile for the lib directory, that
works a lot better than the previous!
- Ramana Mokkapati brought some clever insights on the LDAP failures (bug
report #475407), and his suggested changes are now applied.
Version 7.9.1
Daniel (4 November 2001)
- I've added a number of new test cases the last few days. A few of them since
I got reports that hinted on problems on timeouts, so I added four tests
with timeouts for all sorts of protocols and stuff. I also came to think of
a few other error scenarios that we currently didn't test properly, so I
wrote up tests for a few of those too.
Daniel (2 November 2001)
- Replaced read() and write() with recv() and send() for socket operations
even under normal unixes.
Daniel (1 November 2001)
- When an FTP transfer was aborted due to a timeout, it wasn't really aware of
how many bytes that had been transferred and the error text always said 0
bytes. I modified this to output the actually transferred amount! :-)
- The FTP fixes in pre7 didn't compile on IPv6 enabled hosts. Does now. I also
added more comments in the lib/ftp.c source file.
- Minor updates to the FAQ, added a brand new section to the web site about
the name issue (who owns "curl"? will someone sue us? etc etc):
http://curl.haxx.se/legal/thename.html
Daniel Stenberg
committed
- The curl_easy_getinfo() timers accidentally lost their subsecond accuracy as
the calculations used longs instead of doubles! Paul Harrington reported.
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
- The SSL SocketIsDead() checks weren't good enough (as expected really), so I
had to add a generic internal try-it-out system. If the request on a re-used
connection seems to fail, then we go back and get a new (fresh) connection
and re-tries the request on that instead. It kind of makes the
SocketIsDead() check obsolete, but I think it is a quicker way for those
cases where it actually discovers that the connection is dead.
- When fixing the above, I noticed that we did quite a few writes to sockets
in libcurl where we didn't check the return code (that it actually worked to
send the data). With the new "attempted request" system we must detect those
situations so I went over a bunch of functions, changed return types and
added checks for what they actually return.
Version 7.9.1-pre6
Daniel (31 October 2001)
- Paul Harrington detected a problem with persistant SSL connections. Or to be
more exact, we didn't properly detect that the connection was dead and then
a second connection would try to re-use it wrongly. The solution to this
problem is still not very clear and I'm working on it. One OpenSSL insider
said there is no way to know if the SSL connection is alive or not without
actually trying an operation.
Daniel (30 October 2001)
- If a cookie was read from a file, it could accidentally strdup() a NULL
pointer. Paul Harrington reported. [http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/curl/curl/lib/cookie.c.diff?r1=1.25&r2=1.26]
- The MANUAL file now documents -t correctly. I also fixed the -T description
in the curl.1 man page.
- John Janssen found out that curl_formadd was missing in the libcurl.def file
and that the docs stated the wrong return type for the function.
- Andrés García found a bug with multiple files in the curl_formadd() function,
that I removed with this patch [http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/curl/curl/lib/formdata.c.diff?r1=1.25&r2=1.26].
- Kevin Roth brought another patch that moved the cygwin package files to the
packages/Win32/cygwin directory.
- A bug in the connection re-use logic made repeated requests to the same FTP
server (when using name+pasword in the URL) sometimes use more than one
connection. [http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/curl/curl/lib/url.c.diff?r1=1.166&r2=1.167]
- Moonesamy tracked down and fixed a problem with the new 7.9.1 connect
code. This corrected the error Kevin Roth reported on the 7.9.1-pre5 release
(test 19)...
[http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/curl/curl/lib/connect.c.diff?r1=1.13&r2=1.14]
Daniel (26 October 2001)
- Added test28 which verifies that "Location:"-following works even if the
contents is separated with more than one space.
Daniel (25 October 2001)
- Ramana Mokkapati pointed out that LDAP transfers would 'hang' after the
correct data has been output.
Version 7.9.1-pre5
Daniel (24 October 2001)
- T. Bharath found a memory leak in the cookie engine. When we update a cookie
that we already knew about, we lost a chunk of memory in the progress... The
brand new test case 27 now tests for this occurrence. [http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/curl/curl/lib/cookie.c.diff?r1=1.24&r2=1.25]
Daniel (23 October 2001)
- pack_hostent() didn't properly align some pointers, so at least SPARC CPUs
would core. [http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/curl/curl/lib/hostip.c.diff?r1=1.34&r2=1.35]
Daniel (22 October 2001)
- Tom Benoist reported that this SGI IRIX compiler didn't handle indented
preprocessor instructions, so they're no longer in the source code!
- Applied Kevin Roth's patches to make it easier to build cygwin packages from
the out-of-the-box curl release archives.
- I forgot to mention it below, but libcurl now closes connections that report
transfer failures. Unconditionally. This could be made more nicely in the
future if we set a flag or something that the connection is still good to be
used for the errors that know that for a fact. We have to close the
connection for the cases where we abort for example a HTTP transfer in the
middle, or otherwise we might re-use that connection later with lots of data
still being sent to us on it. [http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/curl/curl/lib/transfer.c.diff?r1=1.63&r2=1.64]
Daniel (19 October 2001)
- CURLE_GOT_NOTHING is now returned when a HTTP server doesn't return
anything, not even a header. test case 37 was added to test for this.
- T. Bharath made curl_easy_duphandle() properly clone the cookie status as
well.
Version 7.9.1-pre4
Daniel (18 October 2001)
- CURLOPT_FAILONERROR, set with "curl --fail" no longer returns an error if
the HTTP return code is below 400.
Daniel (17 October 2001)
- The test suite now kills any running test http server when you re-start the
tests.
- We had to remove 'use strict' from two perl scripts, as the cygwin
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
adjustments didn't play nicely otherwise for some reason. Any perl wizard
out there who can put the scrict back and still make it run good on unix and
cygwin?
- A potential memory leak pointed out to us by Yanick Pelletier was removed.
It would occur when a http file transfer fails. [http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/curl/curl/lib/transfer.c.diff?r1=1.60&r2=1.61]
- The memory debugging system should no longer display anything to stderr
if the curl_memdebug() hasn't been used to explicitly say so. This makes it
easier to use the memory debug system and switch the logging on/off.
Daniel (16 October 2001)
- Kevin Roth provided fixes for building curl nicer in cygwin environments.
Daniel (12 October 2001)
- Cleaning up the progress meter/info code. The "current speed" is now more
accurate than before as we now use the true time spent between the measures,
and not just "assuming" every-second-update like before. The output should
now also be of the same width at all times, never to show "extra" zeroes on
the right edge.
- After talking about possible Location: bugs on the mailing list, I modified
the "absolute URL" checker in lib/transfer.c to be more strict when checking
if the redirected URL is absolute.
Daniel (11 October 2001)
- Kevin Roth provided patches that make the test suite run fine on Windows
2000 running cygwin.
Daniel (10 October 2001)
- Setting the -c or the CURLOPT_COOKIEJAR option now enables the cookie parser.
Previously -b or CURLOPT_COOKIEFILE was also required for the jar to work.
Version 7.9.1-pre3
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
Daniel (9 October 2001)
- Added a new option to the command line client: -0/--http1.0. It uses the new
libcurl option CURLOPT_HTTP_VERSION to request that libcurl uses HTTP 1.0
requests instead of the default version (1.1). It should only be used if you
really MUST do that because of a silly remote server.
- Renamed the 'TimeCond' typedef in curl/curl.h to use a 'curl_' prefix as
all public curl-symbols should.
- libcurl now explicitly ignores the SIGPIPE signal.
Daniel (8 October 2001)
- Kevin Roth's change to the cookie-jar comment (in the stored file) was
applied.
- Lucas Adamski's minor bug in the bind error code failf() was fixed.
Daniel (5 October 2001)
- Moonesamy fixed the Curl_connecthost() function to not give compiler errors
on a bunch of compilers, due to the argument named 'socket'.
- Moonesamy also provided updated VC++ makefiles and project files.
Version 7.9.1-pre2
Daniel (4 October 2001)
- Albert Chin provided a configure patch that makes the script detect proper
gethostbyname_r() method without actually running any code, only compiling
is necessary. This also removes the need of having a resolving 'localhost'
name.
- Found and removed memory leakage (name resolve data) in libcurl on
IPv6-enabled hosts. These could sneak through because we didn't have any
resource tracing on the IPv6-related functions. We do now.
- Keith McGuigan patched away a (mainly Windows-) problem with the name
resolver data being kept in the static memory area, which is removed when a
thread is killed. The curl handle itself though perfectly handles being
passed between threads.
- Dirk Eddelbuettel reported an odd bug that turned out to be his proxy that
required an Authorization: header. Now, proxies are not supposed to require
that header, that is for true servers...
- I accidentally ruined Georg's curl_formadd(). Uh, bad me. Corrected now.
Version 7.9.1-pre1
Daniel (3 October 2001)
- Georg Huettenegger once again made an effort beyond the call of duty and not
only improved the curl_formadd() function, but also took care of adjusting
the curl command line client to use this new function instead of the
obsoleted curl_formparse.
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
Daniel (2 October 2001)
- Major fix in how libcurl does TCP connects. It now does non-blocking
connects to enable good timeouts without signals, and it now tries all IP
addresses for any given host (if it resolves more than one and the first
one(s) don't connect). Added a new source file 'connect.c' to deal with all
the TCP connect stuff.
- We now support IPv4-style IP-addresses in rfc2732-format, to better support
people writing scripts without knowing what address there is.
Daniel (28 September 2001)
- Cleanups in the FTP source code. Divided the code into even more smaller
functions and generally tried to make the differences between IPv4 and IPv6
get less noticable in the sources.
- If the remote file time is not readable/accessable/understood by libcurl,
libcurl now returns -1 in the CURLINFO_FILETIME data, not 0 as it previously
did. This should make curl not touch the file data unless there was a known
remote date when -R is used.
Daniel (27 September 2001)
- Working on getting non-blocking connects working platform independent. We
will also make curl try all IPs for a given host if the first one should
fail.
Daniel (26 September 2001)
- Kevin Roth provided a cookie example that proved the cookie jar
functionality wasn't working properly. I added test case 46 and made it
work.
Daniel (25 September 2001)
- Jörn Hartroth updated the mingw32 makefiles.
Version 7.9
Daniel (23 September 2001)
- Found and removed a 'socket leak' that would occur on IPv6 enabled hosts
when FTP RETR failed.
- Made the FTP upload tests run fine on machines with IPv6 enabled.
Version 7.9-pre8
Daniel (19 September 2001)
- Vojtech Minarik set up a special-purpose test server and provided me with
test certificates in order for me to repeat the bug reports #440068 and
#440373. It turned out we didn't check all the error codes properly. We do
now, and connecting with a unacceptable certificate will make libcurl fail
to connect with an error code returned.
- Ramana Mokkapati found a case when the Location: following code did wrong.
I wrote a test case for this (45).
Version 7.9-pre7
- Linus Nielsen Feltzing fixed telnet for win32. It makes libcurl require
winsock 2.0.
- libtool 1.4.2 is now in use!
Version 7.9-pre5
Daniel (14 September 2001)
- Added another 14 ftp tests.
Daniel (13 September 2001)
- Added curl_easy_duphandle() to the easy.h header file. It has now been
tested and proved to work in a real-world tests by T Bharath. We still need
to write up some docs for this function.
- Added four more ftp tests to the test suite.
Daniel (12 September 2001)
- CURLOPT_SSL_CIPHER_LIST was added, and the curl tool option is named
--ciphers. Use them to specify a list of ciphers to use in the SSL
connection.
- T. Bharath found a memory leak in libcurl's windows version. It turned out
to be the new duphandle() that didn't quite work yet.
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
Daniel (11 September 2001)
- Added verbose output for SSL connections that output the server
certificate's start and expire dates. As suggested by Paul Harrington.
- Heikki Korpela found problems in the perl ftp server used for the test
suite, when he runs on on OpenBSD with perl 5.6. Some changes have been
made, but nothing really certain.
- T. Bharath has experienced problems with libcurl's stack usage on windows
and works on reducing it.
Daniel (10 September 2001)
- Cris Bailiff fixed the perl interface. It stopped working since the changed
behavior with WRITEHEADER and NULL pointers.
- The "output cookies" function could dump core if no cookies were enabled.
Daniel (7 September 2001)
- SM pointed out that the SSL code didn't compile any longer if SSL was
disabled... Also, we needed to correct the #include for the utime stuff on
windows.
Daniel (6 September 2001)
- T. Bharath pointed out a flaw in the SSL session cache code that made it
sometimes read from a NULL pointer.
Version 7.9-pre3