Newer
Older
Daniel Stenberg
committed
13001
13002
13003
13004
13005
13006
13007
13008
13009
13010
13011
13012
13013
13014
13015
13016
13017
13018
13019
13020
13021
13022
13023
13024
13025
13026
13027
13028
13029
13030
13031
13032
13033
13034
13035
13036
13037
13038
13039
13040
13041
13042
13043
13044
13045
13046
13047
13048
13049
13050
13051
13052
13053
13054
13055
13056
13057
13058
13059
13060
13061
13062
13063
13064
13065
13066
13067
13068
13069
13070
13071
13072
13073
13074
13075
13076
13077
13078
13079
13080
13081
13082
13083
13084
13085
13086
13087
13088
13089
13090
13091
13092
13093
13094
13095
13096
13097
13098
13099
13100
13101
13102
13103
13104
13105
13106
13107
13108
13109
13110
13111
13112
13113
13114
13115
13116
13117
13118
13119
13120
13121
13122
13123
13124
13125
13126
13127
13128
13129
13130
13131
13132
13133
13134
13135
13136
13137
13138
13139
13140
13141
13142
13143
13144
13145
13146
13147
13148
13149
13150
13151
13152
13153
13154
13155
13156
13157
13158
13159
13160
13161
13162
13163
13164
13165
13166
13167
13168
13169
13170
13171
13172
13173
13174
13175
13176
13177
13178
13179
13180
13181
13182
13183
13184
13185
13186
13187
13188
13189
13190
13191
13192
13193
13194
13195
13196
13197
13198
13199
13200
13201
13202
13203
13204
13205
13206
13207
13208
13209
13210
13211
13212
13213
13214
13215
13216
13217
13218
13219
13220
13221
13222
13223
13224
13225
13226
13227
13228
13229
13230
13231
13232
13233
13234
13235
13236
13237
13238
13239
13240
13241
13242
13243
13244
13245
13246
13247
13248
13249
13250
13251
13252
13253
13254
13255
13256
13257
13258
13259
13260
13261
13262
13263
13264
13265
13266
13267
13268
13269
13270
13271
13272
13273
13274
13275
13276
13277
13278
13279
13280
13281
13282
13283
13284
13285
13286
13287
13288
13289
13290
13291
13292
13293
13294
13295
13296
13297
13298
13299
13300
13301
13302
13303
13304
13305
13306
13307
13308
13309
13310
13311
13312
13313
13314
13315
13316
13317
13318
13319
13320
13321
13322
13323
13324
- 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.
Daniel (3 January 2002)
- 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.
Daniel (2 January 2002)
- 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.
Daniel (29 November 2001)
- 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.
Daniel (28 November 2001)
- 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.
- 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
Daniel (27 November 2001)
- 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.
Version 7.9.2-pre5
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
(non-X).
- 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!
Daniel (19 November 2001)
- Miklos Nemeth provided details enough to update the Borland makefile
properly.
- 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
Daniel (12 November 2001)
- 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
prevent truncation a bit.
- 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
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 Stenberg
committed
13326
13327
13328
13329
13330
13331
13332
13333
13334
13335
13336
13337
13338
13339
13340
13341
13342
13343
13344
13345
13346
13347
13348
13349
13350
13351
13352
13353
13354
13355
13356
13357
13358
13359
13360
13361
13362
13363
13364
13365
13366
13367
13368
13369
13370
13371
13372
13373
13374
13375
13376
13377
13378
13379
13380
13381
13382
13383
13384
13385
13386
13387
13388
13389
13390
13391
13392
13393
13394
13395
13396
13397
13398
13399
13400
13401
13402
13403
13404
13405
13406
13407
13408
13409
13410
13411
13412
13413
13414
13415
13416
13417
13418
13419
13420
13421
13422
13423
13424
13425
13426
13427
13428
13429
13430
13431
13432
13433
13434
13435
13436
13437
13438
13439
13440
13441
13442
13443
13444
13445
13446
13447
13448
13449
13450
13451
13452
13453
13454
13455
13456
13457
13458
13459
13460
13461
13462
13463
13464
13465
13466
13467
13468
13469
13470
13471
13472
13473
13474
13475
13476
13477
13478
13479
13480
13481
13482
13483
13484
13485
13486
13487
13488
13489
13490
13491
13492
13493
13494
13495
13496
13497
13498
13499
13500
13501
13502
13503
13504
13505
13506
13507
13508
13509
13510
13511
13512
13513
13514
13515
13516
13517
13518
13519
13520
13521
13522
13523
13524
13525
13526
13527
13528
13529
13530
13531
13532
13533
13534
13535
13536
13537
13538
13539
13540
13541
13542
13543
13544
13545
13546
13547
13548
13549
13550
13551
13552
13553
13554
13555
13556
13557
13558
13559
13560
13561
13562
13563
13564
13565
13566
13567
13568
13569
13570
13571
13572
13573
13574
13575
13576
13577
13578
13579
13580
13581
13582
13583
13584
13585
13586
13587
13588
13589
13590
13591
13592
13593
13594
13595
13596
13597
13598
13599
13600
13601
13602
13603
13604
13605
13606
13607
13608
13609
13610
13611
13612
13613
13614
13615
13616
13617
13618
13619
13620
13621
13622
13623
13624
13625
13626
13627
13628
13629
13630
13631
13632
13633
13634
13635
13636
13637
13638
13639
13640
13641
13642
13643
13644
13645
13646
13647
13648
13649
13650
13651
13652
13653
13654
13655
13656
13657
13658
13659
13660
13661
13662
13663
13664
13665
13666
13667
13668
13669
13670
13671
13672
13673
13674
13675
13676
13677
13678
13679
13680
13681
13682
13683
13684
13685
13686
13687
13688
13689
13690
13691
13692
13693
13694
13695
13696
13697
13698
13699
13700
13701
13702
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 (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.
- 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.
- 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
Version 7.9.1-pre7
Daniel (31 October 2001)
- The curl_easy_getinfo() timers accidentally lost their subsecond accuracy as
the calculations used longs instead of doubles! Paul Harrington reported.
- 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.
Daniel (29 October 2001)
- 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
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
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.
Daniel (3 October 2001)
- 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.
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
Daniel (17 September 2001)
- Linus Nielsen Feltzing fixed telnet for win32. It makes libcurl require
winsock 2.0.
Version 7.9-pre6
- 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.
Version 7.9-pre4
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
Daniel (3 September 2001)
- Added the -R/--remote-time option, that uses the remote file's datestamp to
set the local file's datestamp. Thus, when you get a remote file your local
file will get the same time and date. Note that this only works when you use
-o or -O.
- Installed libtool 1.4.1, libtoolized and everything.
Daniel (1 September 2001)
- Heikki Korpela pointed out that I did not ship the proper libtool stuff in
Daniel Stenberg
committed
13704
13705
13706
13707
13708
13709
13710
13711
13712
13713
13714
13715
13716
13717
13718
13719
13720
13721
13722
13723
13724
13725
13726
13727
13728
13729
13730
13731
13732
13733
13734
13735
13736
13737
13738
13739
13740
13741
13742
13743
13744
13745
13746
13747
13748
13749
13750
13751
13752
13753
13754
13755
13756
13757
13758
13759
13760
13761
13762
13763
13764
13765
13766
13767
13768
13769
13770
13771
13772
13773
13774
13775
13776
13777
13778
13779
13780
13781
13782
13783
13784
13785
13786
13787
13788
13789
13790
13791
13792
13793
13794
13795
13796
13797
13798
13799
13800
13801
13802
13803
13804
13805
13806
13807
13808
13809
13810
13811
13812
13813
13814
13815
13816
13817
13818
13819
13820
13821
13822
13823
13824
13825
13826
13827
13828
13829
13830
13831
13832
13833
13834
13835
13836
13837
13838
13839
13840
13841
13842
13843
13844
13845
13846
13847
13848
13849
13850
13851
13852
13853
13854
13855
13856
13857
13858
13859
13860
13861
13862
13863
13864
13865
13866
13867
13868
13869
13870
13871
13872
13873
13874
13875
13876
13877
13878
13879
13880
13881
13882
13883
13884
13885
13886
13887
13888
13889
13890
13891
13892
13893
13894
13895
13896
13897
13898
13899
13900
13901
13902
13903
13904
13905
13906
13907
13908
13909
13910
13911
13912
13913
13914
13915
13916
13917
13918
13919
13920
13921
13922
13923
13924
13925
13926
13927
13928
13929
13930
13931
13932
13933
13934
13935
13936
13937
13938
13939
13940
13941
13942
13943
13944
13945
13946
13947
13948
13949
13950
13951
13952
13953
13954
13955
13956
13957
13958
13959
13960
13961
13962
13963
13964
13965
13966
13967
13968
13969
13970
13971
13972
13973
13974
13975
13976
13977
13978
13979
13980
13981
13982
13983
13984
13985
13986
13987
13988
13989
13990
13991
13992
13993
13994
13995
13996
13997
13998
13999
14000
the pre-releases, even though that was my intention. libtoolize has now
been re-run.
- Heikki also patched away the bad use of 'make -C' in the test suite
makefile. make -C is not very portable and is now banned from here.
Version 7.9-pre2
Daniel (31 August 2001)
- I just made a huge internal struct rehaul, and all the big internally used
structs have been renamed, redesigned and stuff have been moved around a bit
to make the source easier to follow, more logically grouped and to hopefully
decrease future bugs. I also hope that this will make new functions to get
easier to add, and make it less likely that we have bugs left like the URL-
free bug from August 23.
Version 7.9-pre1
Daniel (29 August 2001)
- The new cookie code have enabled the brand new '-c/--cookie-jar' option. Use
that to specify the file name in which you want to have all cookies curl
knows of, dumped to. It'll be written using the netscape cookie format.
This is internally done with the new CURLOPT_COOKIEJAR option to libcurl,
which in turn dumps this information when curl_easy_cleanup() is invoked.
There might be reasons to re-consider my choice of putting it there. Perhaps
it is better placed to get done just before *_perform() is done. It is all
of course depending on how you guys want to use this feature...
- Added ftpupload.c in the source examples section, based on source code posted
by Erick Nuwendam.
Daniel (28 August 2001)
- Now running libtool CVS branch-1-4 to generate stuff. Should fix problems
on OpenBSD and hopefully on FreeBSD as well!
- Georg Huettenegger modified the curl_formadd() functionality slightly, and
added support for error code 417 when doing form post and using the Expect:
header. Great work!
- Made some tests with cached SSL session IDs, and they seem to work. There
should be a significant speed improvement in the SSL connection phase, but
in my tiny tests it just isn't possible to notice any difference. Like other
caching in libcurl, you must reuse the same handle for the caching to take
effect. SSL session ID caching is done on a per host-name and destination
port number basis.
Set verbose, and you'll get informational tests when libcurl detects and
uses a previous SSL session ID.
- Upgraded to automake 1.5 on my development/release machine.
Daniel (27 August 2001)
- Slowly started writing SSL session ID caching code
Daniel (24 August 2001)
- T. Bharath removed compiler warnings on windows and updated the MS project
files.
- Kevin Roth reported two kinds of command line constructs with the new -G that
curl didn't really deal with the way one would like.
- Tim Costello patched away a use of strcasecmp() in the SSL code. We have our
own portable version named strequal() that should be used!
- Tim also pointed out a problem in the lib/Makefile.vc6 file that made it mix
debug object modules causing confusions.
Daniel (23 August 2001)
- T. Bharath accurately found a libcurl bug that would happen when doing a
second invoke of curl_easy_perform() with a new URL when the previous invoke
followed a Location: header.
- Started the improvement work on the cookie engine:
- Now keeps cookies in the same order as the cookie file
- A write to the possibly static string was removed
- Added a function that can output all cookies
- Now supports reading multiple cookie files
- Steve Lhomme corrected a DLL naming issue in the MSVC++ project file.
- Split up the monster function in lib/ftp.c to use more smallish functions to
increase readability and maintainability.
Daniel (21 August 2001)
- Georg Huettenegger's big patch was applied. Now we have:
o "Expect: 100-continue" support. We will from now on send that header in
all rfc1867-posts, as that makes us abort much faster when the server
rejects our POST. Posting without the Expect: header is still possible in
the standard replace-internal-header style.
o curl_formadd() is a new formpost building function that is introduced to
replace the now deprecated curl_formparse() function. The latter function
will still hang around for a while, but the curl_formadd() is the new way
and correct way to build form posts.
o Documentation has been updated to reflect these changes
These changes are reason enough to name the next curl release 7.9...
- We now convert man pages to HTML pages and include them in the release
archive. For the pleasure of everyone without nroff within reach.
- Andrés García's suggested flushing of the progress meter output stream was
added. It should make the progress meter look better on Windows.
- Troy Engel pointed out a mistake in the configure script that made it fail
on many Red Hat boxes!
Daniel (20 August 2001)
- We need an updated libtool to make a better build environment for OpenBSD
as well as FreeBSD
Version 7.8.1
Daniel (20 August 2001)
- Brad pointed out that we ship two extra libtool files in the tarballs that
we really don't need to! Removing them makes the gz-archive about 60K
smaller!
- Albert Chin brought fixes for the configure script to detect socklen_t
properly as well as moving lots of our custom autoconf macros to
acinclude.m4.
Daniel (19 August 2001)
- Moonesamy improved his -G feature for host names only URLs...
Daniel (17 August 2001)
- Finally cleaned up the kerberos code to use Curl_ prefixes on all global
symbols and to not use global variables.
Version 7.8.1-pre6
Daniel (16 August 2001)
- S. Moonesamy added the -G option to curl, that converts the data specified
with -d to a GET request. Default action when using -d is POST. When -G is
used, the -d specified data will be appended to the URL with a '?'
separator. As suggested previously by Kevin Roth.
- curl-config --libs should now display all linker options required to link
with libcurl. It includes the path and options for libcurl itself.
curl-config --cflags displays the compiler option(s) needed to compile
source files that use libcurl functions. Basically, that sets the include
path correct.
Daniel (15 August 2001)
- Arkadiusz Miskiewicz pointed out a mistake in how IPv6-style IP-addresses
were parsed and used. (RFC2732-format)
- Bug #12733 over on php.net identified a problem in libcurl that made it core
dump if you used CURLOPT_POST without setting any data to post with
CURLOPT_POSTFIELDS! This is no longer the case. Not using CURLOPT_POSTFIELDS
now equals setting it to no data at all.
- Ramana Mokkapati reported that curl with '-w %{http_code}' didn't work
properly when used for multiple URLs on a single command line. Indeed, the
variable was not reset between the requests. This is now fixed.
- David James fixed the Borland makefile so that libcurl still compiles and
builds with that compiler.
Daniel (14 August 2001)
- Oops. I ruined Nico's socklen_t define in config-vms.h, corrected it now.
- An older item not mentioned here before: CURL_GLOBAL_WIN32 is a define for
windows users to curl_global_init(), that makes libcurl init the winsock
stuff. If libcurl is all socket stuff you do, then allowing it to fiddle
with this is a comfortable shortcut to fame.
Version 7.8.1-pre5
Daniel (14 August 2001)
- Nico Baggus provided more feedback from his VMS porting efforts and a few
minor changes were necessary.
- I modified configure.in so that --enable-debug sets more picky gcc options.
I then removed almost all the new warnings that appeared, and by doing so I
corrected the size_t-treated-as-signed problem that has been discussed on
the mailing list previously. I also removed a bunch of the just recently
added #ifdef VMS lines.
- I removed the use of a global variable in the SSL code. It was once
necessary but hasn't been needed since OpenSSL 0.9.4. The old code should
(hopefully) still work if libcurl is built against an ancient version of
OpenSSL.
Daniel (13 August 2001)
- Peter Todd posted a patch that now allows non-file rc1867-style form posts
to be larger than 4K.
Daniel (10 August 2001)
- S. Moonesamy fixed bugs for building debug and SSL lib in VC makefile
Daniel (9 August 2001)
- The redirected error stream was closed before the curl_easy_cleanup() call
was made, and when VERBOSE was enabled, the cleanup function tried to use
the stream. It could lead to a segmentation fault. Also, the stream was
closed even if we looped to get more files. Corrects Dustin Boswell's bug
report #441610
- Now generates the release configure script with autoconf 2.52
Version 7.8.1-pre4
Daniel (8 August 2001)
- curl -E uses a colon to separate a file name from a passphrase. This turned
out really bad for the windows people who wants to include a drive letter in
the file name like "c:\cert.pem". There's now a win32 work-around
implemented that tries work around that, when the colon seems to be used for
this kind of construct.
- Patrick Bihan-Faou introduced CURLOPT_SSL_VERIFYHOST, which makes curl
verify the server's CN field when talking https://. If --cacert is not used,
any failures in matching is only displayed as information (-v).
Daniel (7 August 2001)
- Wrote up nine more test cases, more or less converted from the former test
suite.
Daniel (6 August 2001)
- Heikki Korpela posted a patch that makes 'curl-config --libs' include the
directory in which libcurl itself is installed in. While this wasn't my
initial intention with this option, it makes sense and makes linking with
libcurl easier.
- Stefan Ulrich pointed out to us that other tools and libraries treat file://
URLs with only one slash after the host name slighly different than libcurl
does. Since all the others seem to agree, we better follow them.
- Nico Baggus provided us with a huge set of fixes to make curl compile and
build under OpenVMS.
Version 7.8.1-pre3
Daniel (6 August 2001)
- Jonathan Hseu noticed that you couldn't get a header callback unless you
set CURLOPT_WRITEHEADER to non-NULL, even if you didn't care about that
data. This is now fixed.
Daniel (5 August 2001)
- Sergio Ballestrero provided a patch for reading responses from NCSA httpd
1.5.x servers, as they return really screwed up response headers when asked
for with HTTP 1.1.
- curl_escape() no longer treats already encoded characters in the input
string especially.
Daniel (3 August 2001)
- I replaced the former lib/arpa_telnet.h file with one I wrote myself, to
avoid the BSD annoucement clause of the license in the former file.
- Andrew Francis provided a new version of base64.c to work around the license
boiler plate that came with the previous one. I patched it, but the glory
should go to Andrew for his heads up.
- Tomasz Lacki noticed that when you do repeated transfers with libcurl you
couldn't always reliably change HTTP request. This has now been fixed and a
new libcurl option was added: CURLOPT_HTTPGET, that can force the HTTP
requestr (back) to GET.
- Linus Nielsen Feltzing pointed out that httpsserver.pl wasn't included in
release archives. It should be now.
Daniel (2 August 2001)
- Frank Keeney pointed out a manual mistake for certificate convertions.
- Tomasz Lacki pointed out a problem in the transfer loop that could make the
select() loop use far too much CPU.
- Pawel A. Gajda pointed out an output mistake done when using libcurl's
progress callback.
Daniel (29 June 2001)
- Naveen Noel noticed that the Borland library makefile wasn't updated.
- Nic Roets brought a fix for the certificate verification when using SSL.
Daniel (27 June 2001)
- Made the FTP tests run OK even on machines running curl IPv6-enabled.
- Troy Engel corrected some RPM package details.
Version 7.8.1-pre2
Daniel (25 June 2001)
- Björn Stenberg correctly identified a problem that occurred when downloading
several files with curl, and using resume. The first file's resume index was
then used for all files, resulting in weird results...
- Anton Kalmykov provided a fix that makes curl work with form field names
with spaces like when -F is used.
Version 7.8.1-pre1
Daniel (20 June 2001)
- Mike Bytnar provided a fine report that proved that the --with-ssl option
for configure needed tweaking. It no longer searches the default directories
for OpenSSL libs or directories when a specified path is given.