1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957 |
- 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 (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
- 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.
- Daniel (19 June 2001)
- - When an FTP transfer is cut off during transfer, curl could present a truly
- garbaged error message and in worst case dump core. Thanks to detailed
- reports from Shawn Poulson we nailed this.
- Daniel (12 June 2001)
- - Salvador Dávila provided a fix for FTP range downloads.
- - Added a few more test cases from the former test suite to the new file
- format. We're now at a total of 26 tests.
- Daniel (11 June 2001)
- - libcurl's version-info was wrong, as noted by both Domenico Andreoli and
- David Odin.
- Daniel (7 June 2001)
- - Jörn fixed the curl_unescape duplicate entry in lib/libcurl.def
- - I made SSL certificate failure messages to be more detailed.
- Version 7.8
- Daniel (7 June 2001)
- - SDavila provided a resumed download fix.
- Version 7.8-pre4
- Daniel (1 June 2001)
- - Sterling provided some new PHP examples.
- - Changed the CVS hierarchy and the older checkout instruction does no longer
- work. We moved the entire source code into a CVS module named 'curl'.
- Daniel (31 May 2001)
- - CURLOPT_MUTE does not exist anymore. It is still present in the include file
- to not cause compiler errors for applications using it, but it isn't used
- anywhere in the library.
- Version 7.8-pre3
- Daniel (31 May 2001)
- - Once and for all fixed the _REENTRANT mess for Solaris compiles to present
- less warnings.
- - Sterling Hughes tirelessly points out and corrects my mistakes...! So,
- curl_global_init() now lets the argument flags *SET* what parts to
- init. CURL_GLOBAL_DEFAULT makes a nice default, CURL_GLOBAL_ALL inits all
- known subsystems and CURL_GLOBAL_NONE inits nothing more than absolutely
- necessary. Man page updated accordingly.
- - Fixed the strtok.h include file as it wouldn't compile on all platforms!
- Daniel (30 May 2001)
- - Made libcurl by default act as if CURLOPT_MUTE and CURLOPT_NOPROGRESS were
- set TRUE. Set them to FALSE to make libcurl more talkative. The *_MUTE
- option is subject for complete removal...
- Version 7.8-pre2
- Daniel (30 May 2001)
- - Cris Bailiff wrote a makefile for building Solaris packages.
- - Sterling Hughes brought fixes for 'buildconf' (the build-from-CVS tool) and
- we discussed and added a few CURL_GLOBAL_* flags in include/curl.h
- - Kjetil Jacobsen privately announced his python interface to libcurl,
- available at http://pycurl.sourceforge.net/
- Daniel (29 May 2001)
- - Sterling Hughes fixed a strtok() problem in libcurl. It is not a thread-
- safe function. Now configure checks for a thread-safe version, and
- lib/strtok.c offers one for the systems that don't come with one included!
- - Mettgut Jamalla correctly pointed out that the -# progress bar was written
- to stderr even though --stderr redirection was used. This is now corrected.
- - I moved out the list of contributors from the curl.1 man page and made a
- separate docs/THANKS file. It makes the list easier to find, and made it
- easier for me to make a separate web page with that same information.
- I really do want all you guys mentioned in there to feel you get the credit
- you deserve.
- - lib/easy.c didn't compile properly in the 7.8-pre1 due to a silly mistake
- Version 7.8-pre1
- Daniel (28 May 2001)
- - curl-config now supports '--vernum' that outputs a plain hexadecimal version
- of the libcurl version number (using 8 bits for each 3 numbers). Version
- 7.7.4 appears as 070704
- - Wrote man pages for curl_global_init and curl_global_cleanup...
- - T. Bharath brought news about the usage of the OpenSSL interface that was
- not previously taken into consideration and thus caused libcurl to leak
- memory. The only somewhat sane approach to fix this dilemma, is adding two
- two new functions curl_global_init() and curl_global_cleanup() that should
- be called *ONCE* by the application using libcurl. The init should be done
- only at startup, no matter how many threads the application is gonna use,
- and the cleanup should be called when the application has finished using
- libcurl completely.
- *** UPGRADE NOTICE ***
- If you write applications using libcurl, you really want to use the two
- functions mentioned above !!!
- I can't say I think this is a very beautiful solution, but as OpenSSL
- insists on making lots of stuff on a "global" scope, we're forced to walk
- the path they point us to.
- - Moving more test cases into the new file format.
- Version 7.7.4-pre3
- Daniel (23 May 2001)
- - Introduced a new file format for storing test cases, and thus I had to
- modify all the perl test scripts and more (I added a new one). I have not
- "ported" all the old test cases to the new format yet, but it'll come.
- The main advantage of this new format is that all test data for each test
- case is stored in a single file. It gives a better overview for each test
- case and a lot less files.
- - Andrés García brought a fix for the netscape/mozilla cookie file parsing
- function, as it turns out it doesn't always store the path!
- Daniel (22 May 2001)
- - As was reported anonymously, when FAILONERROR was used, the httpcode was
- not stored properly and thus wasn't possibly to read after a transfer with
- the curl_easy_getinfo() function. This is now corrected.
- - Installed and made use of the following tool versions:
- autoconf 2.50
- libtool 1.4
- automake 1.4-p1
- I wouldn't recommend any developer to try to generate things with older
- versions than these. Building from CVS will probably more or less require
- at least these versions.
- As a result of this, the configure script grew to more than double its
- previous size!
- Arkadiusz Miskiewicz helped me by pointing out I had to remove my
- acinclude.m4 file before I could get it working!
- Daniel (21 May 2001)
- - I made ftps:// work. Added test case 400 to the release archive, as the
- first ftps:// test case. Requires stunnel.
- - Also made the test cases that runs ssl tests not run if libcurl isn't built
- with ssl support.
- Daniel (19 May 2001)
- - Made the configure not add any extra -L LDFLAGS or -I CPPFLAGS unless they
- are actually needed. Albert Chin's and Domenico Andreoli's suggestions
- helped out.
- Version 7.7.4-pre2
- Daniel (18 May 2001)
- - Nicer configure-check for the OpenSSL headers, which then sets the proper
- variable to have curl-config be good. (Albert Chin provided the fix)
- - For systems that don't have theiw own 'strlcat()' libcurl provides its own.
- It was now renamed to prevent collides with other libs. (After discussions
- with Sterling Hughes and the implications this had on PHP builds.)
- Daniel (17 May 2001)
- - Colm Buckley posted a detailed bug report on (the debianized) 7.7.3, that
- turned out to be a problem with the debian-built 7.7.3-package that
- contained files from the 7.7.2 release!
- - I added the CURLE_ALREADY_COMPLETE again, but with a fake value, just to
- make programs that use it, not fail when compiling against this version of
- libcurl.
- Daniel (14 May 2001)
- - Pawel A. Gajda fixed a problem with resumed transfers on re-used persistent
- connections.
- Version 7.7.4-pre1
- Daniel (14 May 2001)
- - Jun-ichiro itojun Hagino fixed FTP PORT for IPv6-enabled libcurl.
- - Added the first HTTPS test to the test suite in the release archive.
- Daniel (12 May 2001)
- - Jukka Pihl suggested that if (lib)curl is told to verify the peer's
- certificate and the peer can't be verified, it should fail and return a
- proper error code. I added a brand new error code named
- CURLE_SSL_PEER_CERTIFICATE for this purpose.
- Daniel (11 May 2001)
- - As was discussed with Frederic Lepied a while ago, I now made libcurl not
- return error even though no data was transfered on upload/download resume
- when the no transfer is needed. The CURLE_ALREADY_COMPLETE error was removed
- from the header file to make any implemenator that uses that to be aware of
- the fact that it can't be returned anymore!
- - Improved general header-parsing to better allow white spaces and more.
- - Rodney Simmons proved the fix I did yesterday was bad and I had to post
- another one.
- - Ingo Wilken patched away two redirect problems more!
-
- Daniel (10 May 2001)
- - Cris Bailiff correctly noted that the space-after-header problem with
- Location: is present on several other places in the libcurl sources.
- - Ingo Wilken patched away a problem libcurl had when following Location:
- headers with an extra space after the colon.
- - Rodney Simmons found out that multiple FTP transfers did not treat relative
- directories correctly.
- Daniel (9 May 2001)
- - Getting an FTP file with CURLOPT_NOBODY set (or -I from the command line),
- makes curl use the non-standard ftp command "SIZE". If it failed, libcurl
- returned error. Starting now, it just don't output the file size instead.
- Anonymous bug report.
- - stunnel.pm was accidentally left out from the release archive, it is now
- added (stunnel is needed to run the https-tests in the test suite)
-
- Daniel (7 May 2001)
- - Corrected two minor compiler warnings due to the FILE * to void * conversion
- that I missed at two places. Jörn Hartroth brought me patches. Sander Gates
- filed a bug report on this.
- Version 7.7.3
- Daniel (4 May 2001)
- - All callback functions now take 'void *' instead of 'FILE *'. This is made
- this way to make it more obvious to people that anything can be passed to
- them (by using the apropriate option). After discussions with Sterling
- Hughes.
- Daniel (3 May 2001)
- - Cris Bailiff fixed a chunked transfer encoding problem with persistent
- connection that made libcurl fail if the persistent connection used mixed
- chunked and non-chunked transfers.
- - Cris Bailiff fixed a bad treatment of 304-replies, as they would not be
- treated as content-length 0 replies but would cause a "hang" until the
- server timed-out and closed the connection.
- - Brad Burdick found a minor problem in the docs/examples/Makefile.am
- Daniel (27 April 2001)
- - Updated the INTERALS document again. It was lagging a bit. I think I made it
- more easy to follow now as well.
- - Brad Burdick found a problem with persistent connections when curl received
- a "Content-Length: 0" header.
- - Giuseppe D'Ambrosio was first out to report that TELNET doesn't work in curl
- compiled/built on win32. It seems to work for unixes though!
- - Dave Hamilton reported weird problems with CURL/PHP that I really can't
- explain at the moment. I'm hoping on some help from the PHP crew.
- Daniel (26 April 2001)
- - I rewrote the FTP command response function. I had to do it to make ftps
- work, as the OpenSSL read()-function didn't work the same way the normal
- unix read() does, but it was also a huge performance boost. Previously the
- function read one byte at a time, now it reads very large chunks, and it
- makes a notable speed difference.
- Daniel (25 April 2001)
- - Connection re-use when not using a proxy didn't work properly for
- non-default port numbers.
- Daniel (24 April 2001)
- - I've noticed that FTPS doesn't work. We attempt to use ssl even for the
- data transfer, which causes the transfer to 'hang'... We need to fix this.
- - Improved the test suite to use 'stunnel' to do HTTPS and FTPS testing on
- the alredy written perl servers easily.
- Daniel (23 April 2001)
- - The OpenSSL version string recently modified didn't zero terminate one
- of the generated strings properly, which could lead to a crash or simply
- weird version string output!
- Version 7.7.2
- Daniel (22 April 2001)
- - Rosimildo da Silva updated the Makefiles for Borland/Windows.
- - Eric Rautman pointed out a problem with persistent connections that would
- lead to broken Host: headers in the second HTTP request.
- Daniel (20 April 2001)
- - Added man pages for the curl_strequal() and curl_mprintf() families. Wrote
- a 'libcurl overview' man page.
- - Spell-fixed some documents.
- - S. Moonesamy corrected mistakes in the man page.
- - Cris Bailiff fixed the curl_slists options in the perl interface, present
- separately in the Curl::easy 1.1.4 package.
- Daniel (19 April 2001)
- - Linus Nielsen Feltzing removed the decimals from the size variables in the
- --write-out output. We hardly ever get fraction of bytes! :-)
- Version 7.7.2-pre1
- Daniel (19 April 2001)
- - Albert Chin provided a configure patch for the AC_SYS_LARGEFILE macro.
- Daniel (18 April 2001)
- - Input from Michael Mealling made me add --feature to curl-config. It
- displays a list of features that have been built-in in the current
- libcurl. The currently available features that can be listed are: SSL, KRB4
- and IPv6.
- - I committed Cris and Georg's perl interface work. They've got callbacks
- working and options that receives those slist pointers.
- - Puneet Pawaia detected a problem with resumed downloads that use persistent
- connections and I made a rather large writeup to correct this. It is
- important that all session-data is stored in the connectdata struct and not
- in the main struct as this previously did.
- Daniel (17 April 2001)
- - Frederic Lepied fixed a ftp resumed download problem and introduced a new
- error code that lets applications be able to detect when a resumed download
- actually didn't download anything since the whole file is already present.
- Should this return OK instead?
- - I added 'curl-config.in' to the root dir and configure script. Now, a
- curl-config script is made when curl is built. The script can be used to
- figure out compile time options used when libcurl was built, which in turn
- should be options YOU should use to build applications that use libcurl.
- This *-config style is not a new idea, but something that has been used
- successfully in other (library based) projects.
- - Phil Karn pointed out that libcurl wrongly did not always use GMT time zone
- for the If-Modified-Since style headers.
- - Georg Schwarz pointed out an extra needed #include file needed in src/main.c
- for curl to build on Ultrix.
- Daniel (11 April 2001)
- - Cris Bailiff pointed out two problems that I corrected. First, libcurl's use
- of the environment variable HTTP_PROXY in uppercase may become a security
- hazard when people use libcurl in a server/cgi situation where the server
- sets the HTTP_*-variables according to incoming headers in the HTTP
- request. Thus, a "Proxy:"-header would set that environment variable!
- Then, invoking curl_easy_perform() without having an URL set caused a crash.
- - S. Moonesamy brought a patch that make curl use non-blocking connects on
- windows when connection timeout is set, as it allows windows users to set
- that timeout!
- - Hirotaka Matsuyuki wrote a Ruby interface to libcurl!
- - Cris Bailiff, Forrest Cahoon and Georg Horn work on the Perl interface.
- - I've written a first shot at a Java interface to libcurl. Many thanks to
- Daniel Marell for tirelessly answering to all my basic Java questions. It
- works, but it is still very basic.
- Daniel (10 April 2001)
- - The progress display could get silly when doing multiple file transfers, as
- it wasn't properly reset between transfers!
- - Discussions with Cris Bailiff who writes a Perl interface to libcurl, made
- me add CURLOPT_HEADERFUNCTION. It can be used to set a separate callback
- function for writing headers. Previously you could only set a different FILE
- * when headers are written from within libcurl.
- Daniel (7 April 2001)
- - Andrés García fixed a problem in curl_escape() and pointed out a flaw in
- the curl_easy_setopt man page.
- Daniel (6 April 2001)
- - Adjusted the version code to properly display OpenSSL 0.9.6a. They sure
- change their version define format often...
- - curl_formfree() now accepts a NULL pointer without crashing!
- Version 7.7.1
- Daniel (3 April 2001)
- - Puneet Pawaia pointed out two serious problems. Libcurl would attempt to
- read bad memory during situations when an (ftp) connection attempt failed.
- Also, the lib/Makefile.vc6 was corrected.
- - More investigations in the Location: following code made me realize that
- it was not clean enough to work transparantly with persistent and non-
- persistent connections. I think I've fixed it now.
- Daniel (29 March 2001)
- - Georg Horn mailed me some corrections for the Curl::easy perl interface.
- - Experimental ftps:// support added. It is basically FTP over SSL for the
- control connection. It still makes all data transfers going over unencrypted
- connections. Rainer Weikusat's ftpd-ssl server hack supports this and I used
- that to verify the functionality.
- Daniel (27 March 2001)
- - Guenole Bescon discovered that if you set a CURLOPT_TIMEOUT and then tried
- to get a file from a site and it fails, the SIGALRM would still be sent
- after the timeout-time, quite inexpectedly!
- - I added an ftp transfer example to docs/examples/ and I also wrote a tiny
- example makefile that can be used as a start when building one of the
- examples.
- Version 7.7.1-beta1
- Daniel (26 March 2001)
- - Mohamed Lrhazi reported problems with 7.6.1 and persistent HTTP/1.0
- connections (when the server replied a Connection: Keep-Alive) and this
- problem was not properly dealt with in 7.7 either. A patch was posted to the
- curl-and-php mailing list.
- Daniel (24 March 2001)
- - Colin Watson reported about a problem and brought a patch that corrected it,
- which was about the man page and lines starting with a single quote (') in a
- way that gnroff doesn't like.
- Daniel (23 March 2001)
- - Peter Bray reported correctly that the root makefile used make instead of
- $(MAKE) for the test target.
- - Corrected the Curl::easy perl interface to use curl_easy_setopt() and not
- curl_setopt() which was removed in 7.7!
- - S. Moonesamy provided updates on three documents (MANUAL, INSTALL and FAQ).
- - When following a Location:, libcurl would sometimes write to the URL string
- in a way it shouldn't. As the pointer is passed-in to libcurl from an
- application, we can't be allowed to write to it. The particular bug report
- from 'nk' that brought this up was because he had a read-only URL that then
- caused a libcurl crash!
- - No longer reads HEAD responses longer than to the last header. Previously,
- curl would read the full reply if the connection was a "close" one.
- - libcurl did re-use connections way too much. Doing "curl
- http://www.{microsoft,ibm}.com" would make it re-use the connection which
- made the second request return very odd results.
- Daniel (22 March 2001)
- - Edin Kadribasic made me aware that curl should not re-send POST requests
- when following 302-redirects. I made 302 work like 303 which means curl uses
- GET in the following request(s).
- - libcurl now reset the "followed-location" counter on each invoke of
- curl_easy_perform() as it otherwise would sum up all redirects on the same
- connection and thus could reach the maxredirs counter wrongly.
- - Jim Drash suggested curl_escape() should not re-encode what already looks
- like an encoded sequence and I think that's a fair suggestion.
- Version 7.7
- Daniel (22 March 2001)
- - The configure script now fails with an error message if gethostbyname_r() is
- detected but it couldn't figure out how to invoke it (what amount of
- arguments it is supposed to get). Reports from Andrés García made me aware
- of this need.
- - Talking with Jim Drash made me finally put the curl_escape and curl_unescape
- functions in the curl.h include file and write man pages for them. The
- escape function was modified to use the same interface as the unescape one
- had.
- - No bug reports at all on the latest betas. Release time coming up.
- Version 7.7-beta5
- Daniel (19 March 2001)
- - Georg Ottinger reported problems with using -C together with -L in the sense
- that the -C info got lost when it was redirected. I could not repeat this
- problem on the 7.7 branch why I leave this for the moment. Test case 39 was
- added to do exactly this, and it seems to do right.
- - Christian Robottom Reis reported how his 7.7 beta didn't successfully do
- form posts as elegantly as 7.6.1 did. Indeed, this was a flaw in the header
- engine, as HTTP 1.1 has introduced a new 100 "transient" return code for PUT
- and POST operations that I need to add support for. Section 8.2.3 in RFC2616
- has all the details. Seems to work now!
- Daniel (16 March 2001)
- - After having experienced another machine break-down, we're back.
- - Georg Horn's perl interface Curl::easy is now included in the curl release
- archive. The perl/ directory is now present. Please help me with docs,
- examples and updates you think fit.
- - Made a new php/ directory in the release archive and moved the PHP examples
- into a subdirectory in there. Not much PHP info yet, but I plan to. Please
- help me here as well!
- - Made libcurl return error if a transfer is aborted in the middle of a
- "chunk". It actually enables libcurl to discover premature transfer aborts
- even if the Content-Length: size is unknown.
- Daniel (15 March 2001)
- - Added --connect-timeout to curl, which sets the new CURLOPT_CONNECTTIMEOUT
- option in libcurl. It limits the time curl is allowed to spend in the
- connection phase. This differs from -m/--max-time that limits the entire
- file transfer operation. Requested by Larry Fahnoe and others.
- I also updated the curl.1 and curl_easy_setopt.3 man pages and removed the
- item from the TODO.
- Version 7.7-beta4
- Daniel (14 March 2001)
- - Made curl grok IPv6 with HTTP proxies and got everything to compile nicely
- again when ENABLE_IPV6 is set.
- I need to remake things in the test suite. I can't test the FTP parts with
- curl built for IPv6 as it uses a different set of FTP commands then!
- - I fell onto a bug report on php.net (posted by Lars Torben Wilson) that was
- a report meant for our project. Anyway, it said the .netrc parsing didn't
- work as supposed, and as I agreed with Lars, I made the netrc parser use
- getpwuid() to figure out the home directory of the effective user and try
- that netrc. It still uses the environment variable HOME for those that don't
- have that function or if the user doesn't return valid pwd info.
- - Edin Kadribaic posted a bug report where he got a crash when a fetch with
- user+password in the URL followed a Location: to a second URL (absolute,
- without name+password). This bug has been around for a long while and
- crashes due to a read at address zero. Fixed now. Wrote test case 38, that
- tests this.
- - Modified the test suite's httpserver slightly to append all client request
- data to its log file so that the test script now better can verify a range
- of requests and not only the last one, as it did previously.
- - Updated the curl man page with --random-file and --egd-file details.
- Version 7.7-beta3
- Daniel (14 March 2001)
- - Björn Stenberg provided similar fixes as Jörn did and some additional patches
- for non-SSL compiles.
- - I increased the interface number for libcurl as I've removed the low level
- functions from the interface. I also took this opportunity to rename the
- Curl_strequal function to curl_strequal and Curl_strnequal to
- curl_strnequal, as they're public libcurl functions (even if they're still
- undocumented).
- This will make older programs not capable of using the new libcurl with
- just a drop-in replacement.
- - Jörn Hartroth updated stuff for win32 compiles:
- o config-win32.h was fixed for socklen_t
- o lib/ssluse.c had a bad #endif placement
- o lib/file.c was made to compile on win32 again
- o lib/Makefile.m32 was updated with the new files
- o lib/libcurl.def matches the current interface state
- Daniel (13 March 2001)
- - It only took an hour or so before Jörn Hartroth found a problem in the
- chunked transfer-encoding. Given his fine example-site, I could easily spot
- the problem and when I re-read the spec (the part I have pasted in the top
- of the http_chunks.h file), I realized I had made my state-machine slightly
- wrong and didn't expect/handle the trailing CRLF that comes after the data
- in each chunk (and those extra two bytes sure feel wasted).
- Had to modify test case 34 to match this as well.
- Version 7.7-beta2
- Daniel (13 March 2001)
- - Added the policy stuff to the curl_easy_setopt man page for the two supported
- policies.
- - Implemented some support for the CURLOPT_CLOSEPOLICY option. The policies
- CURLCLOSEPOLICY_LEAST_RECENTLY_USED and CURLCLOSEPOLICY_OLDEST are now
- supported, and the "least recently used" is used as default if no policy
- is chosen.
- Daniel (12 March 2001)
- - Added CURLOPT_RANDOM_FILE and CURLOPT_EGDSOCKET to libcurl for seeding the
- SSL random engine. The random seeding support was also brought to the curl
- client with the new options --random-file <file> and --egd-file <file>. I
- need some people to really test this to know they work as supposed. Remember
- that libcurl now informs (if verbose is on) if the random seed is considered
- weak (HTTPS connections).
- - Made the chunked transfer-encoding engine detected bad formatted data length
- and return error if so (we can't possibly extract sensible data if this is
- the case). Added a test case that detects this. Number 36. Now there are 60
- test cases.
- - Added 5 new libcurl options to curl/curl.h that can be used to control the
- persistent connection support in libcurl. They're also documented (fairly
- thoroughly) in the curl_easy_setopt.3 man page. Three of them are now
- implemented, although not really tested at this point... Anyway, the new
- implemented options are named CURLOPT_MAXCONNECTS, CURLOPT_FRESH_CONNECT,
- CURLOPT_FORBID_REUSE. The ones still left to write code for are:
- CURLOPT_CLOSEPOLICY and its related option CURLOPT_CLOSEFUNCTION.
- - Made curl (the actual command line tool) use the new libcurl 7.7 persistent
- connection support by re-using the same curl handle for every specified file
- transfer and after some more test case tweaking we have 100% test case OK.
- I made some test cases return HTTP/1.0 now to make sure that works as well.
- - Had to add 'Connection: close' to the headers of a bunch of test cases so
- that curl behaves "old-style" since the test http server doesn't do multiple
- connections... Now I get 100% test case OK.
- - The curl.haxx.se site, the main curl mailing list and my personal email are
- all dead today due to power blackout in the area where the main servers are
- located. Horrible.
- - I've made persistance work over a squid HTTP proxy. I find it disturbing
- that it uses headers that aren't present in any HTTP standard though
- (Proxy-Connection:) and that makes me feel that I'm now on the edge of what
- the standard actually defines. I need to get this code excercised on a lot
- of different HTTP proxies before I feel safe.
- Now I'm facing the problem with my test suite servers (both FTP and HTTP)
- not supporting persistent connections and libcurl is doing them now. I have
- to fix the test servers to get all the test cases do OK.
- Daniel (8 March 2001)
- - Guenole Bescon reported that libcurl did output errors to stderr even if
- MUTE and NOPROGRESS was set. It turned out to be a bug and happens if
- there's an error and no ERRORBUFFER is set. This is now corrected.
- Version 7.7-beta1
- Daniel (8 March 2001)
- - "Transfer-Encoding: chunked" is no longer any trouble for libcurl. I've
- added two source files and I've run some test downloads that look fine.
- - HTTP HEAD works too, even on 1.1 servers.
- Daniel (5 March 2001)
- - The current 57 test cases now pass OK. It would suggest that libcurl works
- using the old-style with one connection per handle. The test suite doesn't
- handle multiple connections yet so there are no test cases for this.
- - I patched the telnet.c heavily to not use any global variables anymore. It
- should make it a lot nicer library-wise.
- - The file:// support was modified slightly to use the internal connect-first-
- then-do approach.
- Daniel (4 March 2001)
- - More bugs erased.
- Version 7.7-alpha2
- Daniel (4 March 2001)
- - Now, there's even a basic check that a re-used connection is still alive
- before it is assumed so. A few first tests have proven that libcurl will
- then re-connect instead of re-use the dead connection!
- Daniel (2 March 2001)
- - Now they work intermixed as well. Major coolness!
- - More fiddling around, my 'tiny' client I have for testing purposes now has
- proved to download both FTP and HTTP with persistent connections. They do
- not work intermixed yet though.
- Daniel (1 March 2001)
- - Wilfredo Sanchez pointed out a minor spelling mistake in a man page and that
- curl_slist_append() should take a const char * as second argument. It does
- now.
- Daniel (22 February 2001)
- - The persistent connections start to look good for HTTP. On a subsequent
- request, it seems that libcurl now can pick an already existing connection
- if a suitable one exists, or it opens a new one.
- - Douglas R. Horner mailed me corrections to the curl_formparse() man page
- that I applied.
- Daniel (20 February 2001)
- - Added the docs/examples/win32sockets.c file for our windows friends.
- - Linus Nielsen Feltzing provided brand new TELNET functionality and
- improvements:
- * Negotiation is now passive. Curl does not negotiate until the peer does.
- * Possibility to set negotiation options on the command line, currently only
- XDISPLOC, TTYPE and NEW_ENVIRON (called NEW_ENV).
- * Now sends the USER environment variable if the -u switch is used.
- * Use -t to set telnet options (Linus even updated the man page, awesome!)
- - Haven't done this big changes to curl for a while. Moved around a lot of
- struct fields and stuff to make multiple connections get connection specific
- data in separate structs so that they can co-exist in a nice way. See the
- mailing lists for discussions around how this is gonna be implemented. Docs
- and more will follow.
- Studied the HTTP RFC to find out better how persistent connections should
- work. Seems cool enough.
- Daniel (19 February 2001)
- - Bob Schader brought me two files that help set up a MS VC++ libcurl project
- easier. He also provided me with an up-to-date libcurl.def file.
- - I moved a bunch of prototypes from the public <curl/curl.h> file to the
- library private urldata.h. This is because of the upcoming changes. The
- low level interface is no longer being planned to become reality.
- Daniel (15 February 2001)
- - CURLOPT_POST is not required anymore. Just setting the POST string with
- CURLOPT_POSTFIELDS will switch on the HTTP POST. Most other things in
- libcurl already works this way, i.e they require only the parameter to
- switch on a feature so I think this works well with the rest. Setting a NULL
- string switches off the POST again.
- - Excellent suggestions from Rich Gray, Rick Jones, Johan Nilsson and Bjorn
- Reese helped me define a way how to incorporate persistent connections into
- libcurl in a very smooth way. If done right, no change may have to be made
- to older programs and they will just start using persistent connections when
- applicable!
- Daniel (13 February 2001)
- - Changed the word 'timeouted' to 'timed out' in two different error messages.
- Suggested by Larry Fahnoe.
- Version 7.6.1
- Daniel (9 February 2001)
- - Frank Reid and Cain Hopwood provided information and research around a HTTPS
- PUT/upload problem we seem to have. No solution found yet.
- Daniel (8 February 2001)
- - An interesting discussion is how to specify an empty password without having
- curl ask for it interactively? The current implmentation takes an empty
- password as a request for a password prompt. However, I still want to
- support a blank user field. Thus, today if you enter "-u :" (without user
- and password) curl will prompt for the password. Tricky. How would you
- specify you want the prompt otherwise?
- - Made the netrc parse result possible to use for other protocols than FTP and
- HTTP (such as the upcoming TELNET fixes).
- - The previously mentioned "MSVC++ problems" turned out to be a non-issue.
- - Added a HTTP file upload code example in the docs/examples/ section on
- request.
- - Adjusted the FTP response fix slightly.
- Version 7.6.1-pre3
- Daniel (7 February 2001)
- - S. Moonesamy found a flaw in the response reading function for FTP that
- could make libcurl not get out of the loop properly when it should, if
- libcurl got -1 returned when reading the socket.
- - I found a similar mistake in http.c when using a proxy and reading the
- results from the proxy connection.
- Daniel (6 February 2001)
- - S. Moonesamy pointed out that the VC makefile in src/ needed the libpath set
- for the debug build to work.
- - Daniel Gehriger stepped in to assist with the VC++ stuff Robert Weaver
- brought up yesterday.
- Daniel (5 February 2001)
- - Jun-ichiro itojun Hagino brought a big patch that brings IPv6-awareness to
- a bunch of different areas within libcurl.
- - Robert Weaver told me about the problems the MS VC++ 6.0 compiler has with
- the 'static' keyword on a number of libcurl functions. I might need to add a
- patch that redefines static when libcurl is compiled with that compiler.
- How do I know when VC++ compiles, anyone?
- Daniel (4 February 2001)
- - curl_getinfo() was extended with two new options:
- CURLINFO_CONTENT_LENGTH_DOWNLOAD and CURLINFO_CONTENT_LENGTH_UPLOAD. They
- return the full assumed content length of the transfer in the given
- direction. The CURLINFO_CONTENT_LENGTH_DOWNLOAD will be the Content-Length:
- size of a HTTP download. Added descriptions to the man page as well. This
- was done after discussions with Bob Schader.
- Daniel (3 February 2001)
- - Ingo Ralf Blum provided another fix that makes curl build under the more
- recent cygwin installations. It seems they've changed the preset defines to
- not include WIN32 anymore.
- Version 7.6.1-pre2
- Daniel (31 January 2001)
- - Curl_read() and curl_read() now return a ssize_t for the size, as it had to
- be able to return -1. The telnet support crashed due to this and there was a
- possibility to weird behavior all over. Linus Nielsen Feltzing helped me
- find this.
- - Added a configure.in check for a working getaddrinfo() if IPv6 is requested.
- I also made the configure script feature --enable-debug which sets a couple
- of compiler options when used. It assumes gcc.
- Daniel (30 January 2001)
- - I finally took a stab at the long-term FIXME item I've had on myself, and
- now libcurl will properly work when doing a HTTP range-request that follows
- a Location:. Previously that would make libcurl fail saying that the server
- doesn't seem to support range requests.
- Daniel (29 January 2001)
- - I added a test case for the HTTP PUT resume thing (test case 33).
- Version 7.6.1-pre1
- Daniel (29 January 2001)
- - Yet another Content-Range change. Ok now? Bob Schader checks from his end
- and it works for him.
- Daniel (27 January 2001)
- - So the HTTP PUT resume fix wasn't good. There should appearantly be a
- Content-Range header when resuming a PUT.
- - I noticed I broke the download-check that verifies that a resumed HTTP
- download is actually resumed. It got broke because my new 'httpreq' field
- in the main curl struct. I should get slapped. I added a test case for
- this now, so I won't be able to ruin this again without noticing.
- - Added a test case for content-length verifying when downloading HTTP.
- - Made the progress meter title say if the transfer is being transfered. It
- makes the output slightly better for resumes.
- - When dealing with Location: and HTTP return codes, libcurl will not attempt
- to follow the spirit of RFC2616 better. It means that when POSTing to a
- URL that is being following to a second place, the standard will judge on
- what to do. All HTTP codes except 303 and 305 will cause curl to make a
- second POST operation. 303 will make a GET and 305 is not yet supported.
- I also wrote two test cases for this POST/GET/Location stuff.
- Version 7.6
- Daniel (26 January 2001)
- - Lots of mails back and forth with Bob Schader finally made me add a small
- piece of code in the HTTP engine so that HTTP upload resume works. You can
- now do an operation like 'curl -T file -C <offset> <URL>' and curl will PUT
- the ending part of the file starting at given offet to the specified URL.
- Version 7.6-pre4
- Daniel (25 January 2001)
- - I took hold of Rick Jones' question why we don't use recv() and send() for
- reading/writing to the sockets and I've now modified the sread() and
- swrite() macros to use them instead. If nothing else, they could be tested
- in the next beta-round coming right up.
- - Jeff Morrow found a problem with libcurl's usage of SSL_read() and supplied
- his research results in how to fix this. It turns out we have to invoke the
- function several times in some cases. The same goes for the SSL_write().
- I made some rather drastic changes all over libcurl to make all writes and
- reads get done on one single place so that this repeated-attempts thing
- would only have to be implemented at one point.
- - Rick Jones spotted that the 'total time' counter really didn't measure the
- total time very accurate on subsecond levels.
- - Johan Nilsson pointed out the need to more clearly specify that the timeout
- value you set for a download is for the *entire* download. There's currently
- no option available that sets a timeout for the connection phase only.
- Daniel (24 January 2001)
- - Ingo Ralf Blum submitted a series of patches required to get curl to compile
- properly with cygwin.
- - Robert Weaver posted a fix for the win32 section of the curl_getenv() code
- that corrected a potential memory leak.
- - Added comments in a few files in a sudden attempt to make the sources more
- easy to read and understand!
- Daniel (23 January 2001)
- - Added simple IPv6 detection in the configure script and made the version
- string add 'ipv6' to the enable section in that case. ENABLE_IPV6 will be
- set if curl is compiled with IPv6 support enabled.
- - Added a parser for IPv6-style specified IP-addresses in a URL. Thus, when
- IPv6 gets enabled soon, we can use URLs like '[0::1]:80'...
- - Made the URL globbing in the client possible to fail silently if there's an
- error in the globbing. It makes it almost intuitive, so when you don't
- follow the syntax rules, globbing is simply switched off and the raw string
- is used instead.
- I still think we'll get problems with IPv6-style IP-addresses when we *want*
- globbing on parts of the URL as the initial part of the URL will for sure
- seriously confuse the globber.
- Daniel (22 January 2001)
- - Björn Stenberg supplied a progress meter patch that makes it look better even
- during slow starts. Previously it made some silly assumptions...
- - Added two FTP tests for -Q and -Q - stuff since it was being discussed on
- the mailing list. Had to correct the ftpserver.pl too as it bugged slightly.
- Daniel (19 January 2001)
- - Made the Location: parsers deal with any-length URLs. Thus I removed the last
- code that restricts the length of URLs that curl supports.
- - Added a --globoff test case (#28) and it quickly identified a memory problem
- in src/main.c that I took care of.
- Version 7.6-pre3
- Daniel (17 January 2001)
- - Made the two former files lib/download.c and lib/highlevel.c become the new
- lib/transfer.c which makes more sense. I also did the rename from Transfer()
- to Curl_Transfer() in the other source files that use the transfer function
- in the spirit of using Curl_ prefix for library-scoped global symbols.
- Daniel (11 January 2001)
- - Added -g/--globoff that switches OFF the URL globbing and thus enables {}[]
- letters to be part of the URL. Do note that RFC2396 section 2.4.3 explicitly
- mention these letters to be escaped. This was posted as a feature request by
- Jorge Gutierrez and as a bug by Terry.
- - Short options to curl that requires parameters can now be specified without
- having the option and its parameter space separated. -ofile works as good as
- -o file. -m20 is equal to -m 20. Do note that this goes for single-letter
- options only, verbose --long-style options still must be separated with
- space from their parameters.
- Daniel (8 January 2001)
- - Francis Dagenais reported that the SCO compiler still fails when compiling
- curl due to that getpass_r() prototype. I've now put it around #ifndef
- HAVE_GETPASS_R in an attempt to please the SCO systems.
- - Made some minor corrections to get the client to cleanup properly and I made
- the separator work again when getting multiple globbed URLs to stdout.
- - Worked with Loic Dachary to get the make dist and make distcheck work
- correctly. The 'maketgz' script is now using the automake generated 'make
- dist' when creating release archives. Loic successfully made 'make rpms'
- automatically build RPMs!
- Loic Dachary (6 January 2001)
- - Automated generation of rpm packages, no need to be root.
- - make distcheck generates a proper distribution (EXTRA_DIST
- in all Makefile.am modified to match FILES).
- Daniel (5 January 2001)
- - Huge client-side hack: now multiple URLs are supported. Any number of URLs
- can be specified on the command line, and they'll all be downloaded. There
- must be a corresponding -o or -O for each URL or the data will be written to
- stdout. This needs more testing, time to release a 7.6-pre package.
- - The krb4 support was broken in the release. Fixed now.
- - Huge internal symbol rename operation. All non-static but still lib-internal
- symbols should now be prefixed with 'Curl_' to prevent collisions with other
- libs. All public symbols should be prefixed with 'curl_' and the rest should
- be static and thus invisible to the outside world. I updated the INTERNALS
- document to say this as well.
- Version 7.5.2
- Daniel (4 January 2001)
- - As Kevin P Roth suggested, I've added text to the man page for every command
- line option and what happens when you specify that option more than
- once. That hasn't been exactly crystal clear before.
- - Made the configure script possible to run from outside the source-tree. For
- odd reasons I can't build curl properly outside though. It has to do with
- curl's dependencies on libcurl...
- - Cut off all older (dated 1999 and earlier) CHANGES entries from this file.
- The older piece is named CHANGES.0 and is added to the CVS repository in
- case anyone would need it.
- - I added another file 'CVS-INFO' to the CVS. It contains information about
- files in the CVS that aren't included in release archives and how to build
- curl when you get the sources off CVS.
- - Updated CONTRIBUTE and FAQ due to the new license.
- Daniel (3 January 2001)
- - Renamed README.libcurl to LIBCURL
- - Changed headers in all sources files to the new dual license concept of
- curl: use the MIT/X derivate license *or* MPL. The LEGAL file was updated
- accordingly and the MPL 1.1 and MIT/X derivate licenses are now part of the
- release archive.
|