CHANGES.2004 86 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994
  1. Daniel (25 December 2004)
  2. - Removed src/config.h.in from CVS, it is now copied from the (generated)
  3. lib/config.h.in instead, as they can very well be the same. This removes a
  4. "manual hassle". You may want to re-run buildconf now.
  5. - Werner Koch filed Debian bug report #286794, mentioning that curl contained
  6. non-free (by Debian's view) source code. This was Angus Mackay's
  7. src/getpass.c source code. I tried to contact him about it to quickly solve
  8. this issue, but his email addresses bounce and I got some time "over" and
  9. reimplemented the functionality once brought by Angus. We no longer use any
  10. of Angus' original code and the new function is much simpler (IMO). Issue
  11. solved.
  12. Daniel (24 December 2004)
  13. - David Shaw added --protocols to curl-config, so that it now lists all
  14. protocols libcurl was built to support. --feature no longer lists disabled
  15. protocols.
  16. Daniel (23 December 2004)
  17. - David Shaw fixed the configure --disable-[protocol] variables so that
  18. curl-config --feature now works correctly!
  19. Daniel (22 December 2004)
  20. - Rune Kleveland fixed a minor memory leak for received cookies with the
  21. (rare) version attribute set.
  22. - Marcin Konicki provided two configure fixes and a source fix to make curl
  23. build out-of-the-box on BeOS.
  24. Daniel (21 December 2004)
  25. - Added test case 217 that verified CURLINFO_HTTP_CONNECTCODE, and I made the
  26. -w option support 'http_connect' to make it easier to verify!
  27. - Fixed lib/select.c include order to build fine on FreeBSD
  28. - Fixed failf()'s reuse of the va_list variable that crashed on FreeBSD.
  29. Pointed out by Peter Pentchev.
  30. Version 7.12.3 (20 December 2004)
  31. Daniel (19 December 2004)
  32. - I investigated our PKCS12 build problem on Solaris 2.7 with OpenSSL 0.9.7e,
  33. and it turned out to be the fault of the zlib 1.1.4 headers doing a typedef
  34. named 'free_func' and the OpenSSL headers have a prototype that uses
  35. 'free_func' in one of its arguments. This is why the compile errors out.
  36. In other words, we need to include the openssl/pkcs12.h header before the
  37. zlib.h header and it builds fine. The configure script now checks for this
  38. file and it then gets included early in lib/urldata.h.
  39. Daniel (18 December 2004)
  40. - Samuel Listopad added support for PKCS12 formatted certificates.
  41. - Samuel Listopad fixed -E to support "C:/path" (with forward slash) as well.
  42. Daniel (16 December 2004)
  43. - Gisle found and fixed a problem in the directory re-use for FTP.
  44. I added test case 215 and 216 to better verify the functionality.
  45. - Dinar in bug report #1086121, found a file handle leak when a multipart
  46. formpost (including a file upload part) was aborted before the whole file
  47. was sent.
  48. Daniel (15 December 2004)
  49. - Tom Lee found out that globbing of strings with backslashes didn't work as
  50. you'd expect. Backslashes are such a central part of windows file names that
  51. forcing backslashes to have to be escaped with backslashes is a bit too
  52. awkward to users. Starting now, you only need to escape globbing characters
  53. such as the five letters: "[]{},". Added test case 214 to verify this.
  54. Daniel (14 December 2004)
  55. - Harshal Pradhan patched a HTTP persistent connection flaw: if the user name
  56. and/or password were modified between two requests on a persistent
  57. connection, the second request were still made with the first setup!
  58. I added test case 519 to verify the fix.
  59. Daniel (13 December 2004)
  60. - Gisle added CURLINFO_SSL_ENGINES to curl_easy_getinfo() to allow an app
  61. to list all available crypto ENGINES.
  62. - Gisle fixed bug report #1083542, which pointed out a problem with resuming
  63. large file (>4GB) file:// transfers on windows.
  64. Daniel (11 December 2004)
  65. - Made the test suite HTTP server (sws) capable of using IPv6, and then
  66. extended the test environment to support that and also added three test
  67. cases (240, 241, 242) that run tests using IPv6. Test 242 uses a URL that
  68. didn't work before the 10 dec fix by Kai Sommerfeld.
  69. - Made a failed file:// resume output an error message
  70. - Corrected the CURLE_BAD_DOWNLOAD_RESUME error message in lib/strerror.c
  71. - Dan Fandrich:
  72. simplified and consolidated the SSL checks in configure and the usage of the
  73. defines in lib/setup.h
  74. provided a first libcurl.pc.in file for pkg-config (but the result is not
  75. installed anywhere at this point)
  76. extended the cross compile section in the docs/INSTALL file
  77. Daniel (10 December 2004)
  78. - When providing user name in the URL and a IPv6-style IP-address (like in
  79. "ftp://user@[::1]/tmp"), the URL parser didn't get the host extracted
  80. properly. Reported and fixed by Kai Sommerfeld.
  81. Daniel (9 December 2004)
  82. - Ton Voon provided a configure fix that should fix the notorious (mostly
  83. reported on Solaris) problem where the size_t check fails due to the SSL
  84. libs being found in a dir not searched through by the run-time linker.
  85. patch-tracker entry #1081707.
  86. - Bryan Henderson pointed out in bug report #1081788 that the curl-config
  87. --vernum output wasn't zero prefixed properly (as claimed in documentation).
  88. This is fixed in maketgz now.
  89. Daniel (8 December 2004)
  90. - Matt Veenstra updated the mach-O framework files for Mac OS X.
  91. - Rene Bernhardt found and fixed a buffer overrun in the NTLM code, where
  92. libcurl always and unconditionally overwrote a stack-based array with 3 zero
  93. bytes. This is not an exploitable buffer overflow. No need to get alarmed.
  94. Daniel (7 December 2004)
  95. - Fixed so that the final error message is sent to the verbose info "stream"
  96. even if no errorbuffer is set.
  97. Daniel (6 December 2004)
  98. - Dan Fandrich added the --disable-cookies option to configure to build
  99. libcurl without cookie support. This is mainly useful if you want to build a
  100. minimalistic libcurl with no cookies support at all. Like for embedded
  101. systems or similar.
  102. - Richard Atterer fixed libcurl's way of dealing with the EPSV
  103. response. Previously, libcurl would re-resolve the host name with the new
  104. port number and attempt to connect to that, while it should use the IP from
  105. the control channel. This bug made it hard to EPSV from an FTP server with
  106. multiple IP addresses!
  107. Daniel (3 December 2004)
  108. - Bug report #1078066: when a chunked transfer was pre-maturely closed exactly
  109. at a chunk boundary it was not considered an error and thus went unnoticed.
  110. Fixed by Maurice Barnum.
  111. Added test case 207 to verify.
  112. Daniel (2 December 2004)
  113. - Fixed the CONNECT loop to default timeout to 3600 seconds.
  114. Added test case 206 that makes CONNECT with Digest.
  115. Fixed a flaw that prepended "(nil)" to the initial CONNECT rqeuest's user-
  116. agent field.
  117. Daniel (30 November 2004)
  118. - Dan Fandrich's fix for libz 1.1 and "extra field" usage in a gzip stream
  119. - Dan also helped me with input data to create three more test cases for the
  120. --compressed option.
  121. Daniel (29 November 2004)
  122. - I improved the test suite to enable binary contents in the tests (by proving
  123. it base64 encoded), like for testing decompress etc. Added test 220 and 221
  124. for this purpose. Tests can now also depend on libz to run.
  125. - As reported by Reinout van Schouwen in Mandrake's bug tracker bug 12285
  126. (http://qa.mandrakesoft.com/show_bug.cgi?id=12285), when connecting to an
  127. IPv6 host with FTP, --disable-epsv (or --disable-eprt) effectively disables
  128. the ability to transfer a file. Now, when connected to an FTP server with
  129. IPv6, these FTP commands can't be disabled even if asked to with the
  130. available libcurl options.
  131. Daniel (26 November 2004)
  132. - As reported in Mandrake's bug tracker bug 12289
  133. (http://qa.mandrakesoft.com/show_bug.cgi?id=12289), curl would print a
  134. newline to "finish" the progress meter after each redirect and not only
  135. after a completed transfer.
  136. Daniel (25 November 2004)
  137. - FTP improvements:
  138. If EPSV, EPRT or LPRT is tried and doesn't work, it will not be retried on
  139. the same server again even if a following request is made using a persistent
  140. connection.
  141. If a second request is made to a server, requesting a file from the same
  142. directory as the previous request operated on, libcurl will no longer make
  143. that long series of CWD commands just to end up on the same spot. Note that
  144. this is only for *exactly* the same dir. There is still room for improvements
  145. to optimize the CWD-sending when the dirs are only slightly different.
  146. Added test 210, 211 and 212 to verify these changes. Had to improve the
  147. test script too and added a new primitive to the test file format.
  148. Daniel (24 November 2004)
  149. - Andrés García fixed the configure script to detect select properly when run
  150. with Msys/Mingw on Windows.
  151. Daniel (22 November 2004)
  152. - Made HTTP PUT and POST requests no longer use HEAD when doing multi-pass
  153. auth negotiation (NTLM, Digest and Negotiate), but instead use the request
  154. keyword "properly". Details in lib/README.httpauth. This also introduces
  155. CURLOPT_IOCTLFUNCTION and CURLOPT_IOCTLDATA, to be used by apps that use the
  156. "any" auth alternative as then libcurl may need to send the PUT/POST data
  157. more than once and thus may need to ask the app to "rewind" the read data
  158. stream to start.
  159. See also the new example using this: docs/examples/anyauthput.c
  160. - David Phillips enhanced test 518. I made it depend on a "feature" so that
  161. systems without getrlimit() won't attempt to test 518. configure now checks
  162. for getrlimit() and setrlimit() for this test case.
  163. Daniel (18 November 2004)
  164. - David Phillips fixed libcurl to not crash anymore when more than FD_SETSIZE
  165. file descriptors are in use. Test case 518 added to verify.
  166. Daniel (15 November 2004)
  167. - To test my fix for the CURLINFO_REDIRECT_TIME bug, I added time_redirect and
  168. num_redirects support to the -w writeout option for the command line tool.
  169. - Wojciech Zwiefka found out that CURLINFO_REDIRECT_TIME didn't work as
  170. documented.
  171. Daniel (12 November 2004)
  172. - Gisle Vanem modigied the MSVC and Netware makefiles to build without
  173. libcurl.def
  174. - Dan Fandrich added the --disable-crypto-auth option to configure to allow
  175. libcurl to build without Digest support. (I figure it should also explicitly
  176. disable Negotiate and NTLM.)
  177. - *** Modified Behaviour Alert ***
  178. Setting CURLOPT_POSTFIELDS to NULL will no longer do a GET.
  179. Setting CURLOPT_POSTFIELDS to "" will send a zero byte POST and setting
  180. CURLOPT_POSTFIELDS to NULL and CURLOPT_POSTFIELDSIZE to zero will also make
  181. a zero byte POST. Added test case 515 to verify this.
  182. Setting CURLOPT_HTTPPOST to NULL makes a zero byte post. Added test case 516
  183. to verify this.
  184. CURLOPT_POSTFIELDSIZE must now be set to -1 to signal "we don't know".
  185. Setting it to zero simply says this is a zero byte POST.
  186. When providing POST data with a read callback, setting the size up front
  187. is now made with CURLOPT_POSTFIELDSIZE and not with CURLOPT_INFILESIZE.
  188. Daniel (11 November 2004)
  189. - Dan Fandrich added --disable-verbose to the configure script to allow builds
  190. without verbose strings in the code, to save some 12KB space. Makes sense
  191. only for systems with very little memory resources.
  192. - Jeff Phillips found out that a date string with a year beyond 2038 could
  193. crash the new date parser on systems with 32bit time_t. We now check for
  194. this case and deal with it.
  195. Daniel (10 November 2004)
  196. - I installed Heimdal on my Debian box (using the debian package) and noticed
  197. that configure --with-gssapi failed to create a nice build. Fixed now.
  198. Daniel (9 November 2004)
  199. - Gisle Vanem marked all external function calls with CURL_EXTERN so that now
  200. the Windows, Netware and other builds no longer need libcurl.def or similar
  201. files.
  202. Daniel (8 November 2004)
  203. - Made the configure script check for tld.h if libidn was detected, since
  204. libidn 0.3.X didn't have such a header and we don't work with anything
  205. before libidn 0.4.1 anyway! Suse 9.1 apparently ships with a 0.3.X version
  206. of libidn which makes the curl 7.12.2 build fail. Jean-Philippe
  207. Barrette-LaPierre helped pointing this out.
  208. - Ian Gulliver reported in debian bug report #278691: if curl is invoked in an
  209. environment where stderr is closed the -v output will still be sent to file
  210. descriptor 2 which then might be the network socket handle! Now we have a
  211. weird hack instead that attempts to make sure that file descriptor 2 is
  212. opened (with a call to pipe()) before libcurl is called to do the transfer.
  213. configure now checks for pipe() and systems without pipe don't get the weird
  214. hack done.
  215. Daniel (5 November 2004)
  216. - Tim Sneddon made libcurl send no more than 64K in a single first chunk when
  217. doing a huge POST on VMS, as this is a system limitation. Default on general
  218. systems is 100K.
  219. Daniel (4 November 2004)
  220. - Andres Garcia made it build on mingw againa, my --retry code broke the build.
  221. Daniel (2 November 2004)
  222. - Added --retry-max-time that allows a maximum time that may not have been
  223. reached for a retry to be made. If not set there is no maximum time, only
  224. the amount of retries set with --retry.
  225. - Paul Nolan provided a patch to make libcurl build nicely on Windows CE.
  226. Daniel (1 November 2004)
  227. - When cross-compiling, the configure script no longer attempts to use
  228. pkg-config on the build host in order to detect OpenSSL compiler options.
  229. Daniel (27 October 2004)
  230. - Dan Fandrich:
  231. An improvement to the gzip handling of libcurl. There were two problems with
  232. the old version: it was possible for a malicious gzip file to cause libcurl
  233. to leak memory, as a buffer was malloced to hold the header and never freed
  234. if the header ended with no file contents. The second problem is that the
  235. 64 KiB decompression buffer was allocated on the stack, which caused
  236. unexpectedly high stack usage and overflowed the stack on some systems
  237. (someone complained about that in the mailing list about a year ago).
  238. Both problems are fixed by this patch. The first one is fixed when a recent
  239. (1.2) version of zlib is used, as it takes care of gzip header parsing
  240. itself. A check for the version number is done at run-time and libcurl uses
  241. that feature if it's present. I've created a define OLD_ZLIB_SUPPORT that
  242. can be commented out to save some code space if libcurl is guaranteed to be
  243. using a 1.2 version of zlib.
  244. The second problem is solved by dynamically allocating the memory buffer
  245. instead of storing it on the stack. The allocation/free is done for every
  246. incoming packet, which is suboptimal, but should be dwarfed by the actual
  247. decompression computation.
  248. I've also factored out some common code between deflate and gzip to reduce
  249. the code footprint somewhat. I've tested the gzip code on a few test files
  250. and I tried deflate using the freshmeat.net server, and it all looks OK. I
  251. didn't try running it with valgrind, however.
  252. - Added a --retry option to curl that takes a numerical option for the number
  253. of times the operation should be retried. It is retried if a transient error
  254. is detected or if a timeout occurred. By default, it will first wait one
  255. second between the retries and then double the delay time between each retry
  256. until the delay time is ten minutes which then will be the delay time
  257. between all forthcoming retries. You can set a static delay time with
  258. "--retry-delay [num]" where [num] is the number of seconds to wait between
  259. each retry.
  260. Daniel (25 October 2004)
  261. - Tomas Pospisek filed bug report #1053287 that proved -C - and --fail on a
  262. file that was already completely downloaded caused an error, while it
  263. doesn't if you don't use --fail! I added test case 194 to verify the fix.
  264. Grrr. CURLOPT_FAILONERROR is now added to the list stuff to remove in
  265. libcurl v8 due to all the kludges needed to support it.
  266. - Mohun Biswas found out that formposting a zero-byte file didn't work very
  267. good. I fixed.
  268. Daniel (19 October 2004)
  269. - Alexander Krasnostavsky made it possible to make FTP 3rd party transfers
  270. with both source and destination being the same host. It can be useful if
  271. you want to move a file on a server or similar.
  272. - Guillaume Arluison added CURLINFO_NUM_CONNECTS to allow an app to figure
  273. out how many new connects a previous transfer required.
  274. I added %{num_connects} to the curl tool and added test case 192 and 193
  275. to verify the new code.
  276. Daniel (18 October 2004)
  277. - Peter Wullinger pointed out that curl should call setlocale() properly to
  278. initiate the specific language operations, to make the IDN stuff work
  279. better.
  280. Version 7.12.2 (18 October 2004)
  281. Daniel (16 October 2004)
  282. - Alexander Krasnostavsky made the CURLOPT_FTP_CREATE_MISSING_DIRS option work
  283. fine even for third party transfers.
  284. - runekl at opoint.com found out (and provided a fix) that libcurl leaked
  285. memory for cookies with the "max-age" field set.
  286. Gisle (16 October 2004)
  287. - Issue 50 in TODO-RELEASE; Added Traian Nicolescu's patches for threaded
  288. resolver on Windows. Plugged some potential handle and memory leaks.
  289. Daniel (14 October 2004)
  290. - Eric Vergnaud pointed out that libcurl didn't treat ?-letters in the user
  291. name and password fields properly in URLs, like
  292. ftp://us?er:pass?word@site.com/. Added test 191 to verify the fix.
  293. Daniel (11 October 2004)
  294. - libcurl now uses SO_NOSIGPIPE for systems that support it (Mac OS X 10.2 or
  295. later is one) to inhibit the SIGPIPE signal when writing to a socket while
  296. the peer dies. The same effect is provide by the MSG_NOSIGNAL parameter to
  297. send() on other systems. Alan Pinstein verified the fix.
  298. Daniel (10 October 2004)
  299. - Systems with 64bit longs no longer use strtoll() or our strtoll- replacement
  300. to parse 64 bit numbers. strtol() works fine. Added a configure check to
  301. detect if [constant]LL works and if so, use that in the strtoll replacement
  302. code to work around compiler warnings reported by Andy Cedilnik.
  303. Gisle (6 October 2004)
  304. - For USE_LIBIDN builds: Added Top-Level-Domain (TLD) check of host-name
  305. used in fix_hostname(). Checks if characters in 'host->name' (indirectly
  306. via 'ace_hostname') are legal according to the TLD tables in libidn.
  307. Daniel (6 October 2004)
  308. - Chih-Chung Chang reported that if you use CURLOPT_RESUME_FROM and enabled
  309. CURLOPT_FOLLOWLOCATION, libcurl reported error if a redirect happened even
  310. if the new URL would provide the resumed file. Test case 188 added to verify
  311. the fix (together with existing test 99).
  312. - Dan Fandrich fixed a configure flaw for systems that need both nsl and socket
  313. libs to use gethostbyname().
  314. - Removed tabs and trailing whitespace from lots of source files.
  315. Daniel (5 October 2004)
  316. - Made configure --with-libidn=PATH try the given PATH before the default
  317. paths to make it possible to override.
  318. - If idna_strerror() is present in libidn, we can use that instead of our
  319. internal replacement. This function was added by Simon in libidn 0.5.6 and
  320. is detected by configure.
  321. - It seems basename() on IRIX is in the libgen library and since we don't use
  322. that, configure finds libgen.h but not basename and then we get a compiler
  323. error because our basename() replacement doesn't match the proto in
  324. libgen.h. Starting now, we don't include the file if basename wasn't found
  325. as well.
  326. Daniel (4 October 2004)
  327. - Chris found a race condition resulting in CURLE_COULDNT_RESOLVE_HOST and
  328. potential crash, in the windows threaded name resolver code.
  329. Daniel (3 October 2004)
  330. - Replaced the use of isspace() in cookie.c with our own version instead since
  331. we have most data as 'char *' and that makes us pass in negative values if
  332. there is 8bit data in the string. Changing to unsigned causes too much
  333. warnings or too many required typecasts to the normal string functions.
  334. Harshal Pradhan identified this problem.
  335. Daniel (2 October 2004)
  336. - Bertrand Demiddelaer found a case where libcurl could read already freed
  337. data when CURLOPT_VERBOSE is used and a (very) persistent connection. It
  338. happened when the dns cache entry for the connection was pruned while the
  339. connection was still alive and then again re-used. We worked together on
  340. this fix.
  341. - Gisle Vanem provided code that displays an error message when the (libidn
  342. based) IDN conversion fails. This is really due to a missing suitable
  343. function in the libidn API that I hope we can remove once libidn gets a
  344. function like this.
  345. Daniel (1 October 2004)
  346. - Aleksandar Milivojevic reported a problem in the Redhat bugzilla (see
  347. https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=134133) and not to
  348. anyone involved in the curl project! This happens when you try to curl a
  349. file from a proftpd site using SSL. It seems proftpd sends a somewhat
  350. unorthodox response code (232 instead of 230). I relaxed the response code
  351. check to deal with this and similar cases.
  352. - Based on Fedor Karpelevitch's formpost path basename patch, file parts in
  353. formposts no longer include the path part. If you _really_ want them, you
  354. must provide your preferred full file name with CURLFORM_FILENAME.
  355. Added detection for libgen.h and basename() to configure. My custom
  356. basename() replacement function for systems without it, might be a bit too
  357. naive...
  358. Updated 6 test cases to make them work with the stripped paths.
  359. Daniel (30 September 2004)
  360. - Larry Campbell added CURLINFO_OS_ERRNO to curl_easy_getinfo() that allows an
  361. app to retrieve the errno variable after a (connect) failure. It will make
  362. sense to provide this for more failures in a more generic way, but let's
  363. start like this.
  364. - Günter Knauf and Casey O'Donnell worked out an extra #if condition for the
  365. curl/multi.h header to work better in winsock-using apps.
  366. - Jean-Philippe Barrette-LaPierre made buildconf run better on Mac OS X by
  367. properly using glibtoolize instead of plain libtoolize. (This is made if
  368. glibtool was found and used instead of plain libtool.)
  369. Daniel (29 September 2004)
  370. - Bertrand Demiddelaer fixed curl_easy_reset() so that it doesn't mistakingly
  371. enable the progress meter.
  372. Daniel (28 September 2004)
  373. - "Mekonikum" found out that if you built curl without SSL support, although
  374. your current SSL installation supports Engine, the compile fails.
  375. Daniel (27 September 2004)
  376. - When --with-ssl=PATH is used to the configure script, it no longer uses
  377. pkg-config to figure out extra details. That is now only done if no PATH is
  378. included or if SSL is checked for by default without the --with-ssl option.
  379. Daniel (25 September 2004)
  380. - Peter Sylvester pointed out that CURLOPT_SSLENGINE couldn't even be set to
  381. NULL when no engine was supported. It can now.
  382. Daniel (22 September 2004)
  383. - Dan Fandrich fixed three test cases to no longer use "localhost" but instead
  384. use "127.0.0.1" to avoid requiring that localhost resolves nicely.
  385. - Jean-Claude Chauve fixed an LDAP crash when more than one record was
  386. retrieved.
  387. Daniel (19 September 2004)
  388. - Andreas Rieke pointed out that when attempting to connect to a host without
  389. a service on the specified port, curl_easy_perform() didn't properly provide
  390. an error message in the CURLOPT_ERRORBUFFER buffer.
  391. Daniel (16 September 2004)
  392. - Daniel at touchtunes uses the FTP+SSL server "BSDFTPD-SSL from
  393. http://bsdftpd-ssl.sc.ru/" which accordingly doesn't properly work with curl
  394. when "AUTH SSL" is issued (although the server responds fine and everything)
  395. but requires that curl issues "AUTH TLS" instead. See
  396. http://curl.haxx.se/feedback/display.cgi?id=10951944937603&support=yes
  397. Introducing CURLOPT_FTPSSLAUTH that allows the application to select which
  398. of the AUTH strings to attempt first.
  399. - Anonymous filed bug report #1029478 which identified a bug when you 1) used
  400. a URL without properly seperating the host name and the parameters with a
  401. slash. 2) the URL had parameters to the right of a ? that contains a slash
  402. 3) curl was told to follow Location:s 4) the request got a response that
  403. contained a Location: to redirect to "/dir". curl then appended the new path
  404. on the wrong position of the original URL.
  405. Test case 187 was added to verify that this was fixed properly.
  406. Daniel (11 September 2004)
  407. - Added parsedate.c that contains a rewrite of the date parser currently
  408. provided by getdate.y. The new one is MUCH smaller and will allow us to run
  409. away from the yacc/bison jungle. It is also slightly lacking in features
  410. compared to the old one, but it supports parsing of all date formats HTTP
  411. involves (and a fair bunch of others).
  412. Daniel (10 September 2004)
  413. - As found out by Jonas Forsman, curl didn't allow -F to set Content-Type on
  414. text-parts. Starting now, we can do -F "name=daniel;type=text/extra". Added
  415. test case 186 to verify.
  416. - Bug report #1025986. When following a Location: with a custom Host: header
  417. replacement, curl only replaced the Host: header on the initial request
  418. and didn't replace it on the following ones. This resulted in requests with
  419. two Host: headers.
  420. Now, curl checks if the location is on the same host as the initial request
  421. and then continues to replace the Host: header. And when it moves to another
  422. host, it doesn't replace the Host: header but it also doesn't make the
  423. second Host: header get used in the request.
  424. This change is verified by the two new test cases 184 and 185.
  425. Daniel (8 September 2004)
  426. - Modified the test suite to be able to use and run with customized port
  427. numbers. This was always intended but never before possible. Now a simple
  428. change in the runtests.pl script can make all tests use different ports.
  429. The default ports in use from now on are 8990 to 8993.
  430. Daniel (2 September 2004)
  431. - Minor modification of an SSL-related error message.
  432. Daniel (31 August 2004)
  433. - David Tarendash found out that curl_multi_add_handle() returned
  434. CURLM_CALL_MULTI_PERFORM instead of CURLM_OK.
  435. Daniel (30 August 2004)
  436. - Make "Proxy-Connection: close" close the current proxy connection, as Roman
  437. Koifman found out.
  438. Daniel (24 August 2004)
  439. - Fixed a getdate problem by post-replacing the getdate.c file after the
  440. bison/yacc process to add the fix Harshal Pradhan suggested. The problem
  441. caused a crash on Windows when parsing some dates.
  442. Daniel (23 August 2004)
  443. - Roman Koifman pointed out that libcurl send Expect: 100-continue on POSTs
  444. even when told to use HTTP 1.0, which is not correct. Test case 180 and
  445. 181 verify this.
  446. - Added test case 182 to verify that zero byte transfers call the callback
  447. properly.
  448. Daniel (20 August 2004)
  449. - Alexander Krasnostavsky made the write callback get called even when a zero
  450. byte file is downloaded.
  451. Daniel (18 August 2004)
  452. - Ling Thio pointed out that when libcurl is built ipv6-enabled, it still did
  453. reverse DNS lookups when fed with a numerical IP-address (like
  454. http://127.0.0.1/), although it doesn't when built ipv6-disabled. libcurl
  455. should never do reverse lookups.
  456. Daniel (17 August 2004)
  457. - Kjetil Jacobsen noticed that when transferring a file:// URL pointing to an
  458. empty file, libcurl would return with the file still open.
  459. - Alexander Krasnostavsky pointed out that the configure script needs to define
  460. _THREAD_SAFE for AIX systems to make libcurl built really thread-safe.
  461. Also added a check for the xlc compiler on AIX, and if that is detect we use
  462. the -qthreaded compiler option
  463. Daniel (16 August 2004)
  464. - libcurl now allows a custom "Accept-Encoding:" header override the
  465. internally set one that gets set with CURLOPT_ENCODING. Pointed out by Alex.
  466. - Roland Krikava found and fixed a cookie problem when using a proxy (the
  467. path matching was wrong). I added test case 179 to verify that we now do
  468. right.
  469. Daniel (15 August 2004)
  470. - Casey O'Donnell fixed some MSVC makefile targets to link properly.
  471. Daniel (11 August 2004)
  472. - configure now defines _XOPEN_SOURCE to 500 on systems that need it to build
  473. warning-free (the only known one so far is non-gcc builds on 64bit SGI
  474. IRIX). (Reverted this change later as it caused compiler errors.)
  475. - the FTP code now includes the server response in the error message when the
  476. server gives back a 530 after the password is provided, as it isn't
  477. necessary because of a bad user name or password.
  478. Version 7.12.1 (10 August 2004)
  479. Daniel (10 August 2004)
  480. - In OpenSSL 0.9.7d and earlier, ASN1_STRING_to_UTF8 fails if the input is
  481. already UTF-8 encoded. This made the certificate verification fail if the
  482. remote server used a certificate with the name UTF-8 encoded.
  483. Work-around brought by Alexis S. L. Carvalho.
  484. Daniel (9 August 2004)
  485. - I fixed the configure script for krb4 to use -lcom_err as well, as I started
  486. to get link problems with it unless I did that on my Solaris 2.7 box. I
  487. don't understand why I started to get problems with this now!
  488. Daniel (5 August 2004)
  489. - Enrico Scholz fixed the HTTP-Negotiate service name to be uppercase as
  490. reported in bug report #1004105
  491. Daniel (4 August 2004)
  492. - Gisle Vanem provided a fix for the multi interface and connecting to a host
  493. using multiple IP (bad) addresses.
  494. - Dylan Salisbury made libcurl no longer accept cookies set to a TLD only (it
  495. previously allowed that on the seven three-letter domains).
  496. Daniel (31 July 2004)
  497. - Joel Chen reported that the digest code assumed quotes around the contents a
  498. bit too much.
  499. Daniel (28 July 2004)
  500. - Bertrand Demiddelaer fixed the host name to get setup properly even when a
  501. connection is re-used, when a proxy is in use. Previously the wrong Host:
  502. header could get sent when re-using a proxy connection to a different target
  503. host.
  504. - Fixed Brian Akins' reported problems with duplicate Host: headers on re-used
  505. connections. If you attempted to replace the Host: header in the second
  506. request, you got two such headers!
  507. - src/Makefile.am now includes the Makefile.inc file to get info about files
  508. Daniel (26 July 2004)
  509. - Made "curl [URL] -o name#2" work as expected. If there's no globbing for the
  510. #-number, it will simply be used as #2 in the file name.
  511. - Bertrand Demiddelaer fixed testing with valgrind 2.1.x and added two missing
  512. newlines in the cookie informationals.
  513. Daniel (24 July 2004)
  514. - I fixed the autobuilds with ares, since they now need to have buildconf run
  515. in the ares dir before the configure script is run.
  516. - Added Casey O'Donnell's curl_easy_reset() function. It has a proto in
  517. curl/curl.h but we have no man page yet.
  518. Daniel (20 July 2004)
  519. - Added buildconf and buildconf.bat to the release archives, since they are
  520. handy for rebuilding curl when using a daily snapshot (and not a pure CVS
  521. checkout).
  522. Daniel (16 July 2004)
  523. - As suggested by Toby Peterson, libcurl now ignores Content-Length data if the
  524. given size is a negative number. Test case 178 verifies this.
  525. Daniel (14 July 2004)
  526. - Günter Knauf has made the Netware builds do without the config-netware.h
  527. files, so they are now removed from the dist packages.
  528. - Günter Knauf made curl and libcurl build with Borland again.
  529. - Andres Garcia fixed the common test 505 failures on windows.
  530. Daniel (6 July 2004)
  531. - Andrés García found out why the windows tests failed on file:// "uploads".
  532. Daniel (2 July 2004)
  533. - Andrés García reported a curl_share_cleanup() crash that occurs when no
  534. lock/unlock callbacks have been set and the share is cleaned up.
  535. Daniel (1 July 2004)
  536. - When using curl --trace or --trace-ascii, no trace messages that were sent
  537. by curl_easy_cleanup() were included in the trace file. This made the
  538. message "Closing connection #0" never appear in trace dumps.
  539. Daniel (30 June 2004)
  540. - Niels van Tongeren found that setting CURLOPT_NOBODY to TRUE doesn't disable
  541. a previously set POST request, making a very odd request get sent (unless
  542. you disabled the POST) a HEAD request with a POST request-body. I've now
  543. made CURLOPT_NOBODY enforce a proper HEAD. Added test case 514 for this.
  544. Daniel (29 June 2004)
  545. - Günter Knauf made the testcurl.pl script capable of using a custom setup
  546. file to easier run multiple autobuilds on the same source tree.
  547. - Gisle fixed the djgpp build and fixed a memory problem in some of the
  548. reorged name resolved code.
  549. - Fixed code to allow connects done using the multi interface to attempt the
  550. next IP when connecting to a host that resolves to multiple IPs and a
  551. connect attempt fails.
  552. Daniel (27 June 2004)
  553. - Based on Rob Stanzel's bug report #979480, I wrote a configure check that
  554. checks if poll() can be used to wait on NULL as otherwise select() should be
  555. used to do it. The select() usage was also fixed according to his report.
  556. Mac OS X 10.3 says "poll() functionality for Mac OS X is implemented via an
  557. emulation layer on top of select(), not in the kernel directly. It is
  558. recommended that programs running under OS X 10.3 prefer select() over
  559. poll(). Configure scripts should look for the _POLL_EMUL_H_ define (instead
  560. of _POLL_H_ or _SYS_POLL_H_) and avoid implementations where poll is not
  561. implemented in the kernel."
  562. Yes, we can probably use select() on most platforms but today I prefered to
  563. leave the code unaltered.
  564. Daniel (24 June 2004)
  565. - The standard curl_version() string now only includes version info about
  566. involved libraries and not about particular features. Thus it will no longer
  567. include info about ipv6 nor GSS. That info is of course still available in
  568. the feature bitmask curl_version_info() offers.
  569. - Replaced all occurances of sprintf() with snprintf(). This is mostly because
  570. it is "A Good Thing" rather than actually fixing any known problem. This
  571. will help preventing future possible mistakes to cause buffer overflows.
  572. - Major reorganization in the host resolve code (again). This time, I've
  573. modified the code to now always use a linked list of Curl_addrinfo structs
  574. to return resolved info in, no matter what resolver method or support that
  575. is available on the platform. It makes it a lot easier to write code that
  576. uses or depends on resolved data.
  577. Internally, this means amongst other things that we can stop doing the weird
  578. "increase buffer size until it works" trick when resolving hosts on
  579. ipv4-only with gethostbyname_r(), we support socks even on libcurls built
  580. with ipv6 enabled (but only to socks servers that resolve to an ipv4
  581. address) and we no longer deep-copy or relocate hostent structs (we create
  582. Curl_addrinfo chains instead).
  583. The new "hostent to Curl_addrinfo" converter function is named Curl_he2ai()
  584. and is slightly naive and simple, yet I believe it is functional enough to
  585. work for libcurl.
  586. Daniel (22 June 2004)
  587. - David Cohen pointed out that RFC2109 says clients should allow cookies to
  588. contain least 4096 bytes while libcurl only allowed 2047. I raised the limit
  589. to 4999 now and made the used buffer get malloc()ed instead of simply
  590. allocated on stack as before. Extended test case 46 to include a cookie with
  591. very huge content to verify the fix.
  592. - Günter Knauf fixed getdate.y to remove a few warnings. I removed the
  593. ifdef'ed test we never ever use anyway.
  594. - Gisle Vanem fixed the certificate wildcard checks to support a '*'-letter
  595. anywhere in the wildcard string, support multiple '*'-letters in the
  596. wildcard and to allow the '*'-letter to match a string that includes a dot.
  597. Daniel (21 June 2004)
  598. - testcurl.sh is now removed completely, tests/testcurl.pl is the script to
  599. use when autobuilding curl!
  600. - Kjetil Jacobsen brought my attention to the fact that you cannot properly
  601. abort an upload with the readfunction callback, since returning 0 or -1 only
  602. stops the upload and libcurl will continue waiting for downloaded data and
  603. the server often waits for the rest of the upload data to arrive.
  604. Thus, I've now added the ability for read callbacks to return
  605. CURL_READFUNC_ABORT to abort an upload from a read callback. This will stop
  606. the transfer immediately with a CURLE_ABORTED_BY_CALLBACK return code.
  607. Test case 513 was added to verify that it works. I had to improve the test
  608. HTTP server too to dump the request to a file even when the client
  609. disconnects prematurely.
  610. Daniel (19 June 2004)
  611. - Luca Alteas provided a test case with a failing curl operation: when we POST
  612. to a site with --digest (or similar) set, and the server responded with a 302
  613. Location: to the "authprobe" request, it was not treated correctly. We still
  614. will behave badly if FOLLOWLOCATION is enabled for this case, but I'm not
  615. in the mood to dive into this right now and will leave it as-is for now.
  616. Verified my fix with test case 177.
  617. Daniel (18 June 2004)
  618. - Gisle Vanem's patch that provides more details from the SSL layers (if you
  619. use an OpenSSL version that supports it). It also introduces two new types
  620. of data that can be sent to the debug callback: CURLINFO_SSL_DATA_IN and
  621. CURLINFO_SSL_DATA_OUT.
  622. - With David Byron's test server I could repeat his problem and make sure that
  623. POSTing over HTTPS:// with NTLM works fine now. There was a general problem
  624. with multi-pass authentication with non-GET operations with CONNECT.
  625. Daniel (16 June 2004)
  626. - Modified to keep the upload byte counter in an curl_off_t, not an int as
  627. before. 32bits is not enough. This is most likely the bug Jean-Louis Lemaire
  628. reported that makes 2GB FTP uploads to report error ("unaligned file sizes")
  629. when completed.
  630. Daniel (15 June 2004)
  631. - Luca Alteas reported a problem that I fixed: if you did a POST with
  632. CURLAUTH_DIGEST set but the server didn't require any authentication,
  633. libcurl would repeatedly send HEAD lots of times until it gives up. This was
  634. actually the case for all multi-pass authentications. Added test case 174,
  635. 175 and 176 to verify this.
  636. Daniel (14 June 2004)
  637. - Multipart formposts uploading files no longer inserts the files themselves
  638. into the huge prebuilt chunk. This enables libcurl to formpost files that is
  639. larger than the amount of system memory. When the file given is passed on
  640. stdin, libcurl still uses the old method of reading the full fill before the
  641. upload takes place. This approach was selected in order to not alter the
  642. behavior for existing applications, as when using stdin libcurl can't know
  643. the size of the upload and chunked transfer-encoding can only be used on
  644. HTTP 1.1 servers.
  645. Daniel (13 June 2004)
  646. - Gisle found out that we did wildcard cert name checks wrong, so that parts
  647. of the check wrongly was case sensitive.
  648. Daniel (11 June 2004)
  649. - Tim Sneddon brought a minor VMS fix to make curl build properly on his VMS
  650. machine. He also had some interesting libcurl patches... they might be able
  651. to do in a slightly nicer way. Discussions are in progress.
  652. Daniel (10 June 2004)
  653. - Gisle Vanem brought code cleanupsm better verbose output and better connect
  654. timeout handling when attempting to connect to a host that resolves to
  655. multiple IP addresses.
  656. - Steven Bazyl and Seshubabu Pasam pointed out a bug on win32 when freeing the
  657. path after a file:// transfer.
  658. Daniel (9 June 2004)
  659. - Alexander Krasnostavsky made 'configure --disable-http' work to build libcurl
  660. without HTTP support. I added a new return code for curl_formadd() in case
  661. libcurl is built with HTTP disable: CURL_FORMADD_DISABLED.
  662. - Alexander Krasnostavsky pointed out a missing file in the generated
  663. curllib.dsp file, and now people building with this should get a libcurl.lib
  664. file generated as it used to do before we generated this file.
  665. Daniel (8 June 2004)
  666. - Marty Kuhrt fixed a minor build problem for VMS.
  667. Daniel (7 June 2004)
  668. - Reverted the configure check from the 4th since it obviously didn't work.
  669. Remade it in a different manner that hopefully works better.
  670. Daniel (4 June 2004)
  671. - Günter Knauf brought patches to make curl build fine on NetWare again.
  672. - Made the configure checks for strerror_r() not exit the configure script
  673. when built for cross-compiling.
  674. Daniel (3 June 2004)
  675. - Chris Gaukroger pointed out that 'make test' attempts to run the tests even
  676. if curl is built cross-compiled. I've now made it output a short message
  677. instead, saying it isn't possible to do.
  678. - Alexander Krasnostavsky brought FTP 3rd party transfer support to libcurl.
  679. You can now use libcurl to transfer files between two remote hosts using
  680. FTP. There are a bunch of new options to control this with:
  681. CURLOPT_SOURCE_HOST
  682. CURLOPT_SOURCE_USERPWD
  683. CURLOPT_SOURCE_PATH
  684. CURLOPT_SOURCE_PORT
  685. CURLOPT_PASV_HOST
  686. CURLOPT_SOURCE_PREQUOTE
  687. CURLOPT_SOURCE_POSTQUOTE
  688. (They still remain to be documented properly in the curl_easy_setopt man
  689. page.)
  690. When using this, the ordinary CURLOPT_URL specifies the target URL, and you
  691. specify the source data with these additional options. ftp3rdparty.c is a
  692. new example source code showing how to use this.
  693. - Vincent Bronner fixed the HTTP Digest code to use the proxy user name and
  694. password when doing proxy authentication, it previously always used the host
  695. user name and password!
  696. Daniel (2 June 2004)
  697. - CURLOPT_UPLOAD and CURLOPT_PUT now do the exact same thing internally, which
  698. fixes some old confusions on when which of these should be used and what the
  699. differences are.
  700. - Applied Gisle's fixes to make curl build fine with lcc-win32
  701. Version 7.12.0 (2 June 2004)
  702. Daniel (1 June 2004)
  703. - I clarified the --create-dirs option somewhat in the curl man page.
  704. - Renaud Duhaut corrected the curl_unescape man page.
  705. - David Byron modified one of Massimiliano Ziccardi's recent MSVC makefile
  706. changes to now again use the mm lib by default.
  707. Daniel (26 May 2004)
  708. - Mohun Biswas added release-zlib and debug-zlib targets to the MSVC libcurl
  709. Makefile
  710. - David Byron reported a problem with proxy authentication when doing CONNECT,
  711. like when accessing HTTPS sites wiht a proxy. This probably broke when I
  712. rewrote the auth stuff recently.
  713. - I added fileupload.c in the examples directory, showing how an upload to a
  714. file:// URL is made.
  715. Daniel (25 May 2004)
  716. - Massimiliano Ziccardi updated the MSVC makefiles.
  717. Daniel (24 May 2004)
  718. - libcurl now supports "uploading" to file:// URLs. Test 204 and 205 were
  719. added to verify.
  720. - Simon Josefsson added a idn_free() function in libidn 0.4.5 as a reaction to
  721. Gisle's previous mail. We now use this function, and thus we require libidn
  722. 0.4.5 or later. No earlier version will do.
  723. - Robert D. Young reported that CURLOPT_COOKIEFILE and CURLOPT_COOKIE could
  724. not be used both in one request. Fixed it and added test case 172 to verify.
  725. Daniel (21 May 2004)
  726. - While talking to host a.b.c, libcurl did wrongly not accept cookies that
  727. were set to the domain .a.b.c (that is with a dot prefix). This is now fixed
  728. and test case 171 verifies it.
  729. Daniel (20 May 2004)
  730. - Jesse Noller reported that the upload speed info reported by libcurl was
  731. wrong. The same was true for the download speed. Fixed now.
  732. Daniel (19 May 2004)
  733. - David Byron added test case 170 - this used to crash the previous version of
  734. curl.
  735. Daniel (17 May 2004)
  736. - Peter Sylvester's patch that addresses two flaws in the peer certificate
  737. name verification:
  738. o when multiple common names are used (as in the curl tests), the last name
  739. needs to be selected.
  740. o allow comparing with encoded values, at least with BMP and ISO latin1
  741. encoded T61strings.
  742. - All 191 test cases run through the torture test OK! 'make test-torture' is
  743. now available in the root makefile (on configure-based environments).
  744. Daniel (14 May 2004)
  745. - With a slightly modified ftpserver.pl I've now run almost all tests through
  746. with runtests.pl -t. This is goodness!
  747. - Since I have been unable to contact the CVS admins for several months, I've
  748. decided that the current CVS hosting was not good enough. I've now moved the
  749. CVS repo once again, see README for updated cvs checkout instructions.
  750. Daniel (13 May 2004)
  751. - runtests.pl -t now runs fine all the way to test 100. I believe test case
  752. 100 fails because of an FTP server problem.
  753. Daniel (12 May 2004)
  754. - General cleanups all over to make libcurl survive and do well when a memory
  755. function returns NULL. runtests.pl -t now works fine for the first 26 test
  756. cases.
  757. Daniel (11 May 2004)
  758. - Seshubabu Pasam provided a patch that introduces curl_global_init_mem() -
  759. like normal curl_global_init() but allows the app to replace all memory
  760. functions with its own set. I modified it slightly.
  761. - Based on Luca Alteas' comments, I modified the curllib.dsp generation code.
  762. Daniel (10 May 2004)
  763. - Gisle mailed Simon Josefsson (of libidn fame) about the benefits of a
  764. separate free()-function by that lib to make sure the memory is freed by the
  765. same memory subsystem that allocated it. He responded positively and this
  766. will likely cause us to require a newer version of libidn as soon as Simon
  767. releases one with such a libidn_free() function.
  768. - James Bursa made runtests.pl's -t option work for any given test case, and I
  769. edited to allow -g too. Not even test case 1 worked...
  770. - Luca Altea made the nc= field not use quotes in outgoing HTTP Digest headers.
  771. - Andrés García fixed a problem in the test script that made it fail to
  772. recognize our own running HTTP server.
  773. Daniel (7 May 2004)
  774. - James Bursa fixed the memanalyze.pl script to conder malloc(0) areas OK to
  775. free() and he made two failed-resolve error messages use the new display-
  776. name instead of the internally-used name.
  777. - Gisle Vanem tried curl with
  778. www.etdomenenavnkanmaksimaltinneholdesekstitrebokstaversliksomdette.com
  779. which caused problems, and I fixed the single zero byte buffer overwrite
  780. that occurred (due to a stupid protocol buffer size and parser).
  781. - Made the lib/curllib.dsp file get generated automaticly when a distribution
  782. package is made, with the msvcproj.* files as templates and all
  783. win32-sources added. I think this can be made to work better than the always
  784. lagging-behind previous approach. I'm not sure this builds a working project
  785. file right now though!
  786. Daniel (6 May 2004)
  787. - Michael Benedict brought a fix that fills in the errorbuffer properly when
  788. ares fails to resolve a name for a case not previously dealt with like this.
  789. Daniel (5 May 2004)
  790. - Joe Halpin fixed the annoying typecast warning in lib/ldap.c
  791. - Gisle Vanem fixes:
  792. o memdebug to not access NULL on several places
  793. o libcurl.def; curl_formparse is gone.
  794. o progress.c; fixed the percent values being trunced to 0.
  795. o if2ip.*; constified the 'interface' argument.
  796. - Tor Arntsen reported that many of his autobuilds froze and I found and fixed
  797. a problem introduced with the HTTP auth overhaul that could lead to a
  798. never-ending internal request-loop due to un-initialized variables!
  799. - Removed several compiler warnings on various compilers/platforms.
  800. Daniel (4 May 2004)
  801. - curl_formparse() has been removed from the library. It has been marked and
  802. mentioned as deprecated for several years.
  803. Daniel (3 May 2004)
  804. - Rewritten HTTP authentication code. The previous code could not properly
  805. deal with the added test cases 167, 168 and 169. I've now rewritten the code
  806. to better separate host and proxy authentication and not re-use the same
  807. variables as much as before as it proved non working in the more involved
  808. cases. All the current tests run OK now, and so do the new ones. The curl
  809. tool got a new option named --proxy-digest to enable HTTP Digest
  810. authentication with the proxy. I also made the library support it.
  811. - Gisle Vanem made the LDAP code work with wldap32.dll as supplied with
  812. Win-98/ME/2000/XP, so no extra .dlls are required when curl/libcurl is used
  813. on these Windows versions.
  814. Daniel (30 April 2004)
  815. - runtests.pl now scans the valgrind log for valgrind-detected memory leaks
  816. after each test case if valgrind was found and used.
  817. - I modified the app-code in curl to include the new lib/curlx.h and only
  818. access those functions using the curlx_-prefix in preparation for the future
  819. removal of several curl_-functions from the public libcurl API.
  820. - Introduced lib/curlx.h as a single header to provide the curlx_-functions
  821. to apps.
  822. - Added notices in the man pages for curl_getenv, curl_mprintf, curl_strequal
  823. and curl_strnequal that they are subject for removal in a future release.
  824. STOP USING THESE FUNCTIONS.
  825. - Mihai Ionescu noticed he couldn't do formposts with whitespace in the file
  826. names and yes, I broke that on April 23. Sigh. I fixed it now and added
  827. test case 166 to verify it.
  828. - Luca Altea pointed out a mistake left from the Digest patch of yesterday.
  829. Daniel (29 April 2004)
  830. - Made IDN domains work when sending requsts over HTTP proxy as well. Added
  831. test case 165 to verify the functionality.
  832. - Fixed a bug in the new internal host name setup when re-using connections.
  833. - James Bursa found out that curl_easy_duphandle() with ares-built libcurl
  834. created a bad handle that would crash in the first name resolve attempt. This
  835. is now fixed and test case 512 was added to verify it.
  836. - Luca Altea provided a major HTTP Digest code fix and cleanup. We now follow
  837. the Digest RFC a lot better.
  838. - Gisle Vanem made the SSL code use ERR_error_string_n() where applicable.
  839. Daniel (27 April 2004)
  840. - I remodeled Gisle's IDN code slightly and now we convert both the host name
  841. and proxy name to the ACE encoded version to use internally for resolves and
  842. cookies etc. They are now using one 'struct hostname' each that keep both
  843. the original name and the possibly encoded name. IDN resolves work for me
  844. now using ipv6, ipv4 and ares resolving. Even cookies on IDN sites seem to
  845. do right. I got some failures at first when CHARSET wasn't set at all which
  846. confused libidn completely and it decided by encoding of choice was
  847. 'ANSI_X3.4-1968'...
  848. - made 'configure --without-libidn' work
  849. Daniel (25 April 2004)
  850. - Fixed the src/hugehelp.c file to include "setup.h" instead of "config.h" to
  851. make the problems with USE_MANUAL on windows go away.
  852. - configure --without-ssl could still wrongly include some OpenSSL info in the
  853. Makefiles if pkg-config had info about OpenSSL. Bug #941762 reported by
  854. Martin.
  855. - Since we can now build and use quite a large set of 3rd party libraries, I
  856. decided I would make configure produce a summary at the end showing what
  857. libraries it uses and if not, what option to use to make it use that. I also
  858. added some other random info that is nice in a "configure summary" output.
  859. - Applied TommyTam's patch that now make curl work with telnet and stdin
  860. properly on Windows.
  861. - The changes for today below were made by me and Gisle Vanem.
  862. The file previously known as hostip.c has now undergone a huge cleanup and
  863. split:
  864. hostip.c explained
  865. ==================
  866. The main COMPILE-TIME DEFINES to keep in mind when reading the host*.c
  867. source file are these:
  868. CURLRES_IPV6 - this host has getaddrinfo() and family, and thus we use
  869. that. The host may not be able to resolve IPv6, but we don't really have to
  870. take that into account. Hosts that aren't IPv6-enabled have CURLRES_IPV4
  871. defined.
  872. CURLRES_ARES - is defined if libcurl is built to use c-ares for asynchronous
  873. name resolves. It cannot have ENABLE_IPV6 defined at the same time, as
  874. c-ares has no ipv6 support. This can be Windows or *nix.
  875. CURLRES_THREADED - is defined if libcurl is built to run under (native)
  876. Windows, and then the name resolve will be done in a new thread, and the
  877. supported asynch API will be the same as for ares-builds.
  878. If any of the two previous are defined, CURLRES_ASYNCH is defined too. If
  879. libcurl is not built to use an asynchronous resolver, CURLRES_SYNCH is
  880. defined.
  881. The host*.c sources files are split up like this:
  882. hostip.c - method-independent resolver functions and utility functions
  883. hostasyn.c - functions for asynchronous name resolves
  884. hostsyn.c - functions for synchronous name resolves
  885. hostares.c - functions for ares-using name resolves
  886. hostthre.c - functions for threaded name resolves
  887. hostip4.c - ipv4-specific functions
  888. hostip6.c - ipv6-specific functions
  889. The hostip.h is the single united header file for all this. It defines the
  890. CURLRES_* defines based on the config*.h and setup.h defines.
  891. - Added function header comments to many functions in an attempt to better
  892. explain the purpose of them all.
  893. - configure --with-libidn is now supported. It makes the configure script
  894. check for libidn libs and include files in the prefix path given. If you
  895. say --with-libidn=/usr/local, it will check for the lib in /usr/local/lib
  896. and the includes in /usr/local/include etc.
  897. - curl_version_info() now returns a struct aged CURLVERSION_THIRD including
  898. libidn version info. The string curl_version() returns also includes libidn
  899. version info, if available.
  900. Version 7.11.2 (26 April 2004)
  901. Daniel (25 April 2004)
  902. - Erwin Authried pointed out that configure --disable-manual didn't do right
  903. if you already had a src/hugehelp.c source file present (which most people
  904. do I guess). It now uses the USE_MANUAL define properly.
  905. Daniel (23 April 2004)
  906. - Gisle Vanem found and fixed a memory leak when doing (failing) Windows
  907. threaded name resolves.
  908. - I also added test case 163 just to make sure -F "var=<file" works fine and
  909. can pass on characters such as newlines, carriage-return and tabs.
  910. - When we added test case 162 without adding the necessary requirement field
  911. in the test meta data we could see that curl didn't complain if you used
  912. --proxy-ntlm even if the underlying libcurl it uses has no NTLM support! I
  913. now made it check this first, and it now exists with a "the installed
  914. libcurl version doesn't support this" message if it happens again.
  915. Daniel (22 April 2004)
  916. - David Byron found and fixed a small bug with the --fail and authentication
  917. stuff added a few weeks ago. Turns out that if you specify --proxy-ntlm and
  918. communicate with a proxy that requires basic authentication, the proxy
  919. properly returns a 407, but the failure detection code doesn't realize it
  920. should give up, so curl returns with exit code 0. Test case 162 added to
  921. verify the functionality.
  922. - allow newlines in the contents when doing -F "var=[contents]"
  923. Robert Marlow reported.
  924. - If a transfer is found out to be only partial, libcurl will now treat that
  925. as a problem serious enough to skip the final QUIT command before closing
  926. the control connection. To avoid the risk that it will "hang" waiting for
  927. the QUIT response. Added test case 161 to verify this.
  928. Daniel (21 April 2004)
  929. - Modified the heuristics for dealing with the test 160 scenario. When a
  930. connection is re-used and nothing at all is received from it (because the
  931. server closes the connection), we will now retry the request on a fresh new
  932. connection. The previous ECONNRESET stuff from January 30 was removed again
  933. as it didn't detect the situation good enough.
  934. Daniel (20 April 2004)
  935. - Added test case 160 to verify that curl works correctly when it gets a
  936. connection reset when trying to re-use a connection. It should then simply
  937. create a new connection and resend the request.
  938. Daniel (19 April 2004)
  939. - No more 512 byte limit for host name (inclusing name + password) in libcurl.
  940. An added bonus is that we use less memory for the typical (shorter URL)
  941. case.
  942. - Cleaned up the sources to better use the terms 'hostname' and 'path'
  943. internally when referring to that data. The buffers used for keep that info
  944. is called 'namebuffer' and 'pathbuffer'. Much easier to read and understand
  945. than the previous mess.
  946. Daniel (15 April 2004)
  947. - Modified runtests.pl again to remove all log files in the log/ dir between
  948. each test, and then made -p display all non-zero byte files in the log dir.
  949. It should make that data more usable and contain less rubbish.
  950. - ftpserver.pl now produces log files more similar to how the sws ones look
  951. and they now also contains a bit more details to help debugging ftp
  952. problems.
  953. - Removed the fixed maximum amount of dir levels the FTP code supported.
  954. Previously we had a fixed array for 100 levels, now we save space in each
  955. handle by allocating only for a few level by default and then enlarging that
  956. in case of need (with no maximum depth). Adjusted test case 142 to verify
  957. that 150 dir levels work fine. An added bonus is that we use less memory
  958. for the typical (not very deep) case.
  959. Daniel (14 April 2004)
  960. - Asking for CURL_IPRESOLVE_V6 when ipv6 addresses can't be resolved will
  961. now cause the resolve function to return NULL immediately. This flaw was
  962. pointed out by Gisle Vanem.
  963. - Gisle Vanem made curl -4/-6 actually set the desired option to libcurl.
  964. - runtests.pl now has a new option (-p) that will display "interesting" log
  965. files to stdout in case of a test failure. This is primarily intended to be
  966. used in the 'full-test' make target that is used by the autobuild tests, as
  967. we then get a much better chance to understand (remote) test failures based
  968. on autobuild logs alone.
  969. Daniel (13 April 2004)
  970. - Gisle Vanem made the multi interface work again on Windows even when built
  971. without ares. Before this, select() would return -1 during the name resolve
  972. phase since curl_multi_fdset() didn't return any fd_set at all which wasn't
  973. appreciated!
  974. - curl_easy_duphandle() now duplicates the tcp_nodelay info as well.
  975. Daniel (11 April 2004)
  976. - Applied David Byron's patch for the MSVC libcurl makefile for builds with
  977. zlib.
  978. Daniel (9 April 2004)
  979. - Dirk Manske improved the timer resolution for CURLINFO_*_TIME, it can now
  980. be down to usec if the system sypports it.
  981. Daniel (7 April 2004)
  982. - A request that sends "Expect: 100-continue" and gets nothing but a single
  983. 100 response back will now return a CURLE_GOT_NOTHING. Test 158 verifies.
  984. - The strtoofft() macro is now named curlx_strtoofft() to use the curlx_*
  985. approach fully.
  986. Daniel (6 April 2004)
  987. - Gisle Vanem's fixed bug #927979 reported by Nathan O'Sullivan. The problem
  988. made libcurl on Windows leak a small amount of memory in each name resolve
  989. when not used as a DLL.
  990. - New authentication code added, particularly noticable when doing POST or PUT
  991. with Digest or NTLM. libcurl will now use HEAD to negotiate the
  992. authentication and when done perform the requested POST. Previously libcurl
  993. sent POST immediately and expected the server to reply a final status code
  994. with an error and then libcurl would not send the request-body but instead
  995. send then next request in the sequence.
  996. The reason for this change is due to IIS6 barfing on libcurl when we attempt
  997. to POST with NTLM authentication. The reason for the problems is found in
  998. RFC2616 section 8.2.3 regarding how servers should deal with the 100
  999. continue request-header:
  1000. If it responds with a final status code, it MAY close the transport
  1001. connection or it MAY continue to read and discard the rest of the
  1002. request.
  1003. Previous versions of IIS clearly did close the connection in this case,
  1004. while this newer version decided it should "read and discard". That would've
  1005. forced us to send the whole POST (or PUT) data only to have it discarded and
  1006. then be forced to send it again. To avoid that huge penality, we switch to
  1007. using HEAD until we are authenticated and then send the POST.
  1008. The only actual drawback I can think of (except for the odd sites that might
  1009. treat HEAD differently than they would treat POST/PUT when given the same
  1010. URL) is that if you do POST with CURLAUTH_ANY set and the site requires NO
  1011. authentication, libcurl will still use a HEAD in a first round and then do a
  1012. POST.
  1013. If you do a HEAD or a GET on a site using CURLAUTH_ANY, libcurl will send
  1014. an un-authenticated request at once, which then is the only request if the
  1015. site requires no auth.
  1016. Alan Pinstein helped me work out the protocol details by figuring out why
  1017. libcurl failed and what IIS6 expects.
  1018. - The --limit-rate logic was corrected and now it works a lot better for
  1019. higher speeds, such as '10m' or similar. Reported in bug report #930249.
  1020. - Introducing curlx_tvnow() and curlx_tvdiff() using the new curlx_* fashion.
  1021. #include "timeval.h" from the lib dir to get the protos etc. Note that
  1022. these are NOT part of the libcurl API. The curl app simply uses the same
  1023. source files as the library does and therefore the file needs to be compiled
  1024. and linked with curl too, not just when creating libcurl.
  1025. - lib/strerror.c no longer uses sys_nerr on non-windows platforms since it
  1026. isn't portable enough
  1027. Daniel (2 April 2004)
  1028. - In the curl_strnqual.3 man page, we now prepend the man3 dir to the file
  1029. name to work better. As pointed out by Robin Kay.
  1030. - Andrés García updated the mingw makefiles.
  1031. - Dirk Manske fixed a problem I recently added in the progress meter code that
  1032. broke subsecond resolution for CURLINFO_TOTAL_TIME. He also pointed out a
  1033. mistake in the code that produces the final update of the progress meter
  1034. that would often prevent it from actually being updated that final time.
  1035. Daniel (1 April 2004)
  1036. - Dirk Manske fixed a memory leak that happened when we use ares for name
  1037. resolves and decides to time-out before ares does it. This fix uses the
  1038. brand new ares_cancel() function which is not present in c-ares 1.1.0.
  1039. When told to enable ares, the configure script now checks for presence of
  1040. the ares_cancel function to alert users if they attempt to use a too old
  1041. c-ares library.
  1042. Daniel (31 March 2004)
  1043. - Roy Shan fixed a flaw that prevented ares name resolve timeouts to occur!
  1044. - Dirk Manske found out that libcurl timed out waiting for resolves far too
  1045. easy when libcurl was built to use (c-)ares for name resolving.
  1046. - Further Digest fixing and a successful test case 153 now makes me believe
  1047. Mitz Wark's problems are fixed.
  1048. - Andres Garcia figured out that test case 63, while working, only proved a
  1049. flaw in libcurl's 'http_proxy' parser when a user name and password is
  1050. provided. The user name was not extracted properly (and 'http' was always
  1051. used as user name).
  1052. - Andrés García fixed compiler warnings in our ioctlsocket() usage.
  1053. Daniel (30 March 2004)
  1054. - Joe Halpin faced problems with the getnameinfo() argument ai_flags and the
  1055. particular bit named 'NI_WITHSCOPEID' on Solaris 9 for Intel. I've now
  1056. written a configure test that checks for a working NI_WITHSCOPEID
  1057. implemenation. No code uses the result from this test yet, it is still
  1058. experimental. James Carlson wrote in comp.unix.solaris: "It's a bug
  1059. (5006623) -- it's not supported and shouldn't be in the header file."
  1060. - I provided Mitz Wark with a first patch in order to fix libcurl's problems
  1061. to re-negotiate Digest authentication (when 'stale=true' is included in the
  1062. response header).
  1063. - Roy Shan discovered that the multi interface didn't properly timeout name
  1064. lookups which could make handles get stuck in that state and thus never get
  1065. completed. I've produced a first test patch that attempts to correct this.
  1066. - David Byron's patch was appplied to make CURLOPT_FAILONERROR work nicely
  1067. even with authentcations such as NTLM or Digest enabled. Test cases 150, 151
  1068. and 152 were added to verify the functionality.
  1069. Daniel (29 March 2004)
  1070. - Gisle Vanem updated files for the djgpp/MS-DOS build.
  1071. - Andrés García helped me work out a fix for the runtests.pl script to make
  1072. the file:// tests run fine when tested with the mingw-built version of curl.
  1073. - Fixed an include issue with netinet/tcp.h on AIX, based on input by Tor.
  1074. This also required a minor fix of the configure script.
  1075. - The postit2.c source example used the wrong struct name for the post data.
  1076. Daniel (26 March 2004)
  1077. - Gisle Vanem improved ipv6 support on windows by making the curl build to use
  1078. the correct getaddrinfo() function.
  1079. Daniel (25 March 2004)
  1080. - It turned out that AIX, despite having a "thread-safe libc", doesn't offer
  1081. all traditional functions thread-safe. This URL is informative on this
  1082. subject:
  1083. http://publibn.boulder.ibm.com/doc_link/en_US/a_doc_lib/aixprggd/ \
  1084. genprogc/thread_quick_ref.htm
  1085. As a result of this, we now check for three *_r() functions on recent AIX
  1086. versions as well that the URL mentions aren't thread-safe in AIX 5.1.
  1087. - renamed curl_strerror.[ch] to strerror.[ch]
  1088. - Joe Halpin added CURLOPT_TCP_NODELAY and --tcp-nodelay to make it possible
  1089. for users to disable the Nagle algorthim-usage.
  1090. - Tor Arntsen provided some interesting strerror_r() knowledge. glibc has its
  1091. own API which differs from the POSIX one. Daniel adjusted the configure
  1092. script to detect the version in use, and the code now uses the new defines
  1093. accordingly.
  1094. - Fixed some build flaws with the new lib/curl_strerror.c source file.
  1095. Daniel (24 March 2004)
  1096. - Gisle Vanem's fix to replace the bad use of strerror(). This introduces
  1097. Curl_strerror() that attempts to be thread-safe _and_ works on Windows too!
  1098. - Tor Arntsen spell-fixed lots of libcurl man pages.
  1099. - Tor Arntsen made testcurl.pl work with older perl 5 versions, and Daniel
  1100. made it not use chdir .. to go back, as that isn't very good when you've
  1101. setup a testdir containing symlinks.
  1102. - Added a check for strerror_r() in the configure script.
  1103. Daniel (23 March 2004)
  1104. - Added Greg Hewgill's testcurl.pl script to CVS. We have not moved over to
  1105. use this script for the real distributed testing just yet, but it is only
  1106. a matter of time.
  1107. - Gisle Vanem provided code that makes curl report a better error message
  1108. if --interface fails on windows.
  1109. - The regular progress meter is now fixed to never wrap due to long lines. All
  1110. fields are now static sized. If the time in the time fields get a time value
  1111. that would represent a time that is 100 hours or more (if not, it remains
  1112. using a HH:MM:SS display), it switches first to a "NNNd NNh" display (for
  1113. days and hours) and if that isn't enough it switches to a "NNNd" display if
  1114. it is more than 999 days.
  1115. Several of the calculations were also moved to fixed-point math instead of
  1116. using doubles.
  1117. Daniel (22 March 2004)
  1118. - Glen Nakamura noticed CURLINFO_CONTENT_LENGTH_DOWNLOAD didn't work as it
  1119. used to do if CURLOPT_NOBODY is set TRUE.
  1120. - Kevin Roth patched the cygwin package makefile and README to adjust to
  1121. new cygwin packaging guidelines.
  1122. - Enabled "NT responses" in the NTLM authentication. Doing this simply means
  1123. that we provide an extra chunk of data in each "type-3 message". The only
  1124. reason for doing this is that it seems that using only the "Lanmanager hash"
  1125. (as we've been doing until now) doesn't support passwords longer than 14
  1126. characters and it turns out there are users out there who want to use
  1127. libcurl and NTLM with such passwords! ;-) Seven NTLM-related test cases were
  1128. updated accordingly. Mentioned as issue 29 in TODO-RELEASE, bug report
  1129. #915609
  1130. - Moved the generated libcurl version info to a new header file, named
  1131. curl/curlver.h. Now interested parties can include ONLY version info, should
  1132. anyone want that (and it seems at least some windows resource files would).
  1133. Mentioned as issue 27 in TODO-RELEASE.
  1134. Daniel (21 March 2004)
  1135. - Fixed the root Makefile to use tabs for the netware target. Günter Knauf
  1136. pointed this out.
  1137. - Marty Kuhrt's VMS cleanup
  1138. - Thomas Schwinge made buildconf recognize ACLOCAL_FLAGS to invoke aclocal
  1139. with particular pre-determined options.
  1140. Version 7.11.1 (19 March 2004)
  1141. Daniel (18 March 2004)
  1142. - Tor Arntsen brought some info about SGI IRIX:
  1143. IRIX supports 3 different executable/object formats, -32, -n32 and -64.
  1144. -n32 is default 32-bit format, -32 is the "old" 32-bit format, and -64 is
  1145. the 64-bit format. Libraries for the different formats are in lib, lib32
  1146. and lib64 respectively.
  1147. We've now adjusted the configure script to adapt to this when scanning for
  1148. 3rd party libs, such as OpenSSL.
  1149. Daniel (17 March 2004)
  1150. - Watz pointed out a few missing files in the MSVC project description file.
  1151. - Günter Knauf brought patches, code and makefiles to build curl on Novell
  1152. NetWare.
  1153. Daniel (15 March 2004)
  1154. - Lots of libcurl man pages were updated to contain references to other man
  1155. pages the recognized way so that they appear as nice hyperlinks in the HTML
  1156. versions.
  1157. - buildconf now checks the m4 version too, since autoconf requires a GNU m4
  1158. version to build proper configure scripts.
  1159. Daniel (12 March 2004)
  1160. - Added CURLOPT_POSTFIELDSIZE_LARGE, the large file version of
  1161. CURLOPT_POSTFIELDSIZE to allow POSTs larger than 2GB.
  1162. - David Byron fixed an uninitialized variable case/crash.
  1163. Daniel (10 March 2004)
  1164. - Jeff Lawson fixed the SSL connection to deal with received signals during the
  1165. connect.
  1166. - Changed the OS string for win32 to become "i386-pc-win32".
  1167. Daniel (9 March 2004)
  1168. - Changed the internals to use curl_socket_t for socket variable type. This
  1169. should enable us to build with less warnings on Windows, where SOCKET is
  1170. used which is an unsigned int, while most other platforms use a mere int.
  1171. - Modified lib/config-win32.h to build fine on MSVC again.
  1172. Version 7.11.1-pre1 (8 March 2004)
  1173. Daniel (8 March 2004)
  1174. - Minor fix to make curl CURL_VERSION_LARGEFILE is only set if curl_off_t is
  1175. larger than 4 bytes.
  1176. Daniel (4 March 2004)
  1177. - Improved PUT/POST with NTLM/Digest authentication, the so called issue 12.
  1178. - Modified the test HTTP server a lot to work with the upcoming changes for
  1179. PUT/POST with NTLM/Digest authentication (like test case 88). Added Andrés
  1180. García's win32-changes. Improved the logging.
  1181. - Fixed the file:-related progress/getinfo stuff a bit more.
  1182. Daniel (4 March 2004)
  1183. - I corrected a problem with the multi interface when following a Location:
  1184. header or when doing multiple-request authentications. A subsequent request
  1185. could erroneously re-use a previous connection that was sent with
  1186. Connection: close. Christopher R. Palmer reported.
  1187. - Andrés García patched curl to prevent warnings while compiling with mingw,
  1188. mainly because it is now possible to have both WIN32 and HAVE_CONFIG_H
  1189. defined.
  1190. - When transferring files from a file: URL, the progress meter and other
  1191. transfer metrics were not updated properly.
  1192. - David Byron provided a "version resource" file to the curl executable for
  1193. the windows builds.
  1194. Daniel (3 March 2004)
  1195. - David Byron's work on making libcurl only require winsock 1.1 on Windows
  1196. machines.
  1197. - More variable cleanups based on compiler warnings generated by Tor Arntsen's
  1198. autobuilds with MIPSPro.
  1199. - Joe Halpin helped us fix some pedantic compiler warnings on FreeBSD.
  1200. - Applied Tom Bates' patch to build on nsr-tandem-nsk.
  1201. - Dan Fandrich corrected some flaws in the configure GSS detection.
  1202. Daniel (2 March 2004)
  1203. - Fixed the libcurl code to use FORMAT_OFF_T for printf() formatting
  1204. curl_off_t types internally.
  1205. Daniel (1 March 2004)
  1206. - Added CURL_VERSION_LARGEFILE as a feature-bit in the curl_version_info()
  1207. response, that signals if this libcurl supports >2GB files. curl -V now
  1208. outputs 'Largefile' in the Features: field if this is the case. Most systems
  1209. are likely to support this.
  1210. - We offer a CURL_FORMAT_OFF_T define in the public header, which can be used
  1211. to printf() curl_off_t variables. We also modified the libcurl sources to
  1212. use this define instead of the previous %Od approach (although I've left the
  1213. O-flag functional in the code). This should also prevent compilers to warn
  1214. on the home-grown option.
  1215. - Fixed the resume-check code to test for a working resume at the end of the
  1216. headers and not at the first body-byte.
  1217. - CURLOPT_DNS_USE_GLOBAL_CACHE is now considered obsolete. Stop using it. If
  1218. you need a global DNS cache for whatever reason, use the share interface and
  1219. you'll get a global cache that works the way it should work. You can even
  1220. have any number of global caches, all at your command. This is now also
  1221. mentioned in the docs.
  1222. - Made the *printf code support the z-flag to enable size_t printf() in a
  1223. manner similar to how glibc allows it. To make printfing of this work on
  1224. platforms with 64bit size_t and 32bit ints. If there even are any! ;-)
  1225. - Christopher R. Palmer discovered that if you CURLOPT_FRESH_CONNECT and
  1226. CURLAUTH_NTLM (or CURLAUTH_ANY and libcurl then picked NTLM), libcurl would
  1227. loop without succeeding to authenticate due to the new connection that was
  1228. made for all round-trips in the authentication. Now, the FRESH_CONNECT is
  1229. remade to only matter for the first connection made with curl_easy_perform()
  1230. and all the rest that might follow due to FOLLOWLOCATION or HTTP
  1231. authentication are now ignoring that option.
  1232. - Adjusted the QUIT code slightly since it could core-dump.
  1233. - Corrected the test suite's FTP server to provide a correct size to the
  1234. 'verifiedserver' request.
  1235. Daniel (27 February 2004)
  1236. - Joe Halpin made the FTP code send QUIT on the control connection before
  1237. disconnecting the TCP connection. This is what good-behaving ftp clients
  1238. should do.
  1239. Daniel (26 February 2004)
  1240. - David Byron updated several files to make curl build fine on MSVC 6. He
  1241. also added the 'buildconf.bat' that works like the 'buildconf + configure'
  1242. combo does on unixes.
  1243. - Gisle Vanem made the memdebug stuff support calloc() as well.
  1244. - Tor Arntsen pointed out that testcurl.sh needed to remove the generated
  1245. files in order to have them re-generated in each build.
  1246. - Andy Serpa found out that the share interface did not enjoy life when not
  1247. having the lock and unlock callbacks set, even though documented to be
  1248. OK. It still is OK, and now the code won't segfault anymore!
  1249. Daniel (25 February 2004)
  1250. - Based on a patch by Greg Hewgill I modified how long long is used in the
  1251. mprintf code, as we can use a 64bit type with MSVC that is a long long
  1252. equivalent. This corrects some weird large file behaviors on windows.
  1253. - Tor Arntsen helped me work out --enable-debug to work better with different
  1254. versions of the gcc and icc compilers.
  1255. - Added CURLOPT_SHARE to the curl_easy_setopt.3 man page.
  1256. Daniel (22 February 2004)
  1257. - Applied the final pieces of Gisle Vanem's patch that brings a working name
  1258. resolve timeout to the windows versions of curl!
  1259. Daniel (21 February 2004)
  1260. - David Byron's fix to allow the speed-limit logic work even if you set
  1261. limit-rate. It does work on the expense of the rate limiter.
  1262. Daniel (20 February 2004)
  1263. - configure --enable-debug with gcc now also tries to detect the icc compiler
  1264. (which somehow gets treated as if it is a gcc) to stop using all the gcc
  1265. options with it, and we also provide -isystem options for each extra -I
  1266. option the configure script has figured out (for OpenSSL, kerberos, zlib,
  1267. Heimdal etc). This of course to prevent warnings on headers we don't have
  1268. control of.
  1269. Daniel (19 February 2004)
  1270. - Doug Porter made libcurl use the HOME environment variable before the
  1271. getpwuid results when looking for .netrc files.
  1272. - If 'configure --enable-debug' is used with gcc, it now checks which gcc
  1273. version it is and uses as picky compiler options as possible for the
  1274. particular version.
  1275. - Code that can be used in both the lib and in the curl app is now made to use
  1276. the curlx_ prefix. The first function to be available like this is the
  1277. curlx_strtoll() function. This is made to allow the app to use existing code,
  1278. but without polluting the libcurl API. Further explanations posted here:
  1279. http://curl.haxx.se/mail/lib-2004-02/0215.html
  1280. Daniel (18 February 2004)
  1281. - Fixed buildconf to not use "which" as AIX and Tru64 have what have been
  1282. referred to as "horribly broken 'which' programs".
  1283. - Made sure dns cache timeout set to -1 really means caching forever.
  1284. Daniel (17 February 2004)
  1285. - Made it possibly to build c-ares with the libcurl memdebug system to better
  1286. track memory.
  1287. Daniel (16 February 2004)
  1288. - When using ares, we now initialize the ares 'channel' in curl_easy_init()
  1289. and re-use that same handle during the entire curl handle's life-time. It
  1290. improves performance.
  1291. - Fixed a problem when displaying verbose for ipv6-enabled libcurls and
  1292. re-used connections. Problem reported and fix verified by Grigory Entin.
  1293. - Jeff Lawson fixed the version-check in the SOCKS5 code.
  1294. Daniel (15 February 2004)
  1295. - Fixed a case where a host cache entry was not flagged in-use properly when a
  1296. cached entry was used.
  1297. - Andrés García's patch that checks for winmm in the configure script was
  1298. applied.
  1299. Daniel (13 February 2004)
  1300. - Ben Greear's SO_BINDTODEVICE patch for the binding of the local end to a
  1301. specific network interface.
  1302. - Greg Hewgill found out that the variable holding 'contentlength' wasn't big
  1303. enough to hold a large file!
  1304. - Tor Arntsen fixed a 64bit-related problem in date-related code in the ftp
  1305. department, and there was another potential problem in the name resolve code
  1306. too.
  1307. Daniel (11 February 2004)
  1308. - Removed a few variables that were only set but never used, as some compilers
  1309. warn about that and we do not like compiler warnings!
  1310. - Removed the need for symlinks in the tests/data directory if curl is built
  1311. outside of the source directory and the 'make test' is used. This was done
  1312. by providing a "source dir path" to the scripts/servers.
  1313. - Now, if the configure script can't find an nroff tool or an option to nroff
  1314. to use to convert man pages with, it will completely switch off the built-in
  1315. manual.
  1316. - 'configure --disable-manual' completely disables the built-in manual from
  1317. the curl command tool.
  1318. - Andrés García fixed the configure script and a minor source edit, and now
  1319. he has managed to get msys/mingw to run configure and then build!
  1320. Daniel (9 February 2004)
  1321. - The default HTTP Accept: header was modified to the much simpler
  1322. "Accept: */*".
  1323. - P R Schaffner updated the curl-ssl spec file for RPMs.
  1324. - Dominick Meglio brought lots of documentation for the share interface's man
  1325. pages that were previously missing.
  1326. - Tor Arntsen provided a patch that makes libcurl work-around a bug in the
  1327. AIX5 implementation of getaddrinfo(). This makes the FTP PORT stuff work on
  1328. ipv6-enabled AIX builds.
  1329. - Ken Rastatter provided portability fixes for the curlgtk.c example, and now
  1330. it runs on windows with GTK as well!
  1331. Daniel (6 February 2004)
  1332. - Andrés García made the configure script find gethostbyname() fine when run
  1333. with mingw on windows.
  1334. - Modified the ldap code to use proper function pointers all over (instead of
  1335. mixed data and function pointers) to work-around the picky MIPSPro compiler
  1336. warnings.
  1337. - A custom Host: header is only considered if the request is not made by
  1338. following a location. After discussions with Tim Baker.
  1339. Daniel (5 February 2004)
  1340. - The libz part of the configure script now only set the two libz-related
  1341. define HAVE_ZLIB_H and HAVE_LIBZ if both the lib and the header is found.
  1342. If one is missing, none of the defines is set.
  1343. - Andrés García fixed the Mingw makefiles.
  1344. - Len Krause reported that curl 7.9.X could do uploading from stdin without
  1345. doing chunked encoding, which current curl cannot do even if you disable
  1346. the transfer-encoding chunked header. Now it can again, and test case 98
  1347. verifies this functionality.
  1348. - Tor Arntsen fixed a weird getaddrinfo() usage in the FTP code, preventing
  1349. the ipv6-code for PORT work on AIX 5.2. We now also provide (better) error
  1350. messages when bailing out in the that function.
  1351. - Tor Arntsen now provides AIX and IRIX (using gcc, xlc and the MIPSPro
  1352. compilers) automated build logs (http://curl.haxx.se/auto/) and we've fixed
  1353. numerous minor quirks to make less warnings appear.
  1354. Daniel (4 February 2004)
  1355. - Based on a patch by Gilad, we now use the custom timeouts when waiting for a
  1356. server to connect when using FTP PORT. Previously we always waited 10
  1357. seconds, no more no less. We now also changed the default (if no timeout is
  1358. set) to wait 60 seconds for the connect before we fail.
  1359. Daniel (3 February 2004)
  1360. - Modified to link with c-ares instead of ares.
  1361. Daniel (2 February 2004)
  1362. - Added a configure test to check for which option the (g)nroff tool wants
  1363. to extract plain text from the man pages. Tor Arntsen told us the AIX
  1364. version of GNU gnroff doesn't support -man!
  1365. - Added an undef of accept in memdebug.h to make curl build with --enable-debug
  1366. on AIX 5.2 which seems to have accept defined. Reported by Tor Arntsen.
  1367. - curl_version() now includes c-ares version info, and curl_version_info() now
  1368. returns a struct with version SECOND that also includes that info.
  1369. - We are now officially using c-ares for asynch name resolves. c-ares is the
  1370. new library, based on the existing ares but with an extended and slightly
  1371. modified API.
  1372. - Dirk improved the ares timeout code, and now we also include the ares error
  1373. string when we fail to resolve a name.
  1374. - Another tweak to make test case 91 run fine. Now we have another bit on a
  1375. connection that is set true if the connection is marked for 'retry'. That
  1376. makes the connection get closed and re-opened and the HTTP-done code must
  1377. not complain on the fact that no data was received.
  1378. - Based on Dirk Manske's patch, I modified the name resolving with ares to
  1379. feature a timeout for really slow lookups. It now defaults to 300 seconds,
  1380. but is now adjusted to the CONNECTTIMEOUT/TIMOUE timeouts if one of them
  1381. is set.
  1382. - Fixed the inclusion of ca-bundle.h to really use the one in the build dir
  1383. before the one in the source dir. Domenico Andreoli found out and reported.
  1384. - Added test case 97, a simple POST with a custom Content-Type header
  1385. replacing the original application/x-www-form-urlencoded one.
  1386. Daniel (30 January 2004)
  1387. - Added code that attempts to fix the test 91 failure. As has been figured out
  1388. by Patrick Smith, the error happens because we re-use a connection that the
  1389. server is just about to close and we even manage to send away the request
  1390. without seeing an error. On the first read attempt we get a ECONNRESET.
  1391. Starting now, we attempt to detect this and if so, we retry the request on a
  1392. fresh connection.
  1393. - I added test case 510 which is a custom program that does a POST using a
  1394. read callback, with chunked transfer-encoding.
  1395. - Adjusted one of the MPE/iX changes as it made test case 504 fail all over.
  1396. - Added --socks as a recognized option. It works just like --proxy but sets a
  1397. SOCKS5 proxy to use. SOCKS5 support has been available in libcurl for a
  1398. while, just not provided by the curl tool. This does not currently work for
  1399. IPv6-enabled libcurls.
  1400. Daniel (29 January 2004)
  1401. - Stadler Stephan pointed out that src/hugehelp.c included config.h without
  1402. checking the define if its present...
  1403. - Ken Hirsch provided patches to make curl build fine on the MPE/iX operating
  1404. system.
  1405. - Dan Fandrich compiled curl with lots of aggressively pedantic compiler
  1406. options and thus found a few minor errors and did some general cleanups to
  1407. avoid them.
  1408. - Dirk Manske fixed a flaw in ares that prevented it to use non-blocking
  1409. sockets properly.
  1410. Daniel (28 January 2004)
  1411. - Richard Bramante fixed chunked transfer-encoded "uploads" to send a final
  1412. CRLF combo properly.
  1413. Daniel (27 January 2004)
  1414. - Made the response-headers during a CONNECT request to a proxy get passed on
  1415. as regular headers, so they appear with -i/-I options and similar.
  1416. - Based on a patch by Gisle Vanem, I've made the progress meter display
  1417. properly switch to a GB-display when more than 9999MB have been transfered.
  1418. Daniel (23 January 2004)
  1419. - Gisle Vanem pointed out a curlrc parser problem/crash when an option with a
  1420. required didn't have one and was on the last line of a file.
  1421. - More Windows fixes for large files. We now build and link with
  1422. ../lib/strtoofft.c in the app code since Curl_strtoll() is not a provided
  1423. libcurl function... Perhaps we should consider a 'common' dir or similar
  1424. where we put source code used in both the lib and the client. Or perhaps
  1425. we'll just make this function available in the library...
  1426. - Vincent Bronner found out the socks5 code crashed when no username was
  1427. set.
  1428. - Vincent Bronner spotted a problem with proxy username/password when re-using
  1429. a persistent connection.
  1430. - Fixed the progress meter display for files larger than 2^31 bytes. Gisle
  1431. Vanem reported.
  1432. Daniel (22 January 2004)
  1433. - Gisle Vanem made strtoll() get used when curl is built with the mingw
  1434. compiler.
  1435. - Gisle Vanem fixed the compressed help text code to display properly.
  1436. - Removed the '#define HttpPost' from the public header file, as curl_httppost
  1437. is the proper name and it has been for quite some time now. Fixes another
  1438. name space pollution.
  1439. - Added 'curl_off_t' typedef in the public header file, to be used to provide
  1440. large file sizes to the *_LARGE options. Adjusted the code all over to use
  1441. this variable type instead of 'off_t'. This is an attempt to make the large
  1442. file support work on more platforms. The configure script now checks the
  1443. size of the curl_off_t instead of the plain off_t.
  1444. Version 7.11.0 (22 January 2004)
  1445. Daniel (21 January 2004)
  1446. - Removed the defines in the public header file with TIMECOND_ prefixes. They
  1447. have been obsolete since April 22nd 2002, and if this causes anyone any
  1448. problems now it is very easy to just add CURL_ to the names. This corrects
  1449. this name space pollution.
  1450. Daniel (19 January 2004)
  1451. - David Byron cleaned up how --trace with no option was treated, and also
  1452. arguments in a config file without a required parameter!
  1453. Daniel (16 January 2004)
  1454. - Gisle Vanem fixed a few issues where compilers warned about variables
  1455. possibly being used unassigned.
  1456. - Minor Interix build problem fixed.
  1457. Daniel (15 January 2004)
  1458. - Peter Sylvester pointed out some necessary escaping needed in the
  1459. acinclude.m4 file when automake 1.8 or later is used.
  1460. Daniel (14 January 2004)
  1461. - Vincent Bronner fixed the Curl_resolv() return code. This extends the fix
  1462. Steve Green provided on december 3...
  1463. Daniel (13 January 2004)
  1464. - Luke Call made the win32 version of the password prompting function support
  1465. backspace.
  1466. - Dan Fandrich fixed the hugehelp source file to contain both a compressed and
  1467. an uncompressed version in the distribution, so that more people easier can
  1468. build curl with the compressed version.
  1469. - Diego Casorran brought another AmigaOS build patch for native Amiga builds.
  1470. - Matt Veenstra updated the Mac OS X framework files.
  1471. - Brian R Duffy brought a section to the INSTALL file on how to build a
  1472. SSL-enabled curl using the free Borland C++ compiler. He also updated the
  1473. Borland lib/Makefile.b32.
  1474. - I fixed the test case 509 which I broke yesterday. Now the libtest are
  1475. compiled with an include path that points to the library's source dir, so
  1476. that the libtests can include files from the source tree. This was made to
  1477. make it possible to use the USE_SSLEAY define in the library test files.
  1478. Daniel (12 January 2004)
  1479. - Peter Sylvester brought code that now allows a callback to modified the URL
  1480. even when the multi interface is used, and then libcurl will simulate a
  1481. "follow location" to that new URL. Test 509 was added to test this feature.
  1482. - Extended the time we retry servers in the test script, and I also made it
  1483. retry the https and ftps servers before they are considered bad. I believe
  1484. the previous approach could turn problematic on really slow hosts.
  1485. Version 7.11.0-pre1 (12 January 2004)
  1486. Daniel (11 January 2004)
  1487. - Dominick Meglio pointed out FTPS should use default port 990 according to
  1488. IANA.
  1489. Daniel (8 January 2004)
  1490. - Fixed the SPNEGO configure check to not use -R or other non-portable options
  1491. in the LDFLAGS. Reported by Pierre in bug report #872930.
  1492. Daniel (5 January 2004)
  1493. - Dan Fandrich provided a fix on our zlib usage.
  1494. - David J Meyer's patch that introduce large file support to libcurl was
  1495. applied. New curl_easy_setopt options that accept 'off_t' arguments are:
  1496. INFILESIZE_LARGE
  1497. RESUME_FROM_LARGE
  1498. MAXFILESIZE_LARGE
  1499. Daniel (4 January 2004)
  1500. - Based on Dominick Meglio's comments, I made our private version of
  1501. gettimeofday() declared static. This would otherwise collide with the same
  1502. function in other libs (like ares for example).
  1503. - Added Dominick Meglio's description on how to build libcurl with ares
  1504. on win32.