Bertrand SIMONNET | e6cd738 | 2015-07-01 15:39:44 -0700 | [diff] [blame] | 1 | _ _ ____ _ |
| 2 | ___| | | | _ \| | |
| 3 | / __| | | | |_) | | |
| 4 | | (__| |_| | _ <| |___ |
| 5 | \___|\___/|_| \_\_____| |
| 6 | |
| 7 | Old Changelog |
| 8 | |
| 9 | Changes done to curl and libcurl from 1997 to 2010, edited manually. The most |
| 10 | recent changes are always generated into the CHANGES file straight from git. |
| 11 | |
| 12 | Kamil Dudka (17 June 2010) |
| 13 | - Improve test575 in order to not fail with threaded DNS resolver. |
| 14 | |
| 15 | Version 7.21.0 (16 June 2010) |
| 16 | |
| 17 | Daniel Stenberg (5 June 2010) |
| 18 | - Constantine Sapuntzakis fixed a case of spurious SSL connection aborts using |
| 19 | libcurl and OpenSSL. "I tracked it down to uncleared error state on the |
| 20 | OpenSSL error stack - patch attached deals with that." |
| 21 | |
| 22 | Daniel Stenberg (5 June 2010) |
| 23 | - Frank Meier added CURLINFO_PRIMARY_PORT, CURLINFO_LOCAL_IP and |
| 24 | CURLINFO_LOCAL_PORT to curl_easy_getinfo(). |
| 25 | |
| 26 | Yang Tse (4 June 2010) |
| 27 | - Enabled OpenLDAP support for cygwin builds. This support was disabled back |
| 28 | in 2008 due to incompatibilities between OpenSSL and OpenLDAP headers. |
| 29 | cygwin's OpenSSL 0.9.8l and OpenLDAP 2.3.43 versions on cygwin 1.5.25 |
| 30 | allow building an OpenLDAP enabled libcurl supporting back to Windows 95. |
| 31 | |
| 32 | Removed the non-functional CURL_LDAP_HYBRID code and references. |
| 33 | |
| 34 | Daniel Stenberg (2 June 2010) |
| 35 | - Jason McDonald posted bug report #3006786 when he found that the SFTP code |
| 36 | didn't timeout properly in several places in the code even if a timeout was |
| 37 | set properly. |
| 38 | |
| 39 | Based on his suggested patch, I wrote a different implementation that I |
| 40 | think addressed the issue better and also uses the connect timeout for the |
| 41 | initial part of the SSH/SFTP done during the "protocol connect" phase. |
| 42 | |
| 43 | (http://curl.haxx.se/bug/view.cgi?id=3006786) |
| 44 | |
| 45 | Yang Tse (2 June 2010) |
| 46 | - Added missing new libcurl files to non-configure targets. Adjusted |
| 47 | libcurl standard internal header inclusions in new files. Fixed an |
| 48 | SPNEGO related memory leak. Fixed several LDAP related compilation |
| 49 | issues, and fixed some compiler warnings. |
| 50 | |
| 51 | Daniel Stenberg (1 June 2010) |
| 52 | - Igor Novoseltsev reported a problem with the multi socket API and using |
| 53 | timeouts and timers. It boiled down to a problem with libcurl's use of |
| 54 | GetTickCount() interally to figure out the current time, while Igor's own |
| 55 | application code used another function call. |
| 56 | |
| 57 | It made his app call the socket API timeout function a bit _before_ libcurl |
| 58 | would consider the timeout to trigger, and that could easily lead to |
| 59 | timeouts or stalls in the app. It seems GetTickCount() in general often has |
| 60 | no better resolution than 16ms and switching to the alternative function |
| 61 | QueryPerformanceCounter has its share of problems: |
| 62 | http://www.virtualdub.org/blog/pivot/entry.php?id=106 |
| 63 | |
| 64 | We address this problem by simply having libcurl treat timers that already |
| 65 | has occured or will occur within 40ms subject for treatment. I'm confident |
| 66 | that there are other implementations and operating systems with similarly in |
| 67 | accurate timer functions so it makes sense to have applied generically and I |
| 68 | don't believe we sacrifice much by adding a 40ms inaccuracy on these |
| 69 | timeouts. |
| 70 | |
| 71 | Kamil Dudka (27 May 2010) |
| 72 | - added a new test for CRL support (test313) |
| 73 | |
| 74 | - Tor Arntsen changed the alternative definition of bool to use enum instead |
| 75 | of unsigned char. |
| 76 | |
| 77 | Daniel Stenberg (25 May 2010) |
| 78 | - Julien Chaffraix fixed the warning seen when compiling lib/rtmp.c: one |
| 79 | unused variables, several unused arguments and some missing #include. |
| 80 | |
| 81 | - Julien Chaffraix fixed 2 OOM errors: a missing NULL-check in |
| 82 | lib/http_negociate.c and a potential NULL dereferencing in lib/splay.c |
| 83 | |
| 84 | - Howard Chu brought a patch that makes the LDAP code much cleaner, nicer and |
| 85 | in general being a better libcurl citizen. If a new enough OpenLDAP version |
| 86 | is detect, the new and shiny lib/openldap.c code is then used instead of the |
| 87 | old cruft. |
| 88 | |
| 89 | Daniel Stenberg (21 May 2010) |
| 90 | - Eric Mertens posted bug #3003705: when we made TFTP use the correct timeout |
| 91 | option when sent to the server (fixed May 18th 2010) it became obvious that |
| 92 | libcurl used invalid timeout values (300 by default while the RFC allows |
| 93 | nothing above 255). While of course it is obvious that as TFTP has worked |
| 94 | thus far without being able to set timeout at all, just removing the setting |
| 95 | wouldn't make any difference in behavior. I decided to still keep it (but |
| 96 | fix the problem) as it now actually allows for easier (future) customization |
| 97 | of the timeout. |
| 98 | |
| 99 | (http://curl.haxx.se/bug/view.cgi?id=3003705) |
| 100 | |
| 101 | - Douglas Kilpatrick filed bug report #3004787 and pointed out that the TFTP |
| 102 | code didn't handle block id wraps correctly. His suggested fix inspired the |
| 103 | fix I committed. |
| 104 | |
| 105 | (http://curl.haxx.se/bug/view.cgi?id=3004787) |
| 106 | |
| 107 | Daniel Stenberg (20 May 2010) |
| 108 | - Tanguy Fautre brought a fix to allow curl to build with Microsoft VC10. |
| 109 | |
| 110 | Daniel Stenberg (18 May 2010) |
| 111 | - Eric Mertens posted bug report #3003005 pointing out that the libcurl TFTP |
| 112 | code was not sending the timeout option properly to the server, and |
| 113 | suggested a fix. |
| 114 | |
| 115 | (http://curl.haxx.se/bug/view.cgi?id=3003005) |
| 116 | |
| 117 | Kamil Dudka (16 May 2010) |
| 118 | - Pavel Raiskup introduced a new option CURLOPT_FNMATCH_DATA in order to pass |
| 119 | a custom data pointer to the callback specified by CURLOPT_FNMATCH_FUNCTION. |
| 120 | |
| 121 | Daniel Stenberg (14 May 2010) |
| 122 | - John-Mark Bell filed bug #3000052 that identified a problem (with an |
| 123 | associated patch) with the OpenSSL handshake state machine when the multi |
| 124 | interface is used: |
| 125 | |
| 126 | Performing an https request using a curl multi handle and using select or |
| 127 | epoll to wait for events results in a hang. It appears that the cause is the |
| 128 | fix for bug #2958179, which makes ossl_connect_common unconditionally return |
| 129 | from the step 2 loop when fetching from a multi handle. |
| 130 | |
| 131 | When ossl_connect_step2 has completed, it updates connssl->connecting_state |
| 132 | to ssl_connect_3. ossl_connect_common will then return to the caller, as a |
| 133 | multi handle is in use. Eventually, the client code will call |
| 134 | curl_multi_fdset to obtain an updated fdset to select or epoll on. For https |
| 135 | requests, curl_multi_fdset will cause https_getsock to be called. |
| 136 | https_getsock will only return a socket handle if the connecting_state is |
| 137 | ssl_connect_2_reading or ssl_connect_2_writing. Therefore, the client will |
| 138 | never obtain a valid fdset, and thus not drive the multi handle, resulting |
| 139 | in a hang. |
| 140 | |
| 141 | (http://curl.haxx.se/bug/view.cgi?id=3000052) |
| 142 | |
| 143 | - Sebastian V reported bug #3000056 identifying a problem with redirect |
| 144 | following. It showed that when curl followed redirects it didn't properly |
| 145 | ignore the response body of the 30X response if that response was using |
| 146 | compressed Content-Encoding! |
| 147 | |
| 148 | (http://curl.haxx.se/bug/view.cgi?id=3000056) |
| 149 | |
| 150 | Daniel Stenberg (12 May 2010) |
| 151 | - Howard Chu brought support for RTMP. This is powered by the underlying |
| 152 | librtmp library. It supports a range of variations and "sub-protocols" |
| 153 | within the RTMP family. |
| 154 | |
| 155 | - Pavel Raiskup brought support for FTP directory wildcard matching to allow |
| 156 | selective downloading. To provide that, a set of new options were added: |
| 157 | |
| 158 | CURLOPT_WILDCARDMATCH |
| 159 | CURLOPT_CHUNK_BGN_FUNCTION |
| 160 | CURLOPT_CHUNK_END_FUNCTION |
| 161 | CURLOPT_CHUNK_DATA |
| 162 | CURLOPT_FNMATCH_FUNCTION |
| 163 | |
| 164 | There were also a set of new tests added (574 - 577) to verify this. |
| 165 | |
| 166 | Kamil Dudka (11 May 2010) |
| 167 | - CRL support in libcurl-NSS has been completely broken. Now it works. Original |
| 168 | bug report: https://bugzilla.redhat.com/581926 |
| 169 | |
| 170 | Daniel Stenberg (7 May 2010) |
| 171 | - Dirk Manske reported a regression. When connecting with the multi interface, |
| 172 | there were situations where libcurl wouldn't store connect time correctly as |
| 173 | it used to (and is documented to) do. |
| 174 | |
| 175 | Using his fine sample program we could repeat it, and I wrote up test case |
| 176 | 573 using that code. The problem does not easily show itself using the local |
| 177 | test suite though. |
| 178 | |
| 179 | The fix, also as suggested by Dirk, is a bit on the ugly side as it adds yet |
| 180 | another call to Curl_verboseconnect() and setting the TIMER_CONNECT time. |
| 181 | That situation is subject for some closer inspection in the future. |
| 182 | |
| 183 | - Howard Chu split the I/O handling functions into private handlers. |
| 184 | |
| 185 | Howard Chu brought the bulk work of this patch that properly moves out the |
| 186 | sending and recving of data to the parts of the code that are properly |
| 187 | responsible for the various ways of doing so. |
| 188 | |
| 189 | Daniel Stenberg assisted with polishing a few bits and fixed some minor |
| 190 | flaws in the original patch. |
| 191 | |
| 192 | Another upside of this patch is that we now abuse CURLcodes less with the |
| 193 | "magic" -1 return codes and instead use CURLE_AGAIN more consistently. |
| 194 | |
| 195 | Daniel Stenberg (5 May 2010) |
| 196 | - Hoi-Ho Chan introduced support for using the PolarSSL library. You control |
| 197 | this with the new configure option --with-polarssl. |
| 198 | |
| 199 | Daniel Stenberg (29 Apr 2010) |
| 200 | - Ben Greear made telnet a lot better/easier to use by an application: |
| 201 | |
| 202 | The main change is to allow input from user-specified methods, when they are |
| 203 | specified with CURLOPT_READFUNCTION. All calls to fflush(stdout) in |
| 204 | telnet.c were removed, which makes using 'curl telnet://foo.com' painful |
| 205 | since prompts and other data are not always returned to the user promptly. |
| 206 | Use 'curl --no-buffer telnet://foo.com' instead. In general, the user |
| 207 | should have their CURLOPT_WRITEFUNCTION do a fflush for interactive use. |
| 208 | |
| 209 | Also fix assumption that reading from stdin never returns < 0. |
| 210 | Old code could crash in that case. |
| 211 | |
| 212 | Call progress functions in telnet main loop. |
| 213 | |
| 214 | Daniel Stenberg (26 Apr 2010) |
| 215 | - Make use of the libssh2_init/exit functions that libssh2 added in version |
| 216 | 1.2.5. Using them will improve how libcurl works in threaded situations when |
| 217 | SCP and SFTP are transfered. |
| 218 | |
| 219 | Daniel Stenberg (25 Apr 2010) |
| 220 | - Based on work by Kamil Dudka, I've introduced the new configure option |
| 221 | --enable-threaded-resolver. When used, the configure script will check for |
| 222 | pthreads and if around, it will build libcurl to use pthreads to do name |
| 223 | resolving in a threaded manner. Note that this is just a fix to offer an |
| 224 | option that can enable the code that already included. The threader resolver |
| 225 | code was mostly added on Jan 26 2010. |
| 226 | |
| 227 | Daniel Stenberg (24 Apr 2010) |
| 228 | - Alex Bligh introduced the --proto and -proto-redir options that limit what |
| 229 | protocols curl accepts for the requests and when following redirects. |
| 230 | |
| 231 | Kamil Dudka (24 Apr 2010) |
| 232 | - Fixed test536 in order to not fail with threaded DNS resolver and tweaked |
| 233 | comments in certain examples using curl_multi_fdset(). |
| 234 | |
| 235 | - Fixed SSL handshake timeout underflow in libcurl-NSS, which caused test405 |
| 236 | to hang on a slow machine. |
| 237 | |
| 238 | Daniel Stenberg (21 Apr 2010) |
| 239 | - The -O option caused curl to crash on windows and DOS due to the tool |
| 240 | writing out of boundary memory. |
| 241 | |
| 242 | Yang Tse (20 Apr 2010) |
| 243 | - Ruslan Gazizov detected that MSVC makefiles were using wsock32.lib instead |
| 244 | of ws2_32.lib, this generated linking issues on MSVC IPv6 enabled builds |
| 245 | that were done using those makefiles. |
| 246 | |
| 247 | Daniel Stenberg (19 Apr 2010) |
| 248 | - -J/--remote-header-name didn't strip trailing carriage returns or linefeeds |
| 249 | properly, so they could be used in the file name. |
| 250 | |
| 251 | Daniel Stenberg (16 Apr 2010) |
| 252 | - Jerome Vouillon made the GnuTLS SSL handshake phase non-blocking. |
| 253 | |
| 254 | - The recent overhaul of the SSL recv function made the GnuTLS specific code |
| 255 | treat a zero returned from gnutls_record_recv() as an error, and this caused |
| 256 | our HTTPS test cases to fail. We leave it to upper layer code to detect if |
| 257 | an EOF is a problem or not. |
| 258 | |
| 259 | - I reverted the resolver fix from yesterday and instead removed all uses of |
| 260 | AI_CANONNAME all over libcurl and made the only user of that info (krb5.c) |
| 261 | use the host name from the URL instead. No reverse resolving is a good |
| 262 | thing. |
| 263 | |
| 264 | - Paul Howarth made configure properly detect GSS "on ancient Linux distros" |
| 265 | by editing in which order we use headers to detect GSS. |
| 266 | |
| 267 | Daniel Stenberg (15 Apr 2010) |
| 268 | - Rainer Canavan filed bug report #2987196 that identified libcurl doing |
| 269 | unnecesary reverse name lookups in many cases when built to use IPv4 and |
| 270 | getaddrinfo(). The logic for IPv6 is now used for IPv4 too. |
| 271 | |
| 272 | (http://curl.haxx.se/bug/view.cgi?id=2963679) |
| 273 | |
| 274 | Version 7.20.1 (14 April 2010) |
| 275 | |
| 276 | Daniel Stenberg (9 Apr 2010) |
| 277 | - Prefixing the FTP quote commands with an asterisk really only worked for the |
| 278 | postquote actions. This is now fixed and test case 227 has been extended to |
| 279 | verify. |
| 280 | |
| 281 | Kamil Dudka (4 Apr 2010) |
| 282 | - Eliminated a race condition in Curl_resolv_timeout(). |
| 283 | |
| 284 | - Refactorized interface of Curl_ssl_recv()/Curl_ssl_send(). |
| 285 | |
| 286 | - libcurl-NSS now provides more accurate messages and error codes in case of |
| 287 | client certificate problem. Either during connection, or transfer phase. |
| 288 | |
| 289 | Daniel Stenberg (1 Apr 2010) |
| 290 | - Matt Wixson found and fixed a bug in the SCP/SFTP area where the code |
| 291 | treated a 0 return code from libssh2 to be the same as EAGAIN while in |
| 292 | reality it isn't. The problem caused a hang in SFTP transfers from a |
| 293 | MessageWay server. |
| 294 | |
| 295 | Daniel Stenberg (28 Mar 2010) |
| 296 | - Ben Greear: If you pass a URL to pop3 that does not contain a message ID as |
| 297 | part of the URL, it would previously ask for 'INBOX' which just causes the |
| 298 | pop3 server to return an error. |
| 299 | |
| 300 | Now libcurl treats en empty message ID as a request for LIST (list of pop3 |
| 301 | message IDs). User's code could then parse this and download individual |
| 302 | messages as desired. |
| 303 | |
| 304 | Daniel Stenberg (27 Mar 2010) |
| 305 | - Ben Greear brought a patch that from now on allows all protocols to specify |
| 306 | name and user within the URL, in the same manner HTTP and FTP have been |
| 307 | allowed to in the past - although far from all of the libcurl supported |
| 308 | protocls actually have that feature in their URL definition spec. |
| 309 | |
| 310 | Daniel Stenberg (26 Mar 2010) |
| 311 | - Ben Greear brought code that makes the rate limiting code for the easy |
| 312 | interface a bit smoother as it introduces sub-second sleeps during it and it |
| 313 | also takes the buffer sizes into account. |
| 314 | |
| 315 | Daniel Stenberg (24 Mar 2010) |
| 316 | - Bob Richmond: There's an annoying situation where libcurl will read new HTTP |
| 317 | response data from a socket, then check if it's a timeout if one is set. If |
| 318 | the last packet received constitutes the end of the response body, libcurl |
| 319 | still treats it as a timeout condition and reports a message like: |
| 320 | |
| 321 | "Operation timed out after 3000 milliseconds with 876 out of 876 bytes |
| 322 | received" |
| 323 | |
| 324 | It should only a timeout if the timer lapsed and we DIDN'T receive the end |
| 325 | of the response body yet. |
| 326 | |
| 327 | - Christopher Conroy fixed a problem with RTSP and GET_PARAMETER reported |
| 328 | to us by Massimo Callegari. There's a new test case 572 that verifies this |
| 329 | now. |
| 330 | |
| 331 | - The 'ares' subtree has been removed from the source repository. It was |
| 332 | always a separate project that sort of piggybacked on the curl project since |
| 333 | the dawn of times and now the time has come for it to go stand on its own |
| 334 | legs and continue living its own life. All details on c-ares and its new |
| 335 | source code repository is found at http://c-ares.haxx.se/ |
| 336 | |
| 337 | Daniel Stenberg (23 Mar 2010) |
| 338 | - Kenny To filed the bug report #2963679 with patch to fix a problem he |
| 339 | experienced with doing multi interface HTTP POST over a proxy using |
| 340 | PROXYTUNNEL. He found a case where it would connect fine but bits.tcpconnect |
| 341 | was not set correct so libcurl didn't work properly. |
| 342 | |
| 343 | (http://curl.haxx.se/bug/view.cgi?id=2963679) |
| 344 | |
| 345 | - Akos Pasztory filed debian bug report #572276 |
| 346 | http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=572276 mentioning a problem |
| 347 | with a resource that returns chunked-encoded _and_ with a Content-Length |
| 348 | and libcurl failed to properly ignore the latter information. |
| 349 | |
| 350 | - Hauke Duden provided an example program that made the multi interface crash. |
| 351 | His example simply used the multi interface and did first one FTP transfer |
| 352 | and after completion it used a second easy handle and did another FTP |
| 353 | transfer on the same FTP server. |
| 354 | |
| 355 | This triggered a bug in the "delayed easy handle kill" system that curl |
| 356 | uses: when an FTP connection is left alive it must keep an easy handle |
| 357 | around internally - only for the purpose of having an easy handle when it |
| 358 | later disconnects it. The code assumed that when the easy handle was removed |
| 359 | and an internal reference was made, that version could be killed later on |
| 360 | when a new easy handle came using the same connection. This was wrong as |
| 361 | Hauke's example showed that the removed handle wasn't killed for real until |
| 362 | later. This caused a double close attempt => segfault. |
| 363 | |
| 364 | Daniel Stenberg (22 Mar 2010) |
| 365 | - Thomas Lopatic fixed the alarm()-based DNS timeout: |
| 366 | |
| 367 | Looking at the code of Curl_resolv_timeout() in hostip.c, I think that in |
| 368 | case of a timeout, the signal handler for SIGALRM never gets removed. I |
| 369 | think that in my case it gets executed at some point later on when execution |
| 370 | has long left Curl_resolv_timeout() or even the cURL library. |
| 371 | |
| 372 | The code that is jumped to with siglongjmp() simply sets the error message |
| 373 | to "name lookup timed out" and then returns with CURLRESOLV_ERROR. I guess |
| 374 | that instead of simply returning without cleaning up, the code should have a |
| 375 | goto that jumps to the spot right after the call to Curl_resolv(). |
| 376 | |
| 377 | Kamil Dudka (22 Mar 2010) |
| 378 | - Douglas Steinwand contributed a patch fixing insufficient initialization in |
| 379 | Curl_clone_ssl_config() |
| 380 | |
| 381 | Daniel Stenberg (21 Mar 2010) |
| 382 | - Ben Greear improved TFTP: the error code returning and the treatment |
| 383 | of TSIZE == 0 when uploading. |
| 384 | |
| 385 | - We've switched from CVS to git. See http://curl.haxx.se/source.html |
| 386 | |
| 387 | Kamil Dudka (19 Mar 2010) |
| 388 | - Improved Curl_read() to not ignore the error returned from Curl_ssl_recv(). |
| 389 | |
| 390 | Daniel Stenberg (15 Mar 2010) |
| 391 | - Constantine Sapuntzakis brought a patch: |
| 392 | |
| 393 | The problem mentioned on Dec 10 2009 |
| 394 | (http://curl.haxx.se/bug/view.cgi?id=2905220) was only partially fixed. |
| 395 | Partially because an easy handle can be associated with many connections in |
| 396 | the cache (e.g. if there is a redirect during the lifetime of the easy |
| 397 | handle). The previous patch only cleaned up the first one. The new fix now |
| 398 | removes the easy handle from all connections, not just the first one. |
| 399 | |
| 400 | Daniel Stenberg (6 Mar 2010) |
| 401 | - Ben Greear brought a patch that fixed the rate limiting logic for TFTP when |
| 402 | the easy interface was used. |
| 403 | |
| 404 | Daniel Stenberg (5 Mar 2010) |
| 405 | - Daniel Johnson provided fixes for building curl with the clang compiler. |
| 406 | |
| 407 | Yang Tse (5 Mar 2010) |
| 408 | - Constantine Sapuntzakis detected and fixed a double free in builds done |
| 409 | with threaded resolver enabled (Windows default configuration) that would |
| 410 | get triggered when a curl handle is closed while doing DNS resolution. |
| 411 | |
| 412 | Daniel Stenberg (2 Mar 2010) |
| 413 | - [Daniel Johnson] I've been trying to build libcurl with clang on Darwin and |
| 414 | ran into some issues with the GSSAPI tests in configure.ac. The tests first |
| 415 | try to determine the include dirs and libs and set CPPFLAGS and LIBS |
| 416 | accordingly. It then checks for the headers and finally sets LIBS a second |
| 417 | time, causing the libs to be included twice. The first setting of LIBS seems |
| 418 | redundant and should be left out, since the first part is otherwise just |
| 419 | about finding headers. |
| 420 | |
| 421 | My second issue is that 'krb5-config --libs gssapi' on Darwin is less than |
| 422 | useless and returns junk that, while it happens to work with gcc, causes |
| 423 | clang to choke. For example, --libs returns $CFLAGS along with the libs, |
| 424 | which is really retarded. Simply setting 'LIBS="$LIBS -lgssapi_krb5 |
| 425 | -lresolv"' on Darwin is sufficient. |
| 426 | |
| 427 | - Based on patch provided by Jacob Moshenko, the transfer logic now properly |
| 428 | makes sure that when using sub-second timeouts, there's no final bad 1000ms |
| 429 | wait. Previously, a sub-second timeout would often make the elapsed time end |
| 430 | up the time rounded up to the nearest second (e.g. 1s for 200ms timeout) |
| 431 | |
| 432 | - Andrei Benea filed bug report #2956698 and pointed out that the |
| 433 | CURLOPT_CERTINFO feature leaked memory due to a missing OpenSSL function |
| 434 | call. He provided the patch to fix it too. |
| 435 | |
| 436 | http://curl.haxx.se/bug/view.cgi?id=2956698 |
| 437 | |
| 438 | - Markus Duft pointed out in bug #2961796 that even though Interix has a |
| 439 | poll() function it doesn't quite work the way we want it so we must disable |
| 440 | it, and he also provided a patch for it. |
| 441 | |
| 442 | http://curl.haxx.se/bug/view.cgi?id=2961796 |
| 443 | |
| 444 | - Made the pingpong timeout code properly deal with the response timeout AND |
| 445 | the global timeout if set. Also, as was reported in the bug report #2956437 |
| 446 | by Ryan Chan, the time stamp to use as basis for the per command timeout was |
| 447 | not set properly in the DONE phase for FTP (and not for SMTP) so I fixed |
| 448 | that just now. This was a regression compared to 7.19.7 due to the |
| 449 | conversion of FTP code over to the generic pingpong concepts. |
| 450 | |
| 451 | http://curl.haxx.se/bug/view.cgi?id=2956437 |
| 452 | |
| 453 | Daniel Stenberg (1 Mar 2010) |
| 454 | - Ben Greear provided an update for TFTP that fixes upload. |
| 455 | |
| 456 | - Wesley Miaw reported bug #2958179 which identified a case of looping during |
| 457 | OpenSSL based SSL handshaking even though the multi interface was used and |
| 458 | there was no good reason for it. |
| 459 | |
| 460 | http://curl.haxx.se/bug/view.cgi?id=2958179 |
| 461 | |
| 462 | Daniel Stenberg (26 Feb 2010) |
| 463 | - Pat Ray in bug #2958474 pointed out an off-by-one case when receiving a |
| 464 | chunked-encoding trailer. |
| 465 | |
| 466 | http://curl.haxx.se/bug/view.cgi?id=2958474 |
| 467 | |
| 468 | Daniel Fandrich (25 Feb 2010) |
| 469 | - Fixed a couple of out of memory leaks and a segfault in the SMTP & IMAP code. |
| 470 | |
| 471 | Yang Tse (25 Feb 2010) |
| 472 | - I fixed bug report #2958074 indicating |
| 473 | (http://curl.haxx.se/bug/view.cgi?id=2958074) that curl on Windows with |
| 474 | option --trace-time did not use local time when timestamping trace lines. |
| 475 | This could also happen on other systems depending on time souurce. |
| 476 | |
| 477 | Patrick Monnerat (22 Feb 2010) |
| 478 | - Proper handling of STARTTLS on SMTP, taking CURLUSESSL_TRY into account. |
| 479 | - SMTP falls back to RFC821 HELO when EHLO fails (and SSL is not required). |
| 480 | - Use of true local host name (i.e.: via gethostname()) when available, as |
| 481 | default argument to SMTP HELO/EHLO. |
| 482 | - Test case 804 for HELO fallback. |
| 483 | |
| 484 | Daniel Stenberg (20 Feb 2010) |
| 485 | - Fixed the SMTP compliance by making sure RCPT TO addresses are specified |
| 486 | properly in angle brackets. Recipients provided with CURLOPT_MAIL_RCPT now |
| 487 | get angle bracket wrapping automatically by libcurl unless the recipient |
| 488 | starts with an angle bracket as then the app is assumed to deal with that |
| 489 | properly on its own. |
| 490 | |
| 491 | - I made the SMTP code expect a 250 response back from the server after the |
| 492 | full DATA has been sent, and I modified the test SMTP server to also send |
| 493 | that response. As usual, the DONE operation that is made after a completed |
| 494 | transfer is still not doable in a non-blocking way so this waiting for 250 |
| 495 | is unfortunately made blockingly. |
| 496 | |
| 497 | Yang Tse (14 Feb 2010) |
| 498 | - Overhauled test suite getpart() function. Fixing potential out of bounds |
| 499 | stack and memory overwrites triggered with huge test case definitions. |
| 500 | |
| 501 | Daniel Stenberg (13 Feb 2010) |
| 502 | - Martin Hager reported and fixed a problem with a missing quote in libcurl.m4 |
| 503 | |
| 504 | (http://curl.haxx.se/bug/view.cgi?id=2951319) |
| 505 | |
| 506 | - Tom Donovan fixed the CURL_FORMAT_* defines when building with cmake. |
| 507 | |
| 508 | (http://curl.haxx.se/bug/view.cgi?id=2951269) |
| 509 | |
| 510 | Daniel Stenberg (12 Feb 2010) |
| 511 | - Jack Zhang reported a problem with SMTP: we wrongly used multiple addresses |
| 512 | in the same RCPT TO line, when they should be sent in separate single |
| 513 | commands. I updated test case 802 to verify this. |
| 514 | |
| 515 | - I also fixed a bad use of my_setopt_str() of CURLOPT_MAIL_RCPT in the curl |
| 516 | tool which made it try to output it as string for the --libcurl feature |
| 517 | which could lead to crashes. |
| 518 | |
| 519 | Yang Tse (11 Feb 2010) |
| 520 | - Steven M. Schweda fixed VMS builder bad behavior when used in a batch job, |
| 521 | removed obsolete batch_compile.com and defines.com and updated VMS readme. |
| 522 | |
| 523 | Version 7.20.0 (9 February 2010) |
| 524 | |
| 525 | Daniel Stenberg (9 Feb 2010) |
| 526 | - When downloading compressed content over HTTP and the app asked libcurl to |
| 527 | automatically uncompress it with the CURLOPT_ENCODING option, libcurl could |
| 528 | wrongly provide the callback with more data than the maximum documented |
| 529 | amount. An application could thus get tricked into badness if the maximum |
| 530 | limit was trusted to be enforced by libcurl itself (as it is documented). |
| 531 | |
| 532 | This is further detailed and explained in the libcurl security advisory |
| 533 | 20100209 at |
| 534 | |
| 535 | http://curl.haxx.se/docs/adv_20100209.html |
| 536 | |
| 537 | Daniel Fandrich (3 Feb 2010) |
| 538 | - Changed the Watcom makefiles to make them easier to keep in sync with |
| 539 | Makefile.inc since that can't be included directly. |
| 540 | |
| 541 | Yang Tse (2 Feb 2010) |
| 542 | - Symbol CURL_FORMAT_OFF_T now obsoleted, will be removed in a future release, |
| 543 | symbol will not be available when building with CURL_NO_OLDIES defined. Use |
| 544 | of CURL_FORMAT_CURL_OFF_T is preferred since 7.19.0 |
| 545 | |
| 546 | Daniel Stenberg (1 Feb 2010) |
| 547 | - Using the multi_socket API, it turns out at times it seemed to "forget" |
| 548 | connections (which caused a hang). It turned out to be an existing (7.19.7) |
| 549 | bug in libcurl (that's been around for a long time) and it happened like |
| 550 | this: |
| 551 | |
| 552 | The app calls curl_multi_add_handle() to add a new easy handle, libcurl will |
| 553 | then set it to timeout in 1 millisecond so libcurl will tell the app about |
| 554 | it. |
| 555 | |
| 556 | The app's timeout fires off that there's a timeout, the app calls libcurl as |
| 557 | we so often document it: |
| 558 | |
| 559 | do { |
| 560 | res = curl_multi_socket_action(... TIMEOUT ...); |
| 561 | } while(CURLM_CALL_MULTI_PERFORM == res); |
| 562 | |
| 563 | And this is the problem number one: |
| 564 | |
| 565 | When curl_multi_socket_action() is called with no specific handle, but only |
| 566 | a timeout-action, it will *only* perform actions within libcurl that are |
| 567 | marked to run at this time. In this case, the request would go from INIT to |
| 568 | CONNECT and return CURLM_CALL_MULTI_PERFORM. When the app then calls libcurl |
| 569 | again, there's no timer set for this handle so it remains in the CONNECT |
| 570 | state. The CONNECT state is a transitional state in libcurl so it reports no |
| 571 | sockets there, and thus libcurl never tells the app anything more about that |
| 572 | easy handle/connection. |
| 573 | |
| 574 | libcurl _does_ set a 1ms timeout for the handle at the end of |
| 575 | multi_runsingle() if it returns CURLM_CALL_MULTI_PERFORM, but since the loop |
| 576 | is instant the new job is not ready to run at that point (and there's no |
| 577 | code that makes libcurl call the app to update the timout for this new |
| 578 | timeout). It will simply rely on that some other timeout will trigger later |
| 579 | on or that something else will update the timeout callback. This makes the |
| 580 | bug fairly hard to repeat. |
| 581 | |
| 582 | The fix made to adress this issue: |
| 583 | |
| 584 | We introduce a loop in lib/multi.c around all calls to multi_runsingle() and |
| 585 | simply check for CURLM_CALL_MULTI_PERFORM internally. This has the added |
| 586 | benefit that this goes in line with my long-term wishes to get rid of the |
| 587 | CURLM_CALL_MULTI_PERFORM all together from the public API. |
| 588 | |
| 589 | The downside of this fix, is that the counter we return in 'running_handles' |
| 590 | in several of our public functions then gets a slightly new and possibly |
| 591 | confusing behavior during times: |
| 592 | |
| 593 | If an app adds a handle that fails to connect (very quickly) it may just |
| 594 | as well never appear as a 'running_handle' with this fix. Previously it |
| 595 | would first bump the counter only to get it decreased again at next call. |
| 596 | Even I have used that change in handle counter to signal "end of a |
| 597 | transfer". The only *good* way to find the end of a individual transfer |
| 598 | is calling curl_multi_info_read() to see if it returns one. |
| 599 | |
| 600 | Of course, if the app previously did the looping before it checked the |
| 601 | counter, it really shouldn't be any new effect. |
| 602 | |
| 603 | Yang Tse (26 Jan 2010) |
| 604 | - Constantine Sapuntzakis' and Joshua Kwan's work done in the last four months |
| 605 | relative to the asynchronous DNS lookups, along with with some integration |
| 606 | adjustments I have done are finally committed to CVS. |
| 607 | |
| 608 | Currently these enhancements will benefit builds done using c-ares on any |
| 609 | platform as well as Windows builds using the default threaded resolver. |
| 610 | |
| 611 | This release does not make generally available POSIX threaded DNS lookups |
| 612 | yet. There is no configure option to enable this feature yet. It is possible |
| 613 | to experimantally try this feature running configure with compiler flags that |
| 614 | make simultaneous definition of preprocessor symbols USE_THREADS_POSIX and |
| 615 | HAVE_PTHREAD_H, as well as whatever reentrancy compiler flags and linker ones |
| 616 | are required to link and properly use pthread_* functions on each platform. |
| 617 | |
| 618 | Daniel Stenberg (26 Jan 2010) |
| 619 | - Mike Crowe made libcurl return CURLE_COULDNT_RESOLVE_PROXY when it is the |
| 620 | proxy that cannot be resolved when using c-ares. This matches the behaviour |
| 621 | when not using c-ares. |
| 622 | |
| 623 | Björn Stenberg (23 Jan 2010) |
| 624 | - Added a new flag: -J/--remote-header-name. This option tells the |
| 625 | -O/--remote-name option to use the server-specified Content-Disposition |
| 626 | filename instead of extracting a filename from the URL. |
| 627 | |
| 628 | Daniel Stenberg (21 Jan 2010) |
| 629 | - Chris Conroy brought support for RTSP transfers, and with it comes 8(!) new |
| 630 | libcurl options for controlling what to get and how to receive posssibly |
| 631 | interleaved RTP data. |
| 632 | |
| 633 | Daniel Stenberg (20 Jan 2010) |
| 634 | - As was pointed out on the http-state mailing list, the order of cookies in a |
| 635 | HTTP Cookie: header _needs_ to be sorted on the path length in the cases |
| 636 | where two cookies using the same name are set more than once using |
| 637 | (overlapping) paths. Realizing this, identically named cookies must be |
| 638 | sorted correctly. But detecting only identically named cookies and take care |
| 639 | of them individually is harder than just to blindly and unconditionally sort |
| 640 | all cookies based on their path lengths. All major browsers also already do |
| 641 | this, so this makes our behavior one step closer to them in the cookie area. |
| 642 | |
| 643 | Test case 8 was the only one that broke due to this change and I updated it |
| 644 | accordingly. |
| 645 | |
| 646 | Daniel Stenberg (19 Jan 2010) |
| 647 | - David McCreedy brought a fix and a new test case (129) to make libcurl work |
| 648 | again when downloading files over FTP using ASCII and it turns out that the |
| 649 | final size of the file is not the same as the initial size the server |
| 650 | reported. This is very common since servers don't take the newline |
| 651 | conversions into account. |
| 652 | |
| 653 | Kamil Dudka (14 Jan 2010) |
| 654 | - Suppressed side effect of OpenSSL configure checks, which prevented NSS from |
| 655 | being properly detected under certain circumstances. It had been caused by |
| 656 | strange behavior of pkg-config when handling PKG_CONFIG_LIBDIR. pkg-config |
| 657 | distinguishes among empty and non-existent environment variable in that case. |
| 658 | |
| 659 | Daniel Stenberg (12 Jan 2010) |
| 660 | - Gil Weber reported a peculiar flaw with the multi interface when doing SFTP |
| 661 | transfers: curl_multi_fdset() would return -1 and not set and file |
| 662 | descriptors several times during a transfer of a single file. It turned out |
| 663 | to be due to two different flaws now fixed. Gil's excellent recipe helped me |
| 664 | nail this. |
| 665 | |
| 666 | Daniel Stenberg (11 Jan 2010) |
| 667 | - Made sure that the progress callback is repeatedly called at a regular |
| 668 | interval even during very slow connects. |
| 669 | |
| 670 | - The tests/runtests.pl script now checks to see if the test case that runs is |
| 671 | present in the tests/data/Makefile.am and outputs a notice message on the |
| 672 | screen if not. Each test file has to be included in that Makefile.am to get |
| 673 | included in release archives and forgetting to add files there is a common |
| 674 | mistake. This is an attempt to make it harder to forget. |
| 675 | |
| 676 | Daniel Stenberg (9 Jan 2010) |
| 677 | - Johan van Selst found and fixed a OpenSSL session ref count leak: |
| 678 | |
| 679 | ossl_connect_step3() increments an SSL session handle reference counter on |
| 680 | each call. When sessions are re-used this reference counter may be |
| 681 | incremented many times, but it will be decremented only once when done (by |
| 682 | Curl_ossl_session_free()); and the internal OpenSSL data will not be freed |
| 683 | if this reference count remains positive. When a session is re-used the |
| 684 | reference counter should be corrected by explicitly calling |
| 685 | SSL_SESSION_free() after each consecutive SSL_get1_session() to avoid |
| 686 | introducing a memory leak. |
| 687 | |
| 688 | (http://curl.haxx.se/bug/view.cgi?id=2926284) |
| 689 | |
| 690 | Daniel Stenberg (7 Jan 2010) |
| 691 | - Make sure the progress callback is called repeatedly even during very slow |
| 692 | name resolves when c-ares is used for resolving. |
| 693 | |
| 694 | Claes Jakobsson (6 Jan 2010) |
| 695 | - Julien Chaffraix fixed so that the fragment part in an URL is not sent |
| 696 | to the server anymore. |
| 697 | |
| 698 | Kamil Dudka (3 Jan 2010) |
| 699 | - Julien Chaffraix eliminated a duplicated initialization in singlesocket(). |
| 700 | |
| 701 | Daniel Stenberg (2 Jan 2010) |
| 702 | - Make curl support --ssl and --ssl-reqd instead of the previous FTP-specific |
| 703 | versions --ftp-ssl and --ftp-ssl-reqd as these options are now used to |
| 704 | control SSL/TLS for IMAP, POP3 and SMTP as well in addition to FTP. The old |
| 705 | option names are still working but the new ones are the ones listed and |
| 706 | documented. |
| 707 | |
| 708 | Daniel Stenberg (1 Jan 2010) |
| 709 | - Ingmar Runge enhanced libcurl's FTP engine to support the PRET command. This |
| 710 | command is a special "hack" used by the drftpd server, but even though it is |
| 711 | a custom extension I've deemed it fine to add to libcurl since this server |
| 712 | seems to survive and people keep using it and want libcurl to support |
| 713 | it. The new libcurl option is named CURLOPT_FTP_USE_PRET, and it is also |
| 714 | usable from the curl tool with --ftp-pret. Using this option on a server |
| 715 | that doesn't support this command will make libcurl fail. |
| 716 | |
| 717 | I added test cases 1107 and 1108 to verify the functionality. |
| 718 | |
| 719 | The PRET command is documented at |
| 720 | http://www.drftpd.org/index.php/Distributed_PASV |
| 721 | |
| 722 | Yang Tse (30 Dec 2009) |
| 723 | - Steven M. Schweda improved VMS build system, and Craig A. Berry helped |
| 724 | with the patch and testing. |
| 725 | |
| 726 | Daniel Stenberg (26 Dec 2009) |
| 727 | - Renato Botelho and Peter Pentchev brought a patch that makes the libcurl |
| 728 | headers work correctly even on FreeBSD systems before v8. |
| 729 | |
| 730 | (http://curl.haxx.se/bug/view.cgi?id=2916915) |
| 731 | |
| 732 | Daniel Stenberg (17 Dec 2009) |
| 733 | - David Byron fixed Curl_ossl_cleanup to actually call ENGINE_cleanup when |
| 734 | available. |
| 735 | |
| 736 | - Follow-up fix for the proxy fix I did for Jon Nelson's bug. It turned out I |
| 737 | was a bit too quick and broke test case 1101 with that change. The order of |
| 738 | some of the setups is sensitive. I now changed it slightly again to make |
| 739 | sure we do them in this order: |
| 740 | |
| 741 | 1 - parse URL and figure out what protocol is used in the URL |
| 742 | 2 - prepend protocol:// to URL if missing |
| 743 | 3 - parse name+password off URL, which needs to know what protocol is used |
| 744 | (since only some allows for name+password in the URL) |
| 745 | 4 - figure out if a proxy should be used set by an option |
| 746 | 5 - if no proxy option, check proxy environment variables |
| 747 | 6 - run the protocol-specific setup function, which needs to have the proxy |
| 748 | already set |
| 749 | |
| 750 | Daniel Stenberg (15 Dec 2009) |
| 751 | - Jon Nelson found a regression that turned out to be a flaw in how libcurl |
| 752 | detects and uses proxies based on the environment variables. If the proxy |
| 753 | was given as an explicit option it worked, but due to the setup order |
| 754 | mistake proxies would not be used fine for a few protocols when picked up |
| 755 | from '[protocol]_proxy'. Obviously this broke after 7.19.4. I now also added |
| 756 | test case 1106 that verifies this functionality. |
| 757 | |
| 758 | (http://curl.haxx.se/bug/view.cgi?id=2913886) |
| 759 | |
| 760 | Daniel Stenberg (12 Dec 2009) |
| 761 | - IMAP, POP3 and SMTP support and their TLS versions (including IMAPS, POP3S |
| 762 | and SMTPS) are now supported. The current state may not yet be solid, but |
| 763 | the foundation is in place and the test suite has some initial support for |
| 764 | these protocols. Work will now persue to make them nice libcurl citizens |
| 765 | until release. |
| 766 | |
| 767 | The work with supporting these new protocols was sponsored by |
| 768 | networking4all.com - thanks! |
| 769 | |
| 770 | Daniel Stenberg (10 Dec 2009) |
| 771 | - Siegfried Gyuricsko found out that the curl manual said --retry would retry |
| 772 | on FTP errors in the transient 5xx range. Transient FTP errors are in the |
| 773 | 4xx range. The code itself only tried on 5xx errors that occured _at login_. |
| 774 | Now the retry code retries on all FTP transfer failures that ended with a |
| 775 | 4xx response. |
| 776 | |
| 777 | (http://curl.haxx.se/bug/view.cgi?id=2911279) |
| 778 | |
| 779 | - Constantine Sapuntzakis figured out a case which would lead to libcurl |
| 780 | accessing alredy freed memory and thus crash when using HTTPS (with |
| 781 | OpenSSL), multi interface and the CURLOPT_DEBUGFUNCTION and a certain order |
| 782 | of cleaning things up. I fixed it. |
| 783 | |
| 784 | (http://curl.haxx.se/bug/view.cgi?id=2905220) |
| 785 | |
| 786 | Daniel Stenberg (7 Dec 2009) |
| 787 | - Martin Storsjo made libcurl use the Expect: 100-continue header for posts |
| 788 | with unknown size. Previously it was only used for posts with a known size |
| 789 | larger than 1024 bytes. |
| 790 | |
| 791 | Daniel Stenberg (1 Dec 2009) |
| 792 | - If the Expect: 100-continue header has been set by the application through |
| 793 | curl_easy_setopt with CURLOPT_HTTPHEADER, the library should set |
| 794 | data->state.expect100header accordingly - the current code (in 7.19.7 at |
| 795 | least) doesn't handle this properly. Martin Storsjo provided the fix! |
| 796 | |
| 797 | Yang Tse (28 Nov 2009) |
| 798 | - Added Diffie-Hellman parameters to several test harness certificate files in |
| 799 | PEM format. Required by several stunnel versions used by our test harness. |
| 800 | |
| 801 | Daniel Stenberg (28 Nov 2009) |
| 802 | - Markus Koetter provided a polished and updated version of Chad Monroe's TFTP |
| 803 | rework patch that now integrates TFTP properly into libcurl so that it can |
| 804 | be used non-blocking with the multi interface and more. BLKSIZE also works. |
| 805 | |
| 806 | The --tftp-blksize option was added to allow setting the TFTP BLKSIZE from |
| 807 | the command line. |
| 808 | |
| 809 | Daniel Stenberg (26 Nov 2009) |
| 810 | - Extended and fixed the change I did on Dec 11 for the the progress |
| 811 | meter/callback during FTP command/response sequences. It turned out it was |
| 812 | really lame before and now the progress meter SHOULD get called at least |
| 813 | once per second. |
| 814 | |
| 815 | Daniel Stenberg (23 Nov 2009) |
| 816 | - Bjorn Augustsson reported a bug which made curl not report any problems even |
| 817 | though it failed to write a very small download to disk (done in a single |
| 818 | fwrite call). It turned out to be because fwrite() returned success, but |
| 819 | there was insufficient error-checking for the fclose() call which tricked |
| 820 | curl to believe things were fine. |
| 821 | |
| 822 | Yang Tse (23 Nov 2009) |
| 823 | - David Byron modified Makefile.dist vc8 and vc9 targets in order to allow |
| 824 | finer granularity control when generating src and lib makefiles. |
| 825 | |
| 826 | Yang Tse (22 Nov 2009) |
| 827 | - I modified configure to force removal of the curlbuild.h file included in |
| 828 | distribution tarballs for use by non-configure systems. As intended, this |
| 829 | would get overwriten when doing in-tree builds. But VPATH builds would end |
| 830 | having two curlbuild.h files, one in the source tree and another in the |
| 831 | build tree. With the modification I introduced 5 Nov 2009 this could become |
| 832 | an issue when running libcurl's test suite. |
| 833 | |
| 834 | Daniel Stenberg (20 Nov 2009) |
| 835 | - Constantine Sapuntzakis identified a write after close, as the sockets were |
| 836 | closed by libcurl before the SSL lib were shutdown and they may write to its |
| 837 | socket. Detected to at least happen with OpenSSL builds. |
| 838 | |
| 839 | - Jad Chamcham pointed out a bug with connection re-use. If a connection had |
| 840 | CURLOPT_HTTPPROXYTUNNEL enabled over a proxy, a subsequent request using the |
| 841 | same proxy with the tunnel option disabled would still wrongly re-use that |
| 842 | previous connection and the outcome would only be badness. |
| 843 | |
| 844 | Yang Tse (18 Nov 2009) |
| 845 | - I modified the memory tracking system to make it intolerant with zero sized |
| 846 | malloc(), calloc() and realloc() function calls. |
| 847 | |
| 848 | Daniel Stenberg (17 Nov 2009) |
| 849 | - Constantine Sapuntzakis provided another fix for the DNS cache that could |
| 850 | end up with entries that wouldn't time-out: |
| 851 | |
| 852 | 1. Set up a first web server that redirects (307) to a http://server:port |
| 853 | that's down |
| 854 | 2. Have curl connect to the first web server using curl multi |
| 855 | |
| 856 | After the curl_easy_cleanup call, there will be curl dns entries hanging |
| 857 | around with in_use != 0. |
| 858 | |
| 859 | (http://curl.haxx.se/bug/view.cgi?id=2891591) |
| 860 | |
| 861 | - Marc Kleine-Budde fixed: curl saved the LDFLAGS set during configure into |
| 862 | its pkg-config file. So -Wl stuff ended up in the .pc file, which is really |
| 863 | bad, and breaks if there are multiple -Wl in our LDFLAGS (which are in |
| 864 | PTXdist). bug #2893592 (http://curl.haxx.se/bug/view.cgi?id=2893592) |
| 865 | |
| 866 | Kamil Dudka (15 Nov 2009) |
| 867 | - David Byron improved the configure script to use pkg-config to find OpenSSL |
| 868 | (and in particular the list of required libraries) even if a path is given |
| 869 | as argument to --with-ssl |
| 870 | |
| 871 | Yang Tse (15 Nov 2009) |
| 872 | - I removed enable-thread / disable-thread configure option. These were only |
| 873 | placebo options. The library is always built as thread safe as possible on |
| 874 | every system. |
| 875 | |
| 876 | Claes Jakobsson (14 Nov 2009) |
| 877 | - curl-config now accepts '--configure' to see what arguments was |
| 878 | passed to the configure script when building curl. |
| 879 | |
| 880 | Daniel Stenberg (14 Nov 2009) |
| 881 | - Claes Jakobsson restored the configure functionality to detect NSS when |
| 882 | --with-nss is set but not "yes". |
| 883 | |
| 884 | I think we can still improve that to check for pkg-config in that path etc, |
| 885 | but at least this patch brings back the same functionality we had before. |
| 886 | |
| 887 | - Camille Moncelier added support for the file type SSL_FILETYPE_ENGINE for |
| 888 | the client certificate. It also disable the key name test as some engines |
| 889 | can select a private key/cert automatically (When there is only one key |
| 890 | and/or certificate on the hardware device used by the engine) |
| 891 | |
| 892 | Yang Tse (14 Nov 2009) |
| 893 | - Constantine Sapuntzakis provided the fix that ensures that an SSL connection |
| 894 | won't be reused unless protection level for peer and host verification match. |
| 895 | |
| 896 | I refactored how preprocessor symbol _THREAD_SAFE definition is done. |
| 897 | |
| 898 | Kamil Dudka (12 Nov 2009) |
| 899 | - Kevin Baughman provided a fix preventing libcurl-NSS from crash on doubly |
| 900 | closed NSPR descriptor. The issue was hard to find, reported several times |
| 901 | before and always closed unresolved. More info at the RH bug: |
| 902 | https://bugzilla.redhat.com/534176 |
| 903 | |
| 904 | - libcurl-NSS now tries to reconnect with TLS disabled in case it detects |
| 905 | a broken TLS server. However it does not happen if SSL version is selected |
| 906 | manually. The approach was originally taken from PSM. Kaspar Brand helped me |
| 907 | to complete the patch. Original bug reports: |
| 908 | https://bugzilla.redhat.com/525496 |
| 909 | https://bugzilla.redhat.com/527771 |
| 910 | |
| 911 | Yang Tse (12 Nov 2009) |
| 912 | - I modified configure script to make the getaddrinfo function check also |
| 913 | verify if the function is thread safe. |
| 914 | |
| 915 | Yang Tse (11 Nov 2009) |
| 916 | - Marco Maggi reported that compilation failed when configured --with-gssapi |
| 917 | and GNU GSS installed due to a missing mutual exclusion of header files in |
| 918 | the Kerberos 5 code path. He also verified that my patch worked for him. |
| 919 | |
| 920 | Daniel Stenberg (11 Nov 2009) |
| 921 | - Constantine Sapuntzakis posted bug #2891595 |
| 922 | (http://curl.haxx.se/bug/view.cgi?id=2891595) which identified how an entry |
| 923 | in the DNS cache would linger too long if the request that added it was in |
| 924 | use that long. He also provided the patch that now makes libcurl capable of |
| 925 | still doing a request while the DNS hash entry may get timed out. |
| 926 | |
| 927 | - Christian Schmitz noticed that the progress meter/callback was not properly |
| 928 | used during the FTP connection phase (after the actual TCP connect), while |
| 929 | it of course should be. I also made the speed check get called correctly so |
| 930 | that really slow servers will trigger that properly too. |
| 931 | |
| 932 | Kamil Dudka (5 Nov 2009) |
| 933 | - Dropped misleading timeouts in libcurl-NSS and made sure the SSL socket works |
| 934 | in non-blocking mode. |
| 935 | |
| 936 | Yang Tse (5 Nov 2009) |
| 937 | - I removed leading 'curl' path on the 'curlbuild.h' include statement in |
| 938 | curl.h, adjusting auto-makefiles include path, to enhance portability to |
| 939 | OS's without an orthogonal directory tree structure such as OS/400. |
| 940 | |
| 941 | Daniel Stenberg (4 Nov 2009) |
| 942 | - I fixed several problems with the transfer progress meter. It showed the |
| 943 | wrong percentage for small files, most notable for <1000 bytes and could |
| 944 | easily end up showing more than 100% at the end. It also didn't show any |
| 945 | percentage, transfer size or estimated transfer times when transferring |
| 946 | less than 100 bytes. |
| 947 | |
| 948 | Version 7.19.7 (4 November 2009) |
| 949 | |
| 950 | Daniel Stenberg (2 Nov 2009) |
| 951 | - As reported independent by both Stan van de Burgt and Didier Brisebourg, |
| 952 | CURLINFO_SIZE_DOWNLOAD (the -w variable size_download) didn't work when |
| 953 | getting data from ldap! |
| 954 | |
| 955 | Daniel Stenberg (31 Oct 2009) |
| 956 | - Gabriel Kuri reported a problem with CURLINFO_CONTENT_LENGTH_DOWNLOAD if the |
| 957 | download was 0 bytes, as libcurl would then return the size as unknown (-1) |
| 958 | and not 0. I wrote a fix and test case 566 to verify it. |
| 959 | |
| 960 | Daniel Stenberg (30 Oct 2009) |
| 961 | - Liza Alenchery mentioned a problem with re-used SCP connection when a bad |
| 962 | auth is used, as it caused a crash. I failed to repeat the issue, but still |
| 963 | made a change that now forces the TCP connection used for a freed SCP |
| 964 | session to get closed and not be re-used. |
| 965 | |
| 966 | - "Tom" posted a bug report that mentioned how libcurl did wrong when doing a |
| 967 | POST using a read callback, with Digest authentication and |
| 968 | "Transfer-Encoding: chunked" enforced. I would then cause the first request |
| 969 | to be wrongly sent and then basically hang until the server closed the |
| 970 | connection. I fixed the problem and added test case 565 to verify it. |
| 971 | |
| 972 | Daniel Stenberg (25 Oct 2009) |
| 973 | - Dima Barsky made the curl cookie parser accept cookies even with blank or |
| 974 | unparsable expiry dates and then treat them as session cookies - previously |
| 975 | libcurl would reject cookies with a date format it couldn't parse. Research |
| 976 | shows that the major browser treat such cookies as session cookies. I |
| 977 | modified test 8 and 31 to verify this. |
| 978 | |
| 979 | Daniel Stenberg (21 Oct 2009) |
| 980 | - Attempt to use pkg-config for finding out libssh2 installation details |
| 981 | during configure. |
| 982 | |
| 983 | - A patch in bug report #2883177 (http://curl.haxx.se/bug/view.cgi?id=2883177) |
| 984 | by Johan van Selst introduced the --crlfile option to curl, which makes curl |
| 985 | tell libcurl about a file with CRL (certificate revocation list) data to |
| 986 | read. |
| 987 | |
| 988 | Daniel Stenberg (18 Oct 2009) |
| 989 | - Ray Dassen provided a patch in Debian's bug tracker (bug number #551461) |
| 990 | that now makes curl_getdate(3) actually handles RFC 822 formatted dates that |
| 991 | use the "single letter military timezones". |
| 992 | http://www.rfc-ref.org/RFC-TEXTS/822/chapter5.html has the details. |
| 993 | |
| 994 | - Fixed memory leak in the SCP/SFTP code as it never freed the knownhosts |
| 995 | data! |
| 996 | |
| 997 | - John Dennis filed bug report #2873666 |
| 998 | (http://curl.haxx.se/bug/view.cgi?id=2873666) which identified a problem |
| 999 | which made libcurl loop infinitely when given incorrect credentials when |
| 1000 | using HTTP GSS negotiate authentication. He also provided a small and simple |
| 1001 | patch for it. |
| 1002 | |
| 1003 | - Kevin Baughman found a double close() problem with libcurl-NSS, as when |
| 1004 | libcurl called NSS to close the SSL "session" it also closed the actual |
| 1005 | socket. |
| 1006 | |
| 1007 | Yang Tse (17 Oct 2009) |
| 1008 | - Bug report #2866724 indicated |
| 1009 | (http://curl.haxx.se/bug/view.cgi?id=2866724) that curl on Windows failed |
| 1010 | when writing files whose file names originally contained characters which |
| 1011 | are not valid for file names on Windows. Dan Fandrich provided an initial |
| 1012 | patch and another revised one to fix this issue. |
| 1013 | |
| 1014 | Daniel Stenberg (1 Oct 2009) |
| 1015 | - Tom Mueller correctly reported in bug report #2870221 |
| 1016 | (http://curl.haxx.se/bug/view.cgi?id=2870221) that libcurl returned an |
| 1017 | incorrect return code from the internal trynextip() function which caused |
| 1018 | him grief. This is a regression that was introduced in 7.19.1 and I find it |
| 1019 | strange it hasn't hit us harder, but I won't persue into figuring out |
| 1020 | exactly why. |
| 1021 | |
| 1022 | - Constantine Sapuntzakis: The current implementation will always set |
| 1023 | SO_SNDBUF to CURL_WRITE_SIZE even if the SO_SNDBUF starts out larger. The |
| 1024 | patch doesn't do a setsockopt if SO_SNDBUF is already greater than |
| 1025 | CURL_WRITE_SIZE. This should help folks who have set up their computer with |
| 1026 | large send buffers. |
| 1027 | |
| 1028 | Daniel Stenberg (27 Sep 2009) |
| 1029 | - I introduced a maximum limit for received HTTP headers. It is controlled by |
| 1030 | the define CURL_MAX_HTTP_HEADER which is even exposed in the public header |
| 1031 | file to allow for users to fairly easy rebuild libcurl with a modified |
| 1032 | limit. The rationale for a fixed limit is that libcurl is realloc()ing a |
| 1033 | buffer to be able to put a full header into it, so that it can call the |
| 1034 | header callback with the entire header, but that also risk getting it into |
| 1035 | trouble if a server by mistake or willingly sends a header that is more or |
| 1036 | less without an end. The limit is set to 100K. |
| 1037 | |
| 1038 | Daniel Stenberg (26 Sep 2009) |
| 1039 | - John P. McCaskey posted a bug report that showed how libcurl did wrong when |
| 1040 | saving received cookies with no given path, if the path in the request had a |
| 1041 | query part. That is means a question mark (?) and characters on the right |
| 1042 | side of that. I wrote test case 1105 and fixed this problem. |
| 1043 | |
| 1044 | Kamil Dudka (26 Sep 2009) |
| 1045 | - Implemented a protocol independent way to specify blocking direction, used by |
| 1046 | transfer.c for blocking. It is currently used only by SCP and SFTP protocols. |
| 1047 | This enhancement resolves an issue with 100% CPU usage during SFTP upload, |
| 1048 | reported by Vourhey. |
| 1049 | |
| 1050 | Daniel Stenberg (25 Sep 2009) |
| 1051 | - Chris Mumford filed bug report #2861587 |
| 1052 | (http://curl.haxx.se/bug/view.cgi?id=2861587) identifying that libcurl used |
| 1053 | the OpenSSL function X509_load_crl_file() wrongly and failed if it would |
| 1054 | load a CRL file with more than one certificate within. This is now fixed. |
| 1055 | |
| 1056 | Daniel Stenberg (16 Sep 2009) |
| 1057 | - Sven Anders reported that we introduced a cert verfication flaw for OpenSSL- |
| 1058 | powered libcurl in 7.19.6. If there was a X509v3 Subject Alternative Name |
| 1059 | field in the certficate it had to match and so even if non-DNS and non-IP |
| 1060 | entry was present it caused the verification to fail. |
| 1061 | |
| 1062 | Daniel Fandrich (15 Sep 2009) |
| 1063 | - Moved the libssh2 checks after the SSL library checks. This helps when |
| 1064 | statically linking since libssh2 needs the SSL library link flags to be |
| 1065 | set up already to satisfy its dependencies. This wouldn't be necessary if |
| 1066 | the libssh2 configure check was changed to use pkg-config since the |
| 1067 | --static flag would add the dependencies automatically. |
| 1068 | |
| 1069 | Yang Tse (14 Sep 2009) |
| 1070 | - Revert Joshua Kwan's patch committed 11 Sep 2009. |
| 1071 | |
| 1072 | Some systems poll function sets POLLHUP in revents without setting |
| 1073 | POLLIN, and sets POLLERR without setting POLLIN and POLLOUT. In some |
| 1074 | libcurl code execution paths this could trigger busy wait loops with |
| 1075 | high CPU usage until a timeout condition aborted the loop. |
| 1076 | |
| 1077 | The reverted patch addressed the above issue for a very specific case, |
| 1078 | when awaiting c-ares to resolve. A libcurl-wide fix for Curl_poll now |
| 1079 | superceeds this one. |
| 1080 | |
| 1081 | Guenter Knauf (11 Sep 2009) |
| 1082 | - Joshua Kwan provided a patch to pass POLLERR / POLLHUP back to c-ares. |
| 1083 | This fixes a loop problem with high CPU usage. |
| 1084 | |
| 1085 | Daniel Stenberg (10 Sep 2009) |
| 1086 | - Claes Jakobsson fixed a problem with cookie expiry dates at exctly the epoch |
| 1087 | start second "Thu Jan 1 00:00:00 GMT 1970" as the date parser then returns 0 |
| 1088 | which internally then is treated as a session cookie. That particular date |
| 1089 | is now made to get the value of 1. |
| 1090 | |
| 1091 | Daniel Stenberg (2 Sep 2009) |
| 1092 | - Daniel Johnson found a flaw in the code converting sftp-errors to libcurl |
| 1093 | errors. |
| 1094 | |
| 1095 | Daniel Stenberg (1 Sep 2009) |
| 1096 | - Peter Sylvester made a debug feature for Curl_resolv() that now will force |
| 1097 | libcurl to resolve 'localhost' whatever name you use in the URL *if* you set |
| 1098 | the --interface option to (exactly) "LocalHost". This will enable us to |
| 1099 | write tests for custom hosts names but still use a local host server. |
| 1100 | |
| 1101 | - configure now tries to use pkg-config for a number of sub-dependencies even |
| 1102 | when cross-compiling. The key to success is then you properly setup |
| 1103 | PKG_CONFIG_PATH before invoking configure. |
| 1104 | |
| 1105 | I also improved how NSS is detected by trying nss-config if pkg-config isn't |
| 1106 | present, and as a last resort just use the lib name and force the user to |
| 1107 | setup the LIBS/LDFLAGS/CFLAGS etc properly. The previous last resort would |
| 1108 | add a range of various libs that would almost never be quite correct. |
| 1109 | |
| 1110 | Daniel Stenberg (31 Aug 2009) |
| 1111 | - When using the multi interface with FTP and you asked for NOBODY, you did no |
| 1112 | QUOTE commands and the request used the same path as the connection had |
| 1113 | already changed to, it would decide that no commands would be necessary for |
| 1114 | the "DO" action and that was not handled properly but libcurl would instead |
| 1115 | hang. |
| 1116 | |
| 1117 | Kamil Dudka (28 Aug 2009) |
| 1118 | - Improved error message for not matching certificate subject name in |
| 1119 | libcurl-NSS. Originally reported at: |
| 1120 | https://bugzilla.redhat.com/show_bug.cgi?id=516056#c9 |
| 1121 | |
| 1122 | Patrick Monnerat (24 Aug 2009) |
| 1123 | - Introduced a SYST-based test to properly set-up name format when dealing |
| 1124 | with the OS/400 FTP server. |
| 1125 | |
| 1126 | - Fixed an ftp_readresp() bug preventing detection of failing control socket |
| 1127 | and causing FTP client to loop forever. |
| 1128 | |
| 1129 | Daniel Stenberg (24 Aug 2009) |
| 1130 | - Marc de Bruin pointed out that configure --with-gnutls=PATH didn't work |
| 1131 | properly and provided a fix. http://curl.haxx.se/bug/view.cgi?id=2843008 |
| 1132 | |
| 1133 | - Eric Wong introduced support for the new option -T. (dot) that makes curl |
| 1134 | read stdin in a non-blocking fashion. This also brings back -T- (minus) to |
| 1135 | the previous blocking behavior since it could break stuff for people at |
| 1136 | times. |
| 1137 | |
| 1138 | Michal Marek (21 Aug 2009) |
| 1139 | - With CURLOPT_PROXY_TRANSFER_MODE, avoid sending invalid URLs like |
| 1140 | ftp://example.com;type=i if the user specified ftp://example.com without the |
| 1141 | slash. |
| 1142 | |
| 1143 | Daniel Stenberg (21 Aug 2009) |
| 1144 | - Andre Guibert de Bruet pointed out a missing return code check for a |
| 1145 | strdup() that could lead to segfault if it returned NULL. I extended his |
| 1146 | suggest patch to now have Curl_retry_request() return a regular return code |
| 1147 | and better check that. |
| 1148 | |
| 1149 | - Lots of good work by Krister Johansen, mostly related to pipelining: |
| 1150 | |
| 1151 | Fix SIGSEGV on free'd easy_conn when pipe unexpectedly breaks |
| 1152 | Fix data corruption issue with re-connected transfers |
| 1153 | Fix use after free if we're completed but easy_conn not NULL |
| 1154 | |
| 1155 | Kamil Dudka (13 Aug 2009) |
| 1156 | - Changed NSS code to not ignore the value of ssl.verifyhost and produce more |
| 1157 | verbose error messages. Originally reported at: |
| 1158 | https://bugzilla.redhat.com/show_bug.cgi?id=516056 |
| 1159 | |
| 1160 | Daniel Stenberg (12 Aug 2009) |
| 1161 | - Karl Moerder fixed the Makefile.vc* makefiles to include the new file |
| 1162 | nonblock.c so that they work fine again |
| 1163 | |
| 1164 | - I expanded test 517 with a bunch of more dates that originate from the |
| 1165 | Chrome browser test suite. It turns out most of them get parsed the same |
| 1166 | way. |
| 1167 | |
| 1168 | Version 7.19.6 (12 August 2009) |
| 1169 | |
| 1170 | Daniel Stenberg (12 Aug 2009) |
| 1171 | - Carsten Lange reported a bug and provided a patch for TFTP upload and the |
| 1172 | sending of the TSIZE option. I don't like fixing bugs just hours before |
| 1173 | a release, but since it was broken and the patch fixes this for him I decided |
| 1174 | to get it in anyway. |
| 1175 | |
| 1176 | Daniel Stenberg (11 Aug 2009) |
| 1177 | - Peter Sylvester made the HTTPS test server use specific certificates for |
| 1178 | each test, so that the test suite can now be used to actually test the |
| 1179 | verification of cert names etc. This made an error show up in the OpenSSL- |
| 1180 | specific code where it would attempt to match the CN field even if a |
| 1181 | subjectAltName exists that doesn't match. This is now fixed and verified |
| 1182 | in test 311. |
| 1183 | |
| 1184 | - Benbuck Nason posted the bug report #2835196 |
| 1185 | (http://curl.haxx.se/bug/view.cgi?id=2835196), fixing a few compiler |
| 1186 | warnings when mixing ints and bools. |
| 1187 | |
| 1188 | Daniel Fandrich (10 Aug 2009) |
| 1189 | - Fixed a memory leak in the FTP code and an off-by-one heap buffer overflow. |
| 1190 | |
| 1191 | Daniel Fandrich (9 Aug 2009) |
| 1192 | - Fixed some memory leaks in the command-line tool that caused most of the |
| 1193 | torture tests to fail. |
| 1194 | |
| 1195 | Daniel Stenberg (2 Aug 2009) |
| 1196 | - Curt Bogmine reported a problem with SNI enabled on a particular server. We |
| 1197 | should introduce an option to disable SNI, but as we're in feature freeze |
| 1198 | now I've addressed the obvious bug here (pointed out by Peter Sylvester): we |
| 1199 | shouldn't try to enable SNI when SSLv2 or SSLv3 is explicitly selected. |
| 1200 | Code for OpenSSL and GnuTLS was fixed. NSS doesn't seem to have a particular |
| 1201 | option for SNI, or are we simply not using it? |
| 1202 | |
| 1203 | Daniel Stenberg (1 Aug 2009) |
| 1204 | - Scott Cantor posted the bug report #2829955 |
| 1205 | (http://curl.haxx.se/bug/view.cgi?id=2829955) mentioning the recent SSL cert |
| 1206 | verification flaw found and exploited by Moxie Marlinspike. The presentation |
| 1207 | he did at Black Hat is available here: |
| 1208 | https://www.blackhat.com/html/bh-usa-09/bh-usa-09-archives.html#Marlinspike |
| 1209 | |
| 1210 | Apparently at least one CA allowed a subjectAltName or CN that contain a |
| 1211 | zero byte, and thus clients that assumed they would never have zero bytes |
| 1212 | were exploited to OK a certificate that didn't actually match the site. Like |
| 1213 | if the name in the cert was "example.com\0theatualsite.com", libcurl would |
| 1214 | happily verify that cert for example.com. |
| 1215 | |
| 1216 | libcurl now better uses the length of the extracted name, not using the zero |
| 1217 | termination for getting the string length. |
| 1218 | |
| 1219 | This fixing only made and needed in OpenSSL interfacing code. |
| 1220 | |
| 1221 | - Tanguy Fautre pointed out that OpenSSL's function RAND_screen() (present |
| 1222 | only in some OpenSSL installs - like on Windows) isn't thread-safe and we |
| 1223 | agreed that moving it to the global_init() function is a decent way to deal |
| 1224 | with this situation. |
| 1225 | |
| 1226 | - Alexander Beedie provided the patch for a noproxy problem: If I have set |
| 1227 | CURLOPT_NOPROXY to "*", or to a host that should not use a proxy, I actually |
| 1228 | could still end up using a proxy if a proxy environment variable was set. |
| 1229 | |
| 1230 | Daniel Stenberg (27 Jul 2009) |
| 1231 | - All the quote options (CURLOPT_QUOTE, CURLOPT_POSTQUOTE and |
| 1232 | CURLOPT_PREQUOTE) now accept a preceeding asterisk before the command to |
| 1233 | send when using FTP, as a sign that libcurl shall simply ignore the response |
| 1234 | from the server instead of treating it as an error. Not treating a 400+ FTP |
| 1235 | response code as an error means that failed commands will not abort the |
| 1236 | chain of commands, nor will they cause the connection to get disconnected. |
| 1237 | |
| 1238 | Daniel Stenberg (26 Jul 2009) |
| 1239 | - Johan van Selst posted bug report #2825989 |
| 1240 | (http://curl.haxx.se/bug/view.cgi?id=2825989) pointing out that |
| 1241 | OpenSSL-powered libcurl didn't support the SHA-2 digest algorithm, and |
| 1242 | provided the solution too: to use OpenSSL_add_all_algorithms() in addition |
| 1243 | to the older SSLeay_* alternative. OpenSSL_add_all_algorithms was added in |
| 1244 | OpenSSL 0.9.5 |
| 1245 | |
| 1246 | Daniel Stenberg (23 Jul 2009) |
| 1247 | - Added CURLOPT_SSH_KNOWNHOSTS, CURLOPT_SSH_KEYFUNCTION, CURLOPT_SSH_KEYDATA. |
| 1248 | They introduce known_host support for SSH keys to libcurl. See docs for |
| 1249 | details. Note that this feature depends on a new enough libssh2 version, to |
| 1250 | be supported in libssh2 1.2 and later (or current git repo at this time). |
| 1251 | |
| 1252 | Michal Marek (22 Jul 2009) |
| 1253 | - David Binderman found a memory and fd leak in lib/gtls.c:load_file() |
| 1254 | (https://bugzilla.novell.com/523919). When looking at the code, I found that |
| 1255 | also the ptr pointer can leak. |
| 1256 | |
| 1257 | Kamil Dudka (20 Jul 2009) |
| 1258 | - Claes Jakobsson improved the support for client certificates handling in |
| 1259 | NSS-powered libcurl. Now the client certificates can be selected |
| 1260 | automatically by a NSS built-in hook. Additionally pre-login to all PKCS11 |
| 1261 | slots is no more performed. It used to cause problems with HW tokens. |
| 1262 | |
| 1263 | - Fixed reference counting for NSS client certificates. Now the PEM reader |
| 1264 | module should be always properly unloaded on Curl_nss_cleanup(). If the |
| 1265 | unload fails though, libcurl will try to reuse the already loaded instance. |
| 1266 | |
| 1267 | Daniel Fandrich (15 Jul 2009) |
| 1268 | - Added nonblock.c to the non-automake makefiles (note that the dependencies |
| 1269 | in the Watcom makefiles aren't quite correct). |
| 1270 | |
| 1271 | Michal Marek (15 Jul 2009) |
| 1272 | - Changed the description of CURLINFO_OS_ERRNO to make it clear that the |
| 1273 | errno is not reset on success. |
| 1274 | |
| 1275 | Guenter Knauf (14 Jul 2009) |
| 1276 | - renamed generated config.h to curl_config.h to avoid any future clashes |
| 1277 | with config.h from other projects. |
| 1278 | |
| 1279 | Daniel Stenberg (9 Jul 2009) |
| 1280 | - Eric Wong introduced curlx_nonblock() that the curl tool now (re-)uses for |
| 1281 | setting a file descriptor non-blocking. Used by the functionality Eric |
| 1282 | himself brough on June 15th. |
| 1283 | |
| 1284 | Daniel Stenberg (8 Jul 2009) |
| 1285 | - Constantine Sapuntzakis posted bug report #2813123 |
| 1286 | (http://curl.haxx.se/bug/view.cgi?id=2813123) and an a patch that fixes the |
| 1287 | problem: |
| 1288 | |
| 1289 | Url A is accessed using auth. Url A redirects to Url B (on a different |
| 1290 | server0. Url B reuses a persistent connection. Url B has auth, even though |
| 1291 | it's on a different server. |
| 1292 | |
| 1293 | Note: if Url B does not reuse a persistent connection, auth is not sent. |
| 1294 | |
| 1295 | reason: |
| 1296 | |
| 1297 | data->state.first_host is not initialized becuase Curl_http_connect is not |
| 1298 | called when a connection is reused. |
| 1299 | |
| 1300 | Solution: |
| 1301 | |
| 1302 | move initialization of data->state.first_host to Curl_http. No code before |
| 1303 | Curl_http uses data->state.first_host anyway. |
| 1304 | |
| 1305 | Guenter Knauf (4 Jul 2009) |
| 1306 | - Markus Koetter provided a patch to avoid getnameinfo() usage which broke a |
| 1307 | couple of both IPv4 and IPv6 autobuilds. |
| 1308 | |
| 1309 | Daniel Stenberg (29 Jun 2009) |
| 1310 | - Markus Koetter made CURLOPT_FTPPORT (and curl's -P/--ftpport) support a port |
| 1311 | range if given colon-separated after the host name/address part. Like |
| 1312 | "192.168.0.1:2000-10000" |
| 1313 | |
| 1314 | - Modified the separators used for CURLOPT_CERTINFO in multi-part outputs. I |
| 1315 | don't know how they got wrong in the first place, but using this output |
| 1316 | format makes it possible to quite easily separate the string into an array |
| 1317 | of multiple items. |
| 1318 | |
| 1319 | Daniel Fandrich (16 June 2009) |
| 1320 | - Added a few more compiler warning options for gcc. |
| 1321 | |
| 1322 | Daniel Stenberg (16 Jun 2009) |
| 1323 | - Reuven Wachtfogel made curl -o - properly produce a binary output on windows |
| 1324 | (no newline translations). Use -B/--use-ascii if you rather get the ascii |
| 1325 | approach. |
| 1326 | |
| 1327 | Michal Marek (16 Jun 2009) |
| 1328 | - When doing non-anonymous ftp via http proxies and the password is not |
| 1329 | provided in the url, add it there (squid needs this). |
| 1330 | |
| 1331 | Daniel Stenberg (15 Jun 2009) |
| 1332 | - Eric Wong's patch: |
| 1333 | |
| 1334 | This allows curl(1) to be used as a client-side tunnel for arbitrary stream |
| 1335 | protocols by abusing chunked transfer encoding in both the HTTP request and |
| 1336 | HTTP response. This requires server support for sending a response while a |
| 1337 | request is still being read, of course. |
| 1338 | |
| 1339 | If attempting to read from stdin returns EAGAIN, then we pause our sender. |
| 1340 | This leaves curl to attempt to read from the socket while reading from stdin |
| 1341 | (and thus sending) is paused. |
| 1342 | |
| 1343 | This change was needed to allow successfully tunneling the git protocol over |
| 1344 | HTTP (--no-buffer is needed, as well). |
| 1345 | |
| 1346 | Patrick Monnerat (15 Jun 2009) |
| 1347 | - Replaced use of standard C library rand()/srand() by our own pseudo-random |
| 1348 | number generator. |
| 1349 | |
| 1350 | Yang Tse (11 Jun 2009) |
| 1351 | - I adapted testcurl script to allow building test harness programs when |
| 1352 | cross-compiling for a *-*-mingw* host. |
| 1353 | |
| 1354 | Daniel Stenberg (10 Jun 2009) |
| 1355 | - Fabian Keil ran clang on the (lib)curl code, found a bunch of warnings and |
| 1356 | contributed a range of patches to fix them. |
| 1357 | |
| 1358 | Yang Tse (10 Jun 2009) |
| 1359 | - I introduced configure script option --enable-curldebug which now allows |
| 1360 | the decoupled enabling or disabling of the curl debug memory tracking |
| 1361 | feature from the --enable-debug option which no longer controls this. |
| 1362 | |
| 1363 | curl --version will list 'Debug' feature for debug enabled builds, and |
| 1364 | will list 'TrackMemory' feature for curl debug memory tracking capable |
| 1365 | builds. These features are independent and can be controlled when running |
| 1366 | the configure script. When --enable-debug is given both features will be |
| 1367 | enabled, unless some restriction prevents memory tracking from being used. |
| 1368 | |
| 1369 | Internally, definition of preprocessor symbol DEBUGBUILD restricts code |
| 1370 | which is only compiled for debug enabled builds. And symbol CURLDEBUG is |
| 1371 | used to differentiate code which is _only_ used for memory tracking. |
| 1372 | |
| 1373 | Yang Tse (9 Jun 2009) |
| 1374 | - Daniel Steinberg pointed out that Curl_FormInit() in formdata.c was not |
| 1375 | initializing the fread callback pointer and this triggered a compiler |
| 1376 | warning, also provided a friendly suggestion on how to fix it. |
| 1377 | |
| 1378 | Daniel Stenberg (8 Jun 2009) |
| 1379 | - Claes Jakobsson provided a patch for libcurl-NSS that fixed a bad refcount |
| 1380 | issue with client certs that caused issues like segfaults. |
| 1381 | http://curl.haxx.se/mail/lib-2009-05/0316.html |
| 1382 | |
| 1383 | - Triggered by bug report #2798852 and the patch in there, I fixed configure |
| 1384 | to detect gnutls build options with pkg-config only and not libgnutls-config |
| 1385 | anymore since GnuTLS has stopped distributing that tool. If an explicit path |
| 1386 | is given to configure, we will instead guess on how to link and use that |
| 1387 | lib. I did not use the patch from the bug report. |
| 1388 | |
| 1389 | Yang Tse (8 Jun 2009) |
| 1390 | - Igor Novoseltsev adjusted Makefile.vxworks to get sources and headers |
| 1391 | included from Makefile.inc, and provided docs\INSTALL VxWorks section. |
| 1392 | |
| 1393 | - I removed buildconf.bat from release and daily snapshot archives. This |
| 1394 | file is only for CVS tree checkout builds. |
| 1395 | |
| 1396 | Daniel Stenberg (8 Jun 2009) |
| 1397 | - Eric Wong fixed --no-buffer to actually switch off output buffering. Been |
| 1398 | broken since 7.19.0 |
| 1399 | |
| 1400 | Bill Hoffman (6 Jun 2009) |
| 1401 | - Added some cmake docs and fixed socklen_t in the build. |
| 1402 | |
| 1403 | Yang Tse (5 Jun 2009) |
| 1404 | - John E. Malmberg provided VMS specific patch: "This fixes an existing bug |
| 1405 | in urlglob.c where it was not converting the Curl Unix exit code to a VMS |
| 1406 | DCL compatible exit code. This fix required the enhancement described next. |
| 1407 | This also adds an enhancement to main.c so that when curl is run under a |
| 1408 | Unix shell like Bash on VMS, it will return the standard Unix exit codes |
| 1409 | and messages." And another patch for docs/examples. |
| 1410 | |
| 1411 | I introduced os-specific.c and os-specific.h for use in curl tool code |
| 1412 | and adjusted John E. Malmberg's patch placement to use these new files |
| 1413 | as an effort to prevent main.c from growing ad infinitum. Code already |
| 1414 | existing in main.c which is OS specific should be moved into these files. |
| 1415 | |
| 1416 | Daniel Stenberg (4 June 2009) |
| 1417 | - Setting the Content-Length: header from your app when you do a POST or PUT |
| 1418 | is almost always a VERY BAD IDEA. Yet there are still apps out there doing |
| 1419 | this, and now recently it triggered a bug/side-effect in libcurl as when |
| 1420 | libcurl sends a POST or PUT with NTLM, it sends an empty post first when it |
| 1421 | knows it will just get a 401/407 back. If the app then replaced the |
| 1422 | Content-Length header, it caused the server to wait for input that libcurl |
| 1423 | wouldn't send. Aaron Oneal reported this problem in bug report #2799008 |
| 1424 | (http://curl.haxx.se/bug/view.cgi?id=2799008) and helped us verify the fix. |
| 1425 | |
| 1426 | Yang Tse (4 Jun 2009) |
| 1427 | - Igor Novoseltsev provided patches and information, that after some |
| 1428 | adjustments to better fit curl's way of doing things, have resulted |
| 1429 | in the posibility of building libcurl for VxWorks. |
| 1430 | |
| 1431 | Daniel Fandrich (2 June 2009) |
| 1432 | - Checked in a Google Android make file. To use it, you must first |
| 1433 | create a config.h file by running configure in the Android environment, |
| 1434 | which doesn't seem to be easy to do. If no easy way can be found, a |
| 1435 | static config-android.h may need to be created and checked in to the |
| 1436 | libcurl source tree. |
| 1437 | |
| 1438 | Daniel Stenberg (1 June 2009) |
| 1439 | - Claes Jakobsson fixed the configure script to better find and use NSS |
| 1440 | without pkg-config. |
| 1441 | |
| 1442 | Yang Tse (1 Jun 2009) |
| 1443 | - John E. Malmberg provided a VMS specific clean-up for curl.h, and pointed |
| 1444 | out that the configure script was failing to detect the timeval struct on |
| 1445 | VMS when building with _XOPEN_SOURCE_EXTENDED undefined due to definition |
| 1446 | taking place in socket.h instead of time.h. I have adjusted configure |
| 1447 | script to also include this header when checking struct timeval. |
| 1448 | |
| 1449 | Daniel Stenberg (27 May 2009) |
| 1450 | - Frank McGeough provided a small OpenSSL #include fix to make libcurl compile |
| 1451 | fine with Nokia 5th edition 1.0 SDK for Symbian. |
| 1452 | |
| 1453 | - Andre Guibert de Bruet found a call to a OpenSSL function that didn't check |
| 1454 | for a failure properly. |
| 1455 | |
| 1456 | - Mike Crowe pointed out that setting CURLOPT_USERPWD to NULL used to clear |
| 1457 | the auth credentials back in 7.19.0 and earlier while now you have to set "" |
| 1458 | to get the same effect. His patch brings back the ability to use NULL. |
| 1459 | |
| 1460 | - Claes Jakobsson fixed libcurl-NSS to build fine even without the |
| 1461 | PK11_CreateGenericObject() function. |
| 1462 | |
| 1463 | Daniel Stenberg (25 May 2009) |
| 1464 | - bug report #2796358 (http://curl.haxx.se/bug/view.cgi?id=2796358) pointed |
| 1465 | out that the cookie parser would leak memory when it parses cookies that are |
| 1466 | received with domain, path etc set multiple times in the same header. While |
| 1467 | such a cookie is questionable, they occur in the wild and libcurl no longer |
| 1468 | leaks memory for them. I added such a header to test case 8. |
| 1469 | |
| 1470 | Daniel Fandrich (22 May 2009) |
| 1471 | - Removed some obsolete digest code that caused a valgrind error in test 551. |
| 1472 | |
| 1473 | Daniel Fandrich (20 May 2009) |
| 1474 | - Added "non-existing host" test keywords to make it easy to skip those |
| 1475 | tests on machines that have broken DNS configurations (such as |
| 1476 | those configured to use OpenDNS). |
| 1477 | |
| 1478 | Daniel Stenberg (19 May 2009) |
| 1479 | - Kamil Dudka brought the patch from the Redhat bug entry |
| 1480 | https://bugzilla.redhat.com/show_bug.cgi?id=427966 which was libcurl closing |
| 1481 | a bad file descriptor when closing down the FTP data connection. Caolan |
| 1482 | McNamara seems to be the original author of it. |
| 1483 | |
| 1484 | Version 7.19.5 (18 May 2009) |
| 1485 | |
| 1486 | Daniel Stenberg (17 May 2009) |
| 1487 | - James Bursa posted a patch to the mailing list that fixed a problem with |
| 1488 | no_proxy which made it not skip the proxy if the URL entered contained a |
| 1489 | user name. I added test case 1101 to verify. |
| 1490 | |
| 1491 | Daniel Stenberg (11 May 2009) |
| 1492 | - Balint Szilakszi reported a memory leak when libcurl did gzip decompression |
| 1493 | of streams that had some parts (legitimately) missing. We now provide and use |
| 1494 | a proper cleanup function for the content encoding submodule. |
| 1495 | http://curl.haxx.se/mail/lib-2009-05/0092.html |
| 1496 | |
| 1497 | - Kamil Dudka provided a fix for libcurl-NSS reported by Michael Cronenworth |
| 1498 | at https://bugzilla.redhat.com/show_bug.cgi?id=453612#c12 |
| 1499 | |
| 1500 | If an incorrect password is given while loading a private key, libcurl ends |
| 1501 | up in an infinite loop consuming memory. The bug is critical. |
| 1502 | |
| 1503 | - I fixed the problem with doing NTLM, POST and then following a 302 redirect, |
| 1504 | as reported by Ebenezer Ikonne (on curl-users) and Laurent Rabret (on |
| 1505 | curl-library). The transfer was mistakenly marked to get more data to send |
| 1506 | but since it didn't actually have that, it just hung there... |
| 1507 | |
| 1508 | Daniel Stenberg (10 May 2009) |
| 1509 | - Andre Guibert de Bruet correctly pointed out an over-alloc with one wasted |
| 1510 | byte in the digest code. |
| 1511 | |
| 1512 | Yang Tse (9 May 2009) |
| 1513 | - Removed DOS and TPF package's subdirectory Makefile.am, it was only used |
| 1514 | to include some files in the distribution tarball serving no other purpose. |
| 1515 | Files from the DOS and TPF subdirectories are now included in the EXTRA_DIST |
| 1516 | of the Makefile in the parent subdirectory. |
| 1517 | |
| 1518 | Yang Tse (8 May 2009) |
| 1519 | - Changed host name literal in several tests to one under the haxx.se domain. |
| 1520 | |
| 1521 | - Renamed vc6 workspace and project files to avoid filename clash when used |
| 1522 | for conversion to later VS versions. |
| 1523 | |
| 1524 | Daniel Stenberg (8 May 2009) |
| 1525 | - Constantine Sapuntzakis fixed bug report #2784055 |
| 1526 | (http://curl.haxx.se/bug/view.cgi?id=2784055) identifying a problem to |
| 1527 | connect to SOCKS proxies when using the multi interface. It turned out to |
| 1528 | almost not work at all previously. We need to wait for the TCP connect to |
| 1529 | be properly verified before doing the SOCKS magic. |
| 1530 | |
| 1531 | There's still a flaw in the FTP code for this. |
| 1532 | |
| 1533 | Daniel Stenberg (7 May 2009) |
| 1534 | - Made the SO_SNDBUF setting for the data connection socket for ftp uploads as |
| 1535 | well. See change 28 Apr 2009. |
| 1536 | |
| 1537 | Yang Tse (7 May 2009) |
| 1538 | - Fixed an issue affecting FTP transfers, introduced with the transfer.c |
| 1539 | patch committed May 4. |
| 1540 | |
| 1541 | Daniel Stenberg (7 May 2009) |
| 1542 | - Man page *roff problems fixed thanks to input from Colin Watson. Problems |
| 1543 | reported in the Debian package. |
| 1544 | |
| 1545 | - Vijay G filed bug report #2723236 |
| 1546 | (http://curl.haxx.se/bug/view.cgi?id=2723236) identifying a problem with |
| 1547 | libcurl's TFTP code and its lack of dealing with the OACK packet. |
| 1548 | |
| 1549 | Yang Tse (5 May 2009) |
| 1550 | - Fixed the --ftp-port address of test #251 to the CLIENTIP address, and |
| 1551 | reverted the change affecting test suite harness committed 4 May. |
| 1552 | |
| 1553 | Daniel Stenberg (5 May 2009) |
| 1554 | - Inspired by Michael Smith's session id fix for OpenSSL, I did the |
| 1555 | corresponding fix in the GnuTLS code: make sure to store the new session id |
| 1556 | in case the previous re-used one is rejected. |
| 1557 | |
| 1558 | Daniel Stenberg (4 May 2009) |
| 1559 | - Michael Smith posted bug report #2786255 |
| 1560 | (http://curl.haxx.se/bug/view.cgi?id=2786255) with a patch, identifying how |
| 1561 | libcurl did not deal with SSL session ids properly if the server rejected a |
| 1562 | re-use of one. Starting now, it will forget the rejected one and remember |
| 1563 | the new. This change was for OpenSSL only, it is likely that other SSL lib |
| 1564 | code needs similar fixes. |
| 1565 | |
| 1566 | Yang Tse (4 May 2009) |
| 1567 | - Applied David McCreedy's "transfer.c fixes for CURL_DO_LINEEND_CONV and |
| 1568 | non-ASCII platform HTTP requests" patch addressing two HTTP PUT problems: |
| 1569 | 1) On non-ASCII platforms not all of the protocol portions of the PUT are |
| 1570 | being translated to ASCII. 2) On all platforms the line endings of part of |
| 1571 | the protocol portions are mangled from CRLF to CRCRLF if data->set.crlf or |
| 1572 | data->set.prefer_ascii are set (depending on CURL_DO_LINEEND_CONV). |
| 1573 | |
| 1574 | - Applied David McCreedy's patch to fix test suite harness to allow test FTP |
| 1575 | server and client on different machines, providing FTP client address when |
| 1576 | running the FTP test server. |
| 1577 | |
| 1578 | Daniel Fandrich (3 May 2009) |
| 1579 | - Added and disabled test case 563 which shows KNOWN_BUGS #59. The bug |
| 1580 | report failed to mention that a proxy must be used to reproduce it. |
| 1581 | |
| 1582 | Yang Tse (2 May 2009) |
| 1583 | - Use a build-time configured curl_socklen_t data type instead of socklen_t. |
| 1584 | |
| 1585 | Yang Tse (1 May 2009) |
| 1586 | - Applied David McCreedy's patches "TPF-platform specific changes to various |
| 1587 | files" and "http.c fix to Curl_proxyCONNECT for non-ASCII platforms", the |
| 1588 | former with minor edits. |
| 1589 | |
| 1590 | Daniel Stenberg (30 Apr 2009) |
| 1591 | - I was going to fix issue #59 in KNOWN_BUGS |
| 1592 | |
| 1593 | If the CURLOPT_PORT option is used on an FTP URL like |
| 1594 | "ftp://example.com/file;type=A" the ";type=A" is stripped off. |
| 1595 | |
| 1596 | I added test case 562 to verify, only to find out that I couldn't repeat |
| 1597 | this bug so I hereby consider it not a bug anymore! |
| 1598 | |
| 1599 | Daniel Stenberg (29 Apr 2009) |
| 1600 | - Based on bug report #2723219 (http://curl.haxx.se/bug/view.cgi?id=2723219) |
| 1601 | I've now made TFTP "connections" not being kept for re-use within libcurl. |
| 1602 | TFTP is UDP-based so the benefit was really low (if even existing) to begin |
| 1603 | with so instead of tracking down to fix this problem we instead removed the |
| 1604 | re-use. I also enabled test case 1099 that I wrote a few days ago to verify |
| 1605 | that this change fixes the reported problem. |
| 1606 | |
| 1607 | Daniel Stenberg (28 Apr 2009) |
| 1608 | - Constantine Sapuntzakis filed bug report #2783090 |
| 1609 | (http://curl.haxx.se/bug/view.cgi?id=2783090) pointing out that on windows |
| 1610 | we need to grow the SO_SNDBUF buffer somewhat to get really good upload |
| 1611 | speeds. http://support.microsoft.com/kb/823764 has the details. Friends |
| 1612 | confirmed that simply adding 32 to CURL_MAX_WRITE_SIZE is enough. |
| 1613 | |
| 1614 | - Bug report #2709004 (http://curl.haxx.se/bug/view.cgi?id=2709004) by Tim |
| 1615 | Chen pointed out how curl couldn't upload with resume when reading from a |
| 1616 | pipe. |
| 1617 | |
| 1618 | This ended up with the introduction of a new return code for the |
| 1619 | CURLOPT_SEEKFUNCTION callback that basically says that the seek failed but |
| 1620 | that libcurl may try to resolve the situation anyway. In our case this means |
| 1621 | libcurl will attempt to instead read that much data from the stream instead |
| 1622 | of seeking and that way curl can now upload with resume when data is read |
| 1623 | from a stream! |
| 1624 | |
| 1625 | Daniel Stenberg (26 Apr 2009) |
| 1626 | - Bug report #2779733 (http://curl.haxx.se/bug/view.cgi?id=2779733) by Sven |
| 1627 | Wegener pointed out that CURLINFO_APPCONNECT_TIME didn't work with the multi |
| 1628 | interface and provided a patch that fixed the problem! |
| 1629 | |
| 1630 | Daniel Stenberg (24 Apr 2009) |
| 1631 | - Kamil Dudka fixed another NSS-related leak when client certs were used. |
| 1632 | |
| 1633 | - Bug report #2779245 (http://curl.haxx.se/bug/view.cgi?id=2779245) by Rainer |
| 1634 | Koenig pointed out that the man page didn't tell that the *_proxy |
| 1635 | environment variables can be specified lower case or UPPER CASE and the |
| 1636 | lower case takes precedence, |
| 1637 | |
| 1638 | Daniel Fandrich (21 Apr 2009) |
| 1639 | - Added new libcurl source files to Amiga, RiscOS and VC6 build files. |
| 1640 | |
| 1641 | Yang Tse (21 Apr 2009) |
| 1642 | - Moved potential inclusion of system's malloc.h and memory.h header files to |
| 1643 | setup_once.h. Inclusion of each header file is based on the definition of |
| 1644 | NEED_MALLOC_H and NEED_MEMORY_H respectively. |
| 1645 | |
| 1646 | Renamed libcurl's memory.h to curl_memory.h |
| 1647 | |
| 1648 | Daniel Stenberg (20 Apr 2009) |
| 1649 | - Leanic Lefever reported a crash and did some detailed research on why and |
| 1650 | how it occurs (http://curl.haxx.se/mail/lib-2009-04/0289.html). The |
| 1651 | conclusion was that if an error is detected and Curl_done() is called for |
| 1652 | the connection, ftp_done() could at times return another error code that |
| 1653 | then would take precedence and that new code confused existing logic that |
| 1654 | works for the first error code (CURLE_SEND_ERROR) only. |
| 1655 | |
| 1656 | - Gisle Vanem noticed that --libtool would produce bogus strings at times for |
| 1657 | OBJECTPOINT options. Now we've introduced a new function - my_setopt_str - |
| 1658 | within the app for setting plain string options to avoid the risk of this |
| 1659 | mistake happening. |
| 1660 | |
| 1661 | Daniel Stenberg (17 Apr 2009) |
| 1662 | - Pramod Sharma reported and tracked down a bug when doing FTP over a HTTP |
| 1663 | proxy. libcurl would then wrongly close the connection after each |
| 1664 | request. In his case it had the weird side-effect that it killed NTLM auth |
| 1665 | for the proxy causing an inifinite loop! |
| 1666 | |
| 1667 | I added test case 1098 to verify this fix. The test case does however not |
| 1668 | properly verify that the transfers are done persistently - as I couldn't |
| 1669 | think of a clever way to achieve it right now - but you need to read the |
| 1670 | stderr output after a test run to see that it truly did the right thing. |
| 1671 | |
| 1672 | Daniel Stenberg (13 Apr 2009) |
| 1673 | - bug report #2727981 (http://curl.haxx.se/bug/view.cgi?id=2727981) by Martin |
| 1674 | Storsjö pointed out how setting CURLOPT_NOBODY to 0 could be downright |
| 1675 | confusing as it set the method to either GET or HEAD. The example he showed |
| 1676 | looked like: |
| 1677 | |
| 1678 | curl_easy_setopt(curl, CURLOPT_PUT, 1); |
| 1679 | curl_easy_setopt(curl, CURLOPT_NOBODY, 0); |
| 1680 | |
| 1681 | The new way doesn't alter the method until the request is about to start. If |
| 1682 | CURLOPT_NOBODY is then 1 the HTTP request will be HEAD. If CURLOPT_NOBODY is |
| 1683 | 0 and the request happens to have been set to HEAD, it will then instead be |
| 1684 | set to GET. I believe this will be less surprising to users, and hopefully |
| 1685 | not hit any existing users badly. |
| 1686 | |
| 1687 | - Toshio Kuratomi reported a memory leak problem with libcurl+NSS that turned |
| 1688 | out to be leaking cacerts. Kamil Dudka helped me complete the fix. The issue |
| 1689 | is found in Redhat's bug tracker: |
| 1690 | https://bugzilla.redhat.com/show_bug.cgi?id=453612 |
| 1691 | |
| 1692 | There are still memory leaks present, but they seem to have other reasons. |
| 1693 | |
| 1694 | Daniel Fandrich (11 Apr 2009) |
| 1695 | - Added new libcurl source files to Symbian OS build files. |
| 1696 | - Improved Symbian support for SSL. |
| 1697 | |
| 1698 | Yang Tse (10 Apr 2009) |
| 1699 | - Daniel Johnson improved the MacOSX-Framework shell script to now perform all |
| 1700 | the steps required to build a Mac OS X four way fat ppc/i386/ppc64/x86_64 |
| 1701 | libcurl.framework. Four way fat framework requires OS X 10.5 SDK or later. |
| 1702 | |
| 1703 | Yang Tse (8 Apr 2009) |
| 1704 | - Removed Sun compilers preprocessor block from curlbuild.h.dist, this also |
| 1705 | removes it from the curlbuild.h file originally distributed by the cURL |
| 1706 | project as this file is intended for systems not capable of running the |
| 1707 | configure script. For those who have been building curl out of the source |
| 1708 | code curl distribution tarball provided by curl.haxx.se the change implies |
| 1709 | nothing. Previous change in this area committed 2 Apr becomes irrelevant. |
| 1710 | |
| 1711 | Daniel Stenberg (6 Apr 2009) |
| 1712 | - I clarified in the docs that CURLOPT_SEEKFUNCTION should return 0 on success |
| 1713 | and 1 on fatal errors. Previously it only mentioned non-zero on fatal |
| 1714 | errors. This is a slight change in meaning, but it follows what we've done |
| 1715 | elsewhere before and it opens up for LOTS of more useful return codes |
| 1716 | whenever we can think of them... |
| 1717 | |
| 1718 | Yang Tse (2 Apr 2009) |
| 1719 | - Fix curl_off_t definition for builds done using Sun compilers and a |
| 1720 | non-configured libcurl. In this case curl_off_t data type was gated |
| 1721 | to the off_t data type which depends on the _FILE_OFFSET_BITS. This |
| 1722 | configuration is exactly the unwanted configuration for our curl_off_t |
| 1723 | data type which must not depend on such setting. This breaks ABI for |
| 1724 | libcurl libraries built with Sun compilers which were built without |
| 1725 | having run the configure script with _FILE_OFFSET_BITS different than |
| 1726 | 64 and using the ILP32 data model. |
| 1727 | |
| 1728 | Daniel Stenberg (1 Apr 2009) |
| 1729 | - Andre Guibert de Bruet fixed a NULL pointer use in an infof() call if a |
| 1730 | strdup() call failed. |
| 1731 | |
| 1732 | Daniel Fandrich (31 Mar 2009) |
| 1733 | - Properly return an error code in curl_easy_recv (reported by Jim Freeman). |
| 1734 | |
| 1735 | Daniel Stenberg (18 Mar 2009) |
| 1736 | - Kamil Dudka brought a patch that enables 6 additional crypto algorithms when |
| 1737 | NSS is used. These ciphers were added in NSS 3.4 and require to be enabled |
| 1738 | explicitly. |
| 1739 | |
| 1740 | Daniel Stenberg (13 Mar 2009) |
| 1741 | - Use libssh2_version() to present the libssh2 version in case the libssh2 |
| 1742 | library is found to support it. |
| 1743 | |
| 1744 | Yang Tse (12 Mar 2009) |
| 1745 | - Added missing Curl_read() return code checking in TELNET transfers. |
| 1746 | |
| 1747 | - Pierre Brico found and fixed TELNET transfers not being aborted upon |
| 1748 | a write callback failure. |
| 1749 | |
| 1750 | Daniel Stenberg (11 Mar 2009) |
| 1751 | - Kamil Dudka made the curl tool properly call curl_global_init() before any |
| 1752 | other libcurl function. |
| 1753 | |
| 1754 | Yang Tse (11 Mar 2009) |
| 1755 | - Added missing TELNET timeout support for Windows builds. This issue was |
| 1756 | reported by Pierre Brico. |
| 1757 | |
| 1758 | Daniel Stenberg (9 Mar 2009) |
| 1759 | - Frank Hempel found out a bug and provided the fix: |
| 1760 | |
| 1761 | curl_easy_duphandle did not necessarily duplicate the CURLOPT_COOKIEFILE |
| 1762 | option. It only enabled the cookie engine in the destination handle if |
| 1763 | data->cookies is not NULL (where data is the source handle). In case of a |
| 1764 | newly initialized handle which just had the cookie support enabled by a |
| 1765 | curl_easy_setopt(handle, CURL_COOKIEFILE, "")-call, handle->cookies was |
| 1766 | still NULL because the setopt-call only appends the value to |
| 1767 | data->change.cookielist, hence duplicating this handle would not have the |
| 1768 | cookie engine switched on. |
| 1769 | |
| 1770 | We also concluded that the slist-functionality would be suitable for being |
| 1771 | put in its own module rather than simply hanging out in lib/sendf.c so I |
| 1772 | created lib/slist.[ch] for them. |
| 1773 | |
| 1774 | - Andreas Farber made the 'buildconf' script check for the presence of m4 |
| 1775 | scripts to make it detect a bad checkout earlier. People with older |
| 1776 | checkouts who don't do cvs update with the -d option won't get the new dirs |
| 1777 | and then will get funny outputs that can be a bit hard to understand and |
| 1778 | fix. |
| 1779 | |
| 1780 | Daniel Stenberg (8 Mar 2009) |
| 1781 | - Andre Guibert de Bruet found and fixed a code segment in ssluse.c where the |
| 1782 | allocation of the memory BIO was not being properly checked. |
| 1783 | |
| 1784 | - Andre Guibert de Bruet fixed the gnutls-using code: There are a few places |
| 1785 | in the gnutls code where we were checking for negative values for errors, |
| 1786 | when the man pages state that GNUTLS_E_SUCCESS is returned on success and |
| 1787 | other values indicate error conditions. |
| 1788 | |
| 1789 | - Bill Egert pointed out (http://curl.haxx.se/bug/view.cgi?id=2671602) that |
| 1790 | curl didn't use sprintf() in a way that is documented to work in POSIX but |
| 1791 | since we use our own printf() code (from libcurl) that shouldn't be a |
| 1792 | problem. Nonetheless I modified the code to not rely on such particular |
| 1793 | features and to not cause further raised eyebrowse with no good reason. |
| 1794 | |
| 1795 | Daniel Fandrich (5 Mar 2009) |
| 1796 | - Expanded the security section of the libcurl-tutorial man page to cover |
| 1797 | more issues for authors to consider when writing robust libcurl-using |
| 1798 | applications. |
| 1799 | |
| 1800 | Yang Tse (5 Mar 2009) |
| 1801 | - Fixed NTLM authentication memory leak on SSPI enabled Windows builds. This |
| 1802 | issue was noticed by Chris Deidun. |
| 1803 | |
| 1804 | Daniel Fandrich (4 Mar 2009) |
| 1805 | - Fixed a problem with m4 quoting in the OpenSSL configure check reported |
| 1806 | by Daniel Johnson. |
| 1807 | |
| 1808 | Daniel Stenberg (3 Mar 2009) |
| 1809 | - David James brought a patch that make libcurl close (all) dead connections |
| 1810 | whenever you attempt to open a new connection. |
| 1811 | |
| 1812 | 1. After cleaning up a dead connection, "continue" instead of |
| 1813 | returning FALSE. This ensures that we clean up all dead connections, |
| 1814 | rather than just cleaning up the first dead connection. |
| 1815 | 2. Move up the cleanup for dead connections so that it occurs for |
| 1816 | all connections, rather than just the connections which have the same |
| 1817 | preferences as our current new connection. |
| 1818 | |
| 1819 | Version 7.19.4 (3 March 2009) |
| 1820 | |
| 1821 | Daniel Stenberg (3 Mar 2009) |
| 1822 | - David Kierznowski notified us about a security flaw |
| 1823 | (http://curl.haxx.se/docs/adv_20090303.html also known as CVE-2009-0037) in |
| 1824 | which previous libcurl versions (by design) can be tricked to access an |
| 1825 | arbitrary local/different file instead of a remote one when |
| 1826 | CURLOPT_FOLLOWLOCATION is enabled. This flaw is now fixed in this release |
| 1827 | together this the addition of two new setopt options for controlling this |
| 1828 | new behavior: |
| 1829 | |
| 1830 | o CURLOPT_REDIR_PROTOCOLS controls what protocols libcurl is allowed to |
| 1831 | follow to when CURLOPT_FOLLOWLOCATION is enabled. By default, this option |
| 1832 | excludes the FILE and SCP protocols and thus you nee to explicitly allow |
| 1833 | them in your app if you really want that behavior. |
| 1834 | |
| 1835 | o CURLOPT_PROTOCOLS controls what protocol(s) libcurl is allowed to fetch |
| 1836 | using the primary URL option. This is useful if you want to allow a user or |
| 1837 | other outsiders control what URL to pass to libcurl and yet not allow all |
| 1838 | protocols libcurl may have been built to support. |
| 1839 | |
| 1840 | Daniel Stenberg (27 Feb 2009) |
| 1841 | - Senthil Raja Velu reported a problem when CURLOPT_INTERFACE and |
| 1842 | CURLOPT_LOCALPORT were used together (the local port bind failed), and |
| 1843 | Markus Koetter provided the fix! |
| 1844 | |
| 1845 | Daniel Stenberg (25 Feb 2009) |
| 1846 | - As Daniel Fandrich figured out, we must do the GnuTLS initing in the |
| 1847 | curl_global_init() function to properly maintain the performing functions |
| 1848 | thread-safe. We've previously (28 April 2007) moved the init to a later time |
| 1849 | just to avoid it to fail very early when libgcrypt dislikes the situation, |
| 1850 | but that move was bad and the fix should rather be in libgcrypt or |
| 1851 | elsewhere. |
| 1852 | |
| 1853 | Daniel Stenberg (24 Feb 2009) |
| 1854 | - Brian J. Murrell found out that Negotiate proxy authentication didn't work. |
| 1855 | It happened because the code used the struct for server-based auth all the |
| 1856 | time for both proxy and server auth which of course was wrong. |
| 1857 | |
| 1858 | Daniel Stenberg (23 Feb 2009) |
| 1859 | - After a bug reported by James Cheng I've made curl_easy_getinfo() for |
| 1860 | CURLINFO_CONTENT_LENGTH_DOWNLOAD and CURLINFO_CONTENT_LENGTH_UPLOAD return |
| 1861 | -1 if the sizes aren't know. Previously these returned 0, make it impossible |
| 1862 | to detect the difference between actually zero and unknown. |
| 1863 | |
| 1864 | Yang Tse (23 Feb 2009) |
| 1865 | - Daniel Johnson provided a shell script that will perform all the steps needed |
| 1866 | to build a Mac OS X fat ppc/i386 or ppc64/x86_64 libcurl.framework |
| 1867 | |
| 1868 | Daniel Stenberg (23 Feb 2009) |
| 1869 | - I renamed everything in the windows builds files that used the name 'curllib' |
| 1870 | to the proper 'libcurl' as clearly this caused confusion. |
| 1871 | |
| 1872 | Yang Tse (20 Feb 2009) |
| 1873 | - Do not halt compilation when using VS2008 to build a Windows 2000 target. |
| 1874 | |
| 1875 | Daniel Stenberg (20 Feb 2009) |
| 1876 | - Linus Nielsen Feltzing reported and helped me repeat and fix a problem with |
| 1877 | FTP with the multi interface: when a transfer fails, like when aborted by a |
| 1878 | write callback, the control connection was wrongly closed and thus not |
| 1879 | re-used properly. |
| 1880 | |
| 1881 | This change is also an attempt to cleanup the code somewhat in this area, as |
| 1882 | now the FTP code attempts to keep (better) track on pending responses |
| 1883 | necessary to get read in ftp_done(). |
| 1884 | |
| 1885 | Daniel Stenberg (19 Feb 2009) |
| 1886 | - Patrik Thunstrom reported a problem and helped me repeat it. It turned out |
| 1887 | libcurl did a superfluous 1000ms wait when doing SFTP downloads! |
| 1888 | |
| 1889 | We read data with libssh2 while doing the "DO" operation for SFTP and then |
| 1890 | when we were about to start getting data for the actual file part, the |
| 1891 | "TRANSFER" part, we waited for socket action (in 1000ms) before doing a |
| 1892 | libssh2-read. But in this case libssh2 had already read and buffered the |
| 1893 | data so we ended up always just waiting 1000ms before we get working on the |
| 1894 | data! |
| 1895 | |
| 1896 | Patrick Monnerat (18 Feb 2009) |
| 1897 | - FTP downloads (i.e.: RETR) ending with code 550 now return error |
| 1898 | CURLE_REMOTE_FILE_NOT_FOUND instead of CURLE_FTP_COULDNT_RETR_FILE. |
| 1899 | |
| 1900 | Daniel Stenberg (17 Feb 2009) |
| 1901 | - Kamil Dudka made NSS-powered builds compile and run again! |
| 1902 | |
| 1903 | - A second follow-up change by Andre Guibert de Bruet to fix a related memory |
| 1904 | leak like that fixed on the 14th. When zlib returns failure, we need to |
| 1905 | cleanup properly before returning error. |
| 1906 | |
| 1907 | - CURLOPT_FTP_CREATE_MISSING_DIRS can now be set to 2 in addition to 1 for |
| 1908 | plain FTP connections, and it will then allow MKD to fail once and retry the |
| 1909 | CWD afterwards. This is especially useful if you're doing many simultanoes |
| 1910 | connections against the same server and they all have this option enabled, |
| 1911 | as then CWD may first fail but then another connection does MKD before this |
| 1912 | connection and thus MKD fails but trying CWD works! The numbers can |
| 1913 | (should?) now be set with the convenience enums now called |
| 1914 | CURLFTP_CREATE_DIR and CURLFTP_CREATE_DIR_RETRY. |
| 1915 | |
| 1916 | Tests has proven that if you're making an application that uploads a set of |
| 1917 | files to an ftp server, you will get a noticable gain in speed if you're |
| 1918 | using multiple connections and this option will be then be very useful. |
| 1919 | |
| 1920 | Daniel Stenberg (14 Feb 2009) |
| 1921 | - Andre Guibert de Bruet found and fixed a memory leak in the content encoding |
| 1922 | code, which could happen on libz errors. |
| 1923 | |
| 1924 | Daniel Fandrich (12 Feb 2009) |
| 1925 | - Added support for Digest and NTLM authentication using GnuTLS. |
| 1926 | |
| 1927 | Daniel Stenberg (11 Feb 2009) |
| 1928 | - CURLINFO_CONDITION_UNMET was added to allow an application to get to know if |
| 1929 | the condition in the previous request was unmet. This is typically a time |
| 1930 | condition set with CURLOPT_TIMECONDITION and was previously not possible to |
| 1931 | reliably figure out. From bug report #2565128 |
| 1932 | (http://curl.haxx.se/bug/view.cgi?id=2565128) filed by Jocelyn Jaubert. |
| 1933 | |
| 1934 | Daniel Fandrich (4 Feb 2009) |
| 1935 | - Don't add the standard /usr/lib or /usr/include paths to LDFLAGS and CPPFLAGS |
| 1936 | (respectively) when --with-ssl=/usr is used (patch based on FreeBSD). |
| 1937 | |
| 1938 | - Added an explicit buffer limit check in msdosify() (patch based on FreeBSD). |
| 1939 | This couldn't ever overflow in curl, but might if the code were used |
| 1940 | elsewhere or under different conditions. |
| 1941 | |
| 1942 | Daniel Stenberg (3 Feb 2009) |
| 1943 | - Hidemoto Nakada provided a small fix that makes it possible to get the |
| 1944 | CURLINFO_CONTENT_LENGTH_DOWNLOAD size from file:// "transfers" with |
| 1945 | CURLOPT_NOBODY set true. |
| 1946 | |
| 1947 | Daniel Stenberg (2 Feb 2009) |
| 1948 | - Patrick Scott found a rather large memory leak when using the multi |
| 1949 | interface and setting CURLMOPT_MAXCONNECTS to something less than the number |
| 1950 | of handles you add to the multi handle. All the connections that didn't fit |
| 1951 | in the cache would not be properly disconnected nor freed! |
| 1952 | |
| 1953 | - Craig A West brought us: libcurl now defaults to do CONNECT with HTTP |
| 1954 | version 1.1 instead of 1.0 like before. This change also introduces the new |
| 1955 | proxy type for libcurl called 'CURLPROXY_HTTP_1_0' that then allows apps to |
| 1956 | switch (back) to CONNECT 1.0 requests. The curl tool also got a --proxy1.0 |
| 1957 | option that works exactly like --proxy but sets CURLPROXY_HTTP_1_0. |
| 1958 | |
| 1959 | I updated all test cases cases that use CONNECT and I tried to do some using |
| 1960 | --proxy1.0 and some updated to do CONNECT 1.1 to get both versions run. |
| 1961 | |
| 1962 | Daniel Stenberg (31 Jan 2009) |
| 1963 | - When building with c-ares 1.6.1 (not yet released) or later and IPv6 support |
| 1964 | enabled, we can now take advantage of its brand new AF_UNSPEC support in |
| 1965 | ares_gethostbyname(). This makes test case 241 finally run fine for me with |
| 1966 | this setup since it now parses the "::1 ip6-localhost" line fine in my |
| 1967 | /etc/hosts file! |
| 1968 | |
| 1969 | Daniel Stenberg (30 Jan 2009) |
| 1970 | - Scott Cantor filed bug report #2550061 |
| 1971 | (http://curl.haxx.se/bug/view.cgi?id=2550061) mentioning that I failed to |
| 1972 | properly make sure that the VC9 makefiles got included in the latest |
| 1973 | release. I've now fixed the release script and verified it so next release |
| 1974 | will hopefully include them properly! |
| 1975 | |
| 1976 | Daniel Fandrich (30 Jan 2009) |
| 1977 | - Fixed --disable-proxy for FTP and SOCKS. Thanks to Daniel Egger for |
| 1978 | reporting. |
| 1979 | |
| 1980 | Yang Tse (29 Jan 2009) |
| 1981 | - Introduced curl_sspi.c and curl_sspi.h for the implementation of functions |
| 1982 | Curl_sspi_global_init() and Curl_sspi_global_cleanup() which previously were |
| 1983 | named Curl_ntlm_global_init() and Curl_ntlm_global_cleanup() in http_ntlm.c |
| 1984 | Also adjusted socks_sspi.c to remove the link-time dependency on the Windows |
| 1985 | SSPI library using it now in the same way as it was done in http_ntlm.c. |
| 1986 | |
| 1987 | Daniel Stenberg (28 Jan 2009) |
| 1988 | - Markus Moeller introduced two new options to libcurl: |
| 1989 | CURLOPT_SOCKS5_GSSAPI_SERVICE and CURLOPT_SOCKS5_GSSAPI_NEC to allow libcurl |
| 1990 | to do GSS-style authentication with SOCKS5 proxies. The curl tool got the |
| 1991 | options called --socks5-gssapi-service and --socks5-gssapi-nec to enable |
| 1992 | these. |
| 1993 | |
| 1994 | Daniel Stenberg (26 Jan 2009) |
| 1995 | - Chad Monroe provided the new CURLOPT_TFTP_BLKSIZE option that allows an app |
| 1996 | to set desired block size to use for TFTP transfers instead of the default |
| 1997 | 512 bytes. |
| 1998 | |
| 1999 | - The "-no_ticket" option was introduced in Openssl0.9.8j. It's a flag to |
| 2000 | disable "rfc4507bis session ticket support". rfc4507bis was later turned |
| 2001 | into the proper RFC5077 it seems: http://tools.ietf.org/html/rfc5077 |
| 2002 | |
| 2003 | The enabled extension concerns the session management. I wonder how often |
| 2004 | libcurl stops a connection and then resumes a TLS session. also, sending the |
| 2005 | session data is some overhead. .I suggest that you just use your proposed |
| 2006 | patch (which explicitly disables TICKET). |
| 2007 | |
| 2008 | If someone writes an application with libcurl and openssl who wants to |
| 2009 | enable the feature, one can do this in the SSL callback. |
| 2010 | |
| 2011 | Sharad Gupta brought this to my attention. Peter Sylvester helped me decide |
| 2012 | on the proper action. |
| 2013 | |
| 2014 | - Alexey Borzov filed bug report #2535504 |
| 2015 | (http://curl.haxx.se/bug/view.cgi?id=2535504) pointing out that realms with |
| 2016 | quoted quotation marks in HTTP Digest headers didn't work. I've now added |
| 2017 | test case 1095 that verifies my fix. |
| 2018 | |
| 2019 | - Craig A West brought CURLOPT_NOPROXY and the corresponding --noproxy option. |
| 2020 | They basically offer the same thing the NO_PROXY environment variable only |
| 2021 | offered previously: list a set of host names that shall not use the proxy |
| 2022 | even if one is specified. |
| 2023 | |
| 2024 | Daniel Fandrich (20 Jan 2009) |
| 2025 | - Call setlocale() for libtest tests to test the effects of locale-induced |
| 2026 | libc changes on libcurl. |
| 2027 | |
| 2028 | - Fixed a couple more locale-dependent toupper conversions, mainly for |
| 2029 | clarity. This does fix one problem that causes ;type=i FTP URLs |
| 2030 | to fail in the Turkish locale when CURLOPT_PROXY_TRANSFER_MODE is |
| 2031 | used (test case 561) |
| 2032 | |
| 2033 | - Added tests 561 and 1091 through 1094 to test various combinations |
| 2034 | of ;type= and ;mode= URLs that could potentially fail in the Turkish |
| 2035 | locale. |
| 2036 | |
| 2037 | Daniel Stenberg (20 Jan 2009) |
| 2038 | - Lisa Xu pointed out that the ssh.obj file was missing from the |
| 2039 | lib/Makefile.vc6 file (and thus from the vc8 and vc9 ones too). |
| 2040 | |
| 2041 | Version 7.19.3 (19 January 2009) |
| 2042 | |
| 2043 | Daniel Stenberg (16 Jan 2009) |
| 2044 | - Andrew de los Reyes fixed curlbuild.h for "generic" gcc builds on PPC, both |
| 2045 | 32 bit and 64 bit. |
| 2046 | |
| 2047 | Daniel Stenberg (15 Jan 2009) |
| 2048 | - Tim Ansell fixed a compiler warning in lib/cookie.c |
| 2049 | |
| 2050 | Daniel Stenberg (14 Jan 2009) |
| 2051 | - Grant Erickson fixed timeouts for TFTP such that specifying a |
| 2052 | connect-timeout, a max-time or both options work correctly and as expected |
| 2053 | by passing the correct boolean value to Curl_timeleft via the |
| 2054 | 'duringconnect' parameter. |
| 2055 | |
| 2056 | With this small change, curl TFTP now behaves as expected (and likely as |
| 2057 | originally-designed): |
| 2058 | |
| 2059 | 1) For non-existent or unreachable dotted IP addresses: |
| 2060 | |
| 2061 | a) With no options, follows the default curl 300s timeout... |
| 2062 | b) With --connect-timeout only, follows that value... |
| 2063 | c) With --max-time only, follows that value... |
| 2064 | d) With both --connect-timeout and --max-time, follows the smaller value... |
| 2065 | |
| 2066 | and times out with a "curl: (7) Couldn't connect to server" error. |
| 2067 | |
| 2068 | 2) For transfers to/from a valid host: |
| 2069 | |
| 2070 | a) With no options, follows default curl 300s timeout for the |
| 2071 | first XRQ/DATA/ACK transaction and the default TFTP 3600s |
| 2072 | timeout for the remainder of the transfer... |
| 2073 | |
| 2074 | b) With --connect-time only, follows that value for the |
| 2075 | first XRQ/DATA/ACK transaction and the default TFTP 3600s |
| 2076 | timeout for the remainder of the transfer... |
| 2077 | |
| 2078 | c) With --max-time only, follows that value for the first |
| 2079 | XRQ/DATA/ACK transaction and for the remainder of the |
| 2080 | transfer... |
| 2081 | |
| 2082 | d) With both --connect-timeout and --max-time, follows the former |
| 2083 | for the first XRQ/DATA/ACK transaction and the latter for the |
| 2084 | remainder of the transfer... |
| 2085 | |
| 2086 | and times out with a "curl: (28) Timeout was reached" error as |
| 2087 | appropriate. |
| 2088 | |
| 2089 | Daniel Stenberg (13 Jan 2009) |
| 2090 | - Michael Wallner fixed a NULL pointer deref when calling |
| 2091 | curl_easy_setup(curl, CURLOPT_COOKIELIST, "SESS") on a CURL handle with no |
| 2092 | cookies data. |
| 2093 | |
| 2094 | - Stefan Teleman brought a patch to fix the default curlbuild.h file for the |
| 2095 | SunPro compilers. |
| 2096 | |
| 2097 | Daniel Stenberg (12 Jan 2009) |
| 2098 | - Based on bug report #2498665 (http://curl.haxx.se/bug/view.cgi?id=2498665) |
| 2099 | by Daniel Black, I've now added magic to the configure script that makes it |
| 2100 | use pkg-config to detect gnutls details as well if the existing method |
| 2101 | (using libgnutls-config) fails. While doing this, I cleaned up and unified |
| 2102 | the pkg-config usage when detecting openssl and nss as well. |
| 2103 | |
| 2104 | Daniel Stenberg (11 Jan 2009) |
| 2105 | - Karl Moerder brought the patch that creates vc9 Makefiles, and I made |
| 2106 | 'maketgz' now use the actual makefile targets to do the VC8 and VC9 |
| 2107 | makefiles. |
| 2108 | |
| 2109 | Daniel Stenberg (10 Jan 2009) |
| 2110 | - Emil Romanus fixed: |
| 2111 | |
| 2112 | When using the multi interface over HTTP and the server returns a Location |
| 2113 | header, the running easy handle will get stuck in the CURLM_STATE_PERFORM |
| 2114 | state, leaving the external event loop stuck waiting for data from the |
| 2115 | ingoing socket (when using the curl_multi_socket_action stuff). While this |
| 2116 | bug was pretty hard to find, it seems to require only a one-line fix. The |
| 2117 | break statement on line 1374 in multi.c caused the function to skip the call |
| 2118 | to multistate(). |
| 2119 | |
| 2120 | How to reproduce this bug? Well, that's another question. evhiperfifo.c in |
| 2121 | the examples directory chokes on this bug only _sometimes_, probably |
| 2122 | depending on how fast the URLs are added. One way of testing the bug out is |
| 2123 | writing to hiper.fifo from more than one source at the same time. |
| 2124 | |
| 2125 | Daniel Fandrich (7 Jan 2009) |
| 2126 | - Unified much of the SessionHandle initialization done in Curl_open() and |
| 2127 | curl_easy_reset() by creating Curl_init_userdefined(). This had the side |
| 2128 | effect of fixing curl_easy_reset() so it now also resets |
| 2129 | CURLOPT_FTP_FILEMETHOD and CURLOPT_SSL_SESSIONID_CACHE |
| 2130 | |
| 2131 | Daniel Stenberg (7 Jan 2009) |
| 2132 | - Rob Crittenden did once again provide an NSS update: |
| 2133 | |
| 2134 | I have to jump through a few hoops now with the NSS library initialization |
| 2135 | since another part of an application may have already initialized NSS by the |
| 2136 | time Curl gets invoked. This patch is more careful to only shutdown the NSS |
| 2137 | library if Curl did the initialization. |
| 2138 | |
| 2139 | It also adds in a bit of code to set the default ciphers if the app that |
| 2140 | call NSS_Init* did not call NSS_SetDomesticPolicy() or set specific |
| 2141 | ciphers. One might argue that this lets other application developers get |
| 2142 | lazy and/or they aren't using the NSS API correctly, and you'd be right. |
| 2143 | But still, this will avoid terribly difficult-to-trace crashes and is |
| 2144 | generally helpful. |
| 2145 | |
| 2146 | Daniel Stenberg (1 Jan 2009) |
| 2147 | - 'reconf' is removed since we rather have users use 'buildconf' |
| 2148 | |
| 2149 | Daniel Stenberg (31 Dec 2008) |
| 2150 | - Bas Mevissen reported http://curl.haxx.se/bug/view.cgi?id=2479030 pointing |
| 2151 | out that 'reconf' didn't properly point out the m4 subdirectory when running |
| 2152 | aclocal. |
| 2153 | |
| 2154 | Daniel Stenberg (29 Dec 2008) |
| 2155 | - Phil Lisiecki filed bug report #2413067 |
| 2156 | (http://curl.haxx.se/bug/view.cgi?id=2413067) that identified a problem that |
| 2157 | would cause libcurl to mark a DNS cache entry "in use" eternally if the |
| 2158 | subsequence TCP connect failed. It would thus never get pruned and refreshed |
| 2159 | as it should've been. |
| 2160 | |
| 2161 | Phil provided his own patch to this problem that while it seemed to work |
| 2162 | wasn't complete and thus I wrote my own fix to the problem. |
| 2163 | |
| 2164 | Daniel Stenberg (28 Dec 2008) |
| 2165 | - Peter Korsgaard fixed building libcurl with "configure --with-ssl |
| 2166 | --disable-verbose". |
| 2167 | |
| 2168 | - Anthony Bryan fixed more language and spelling flaws in man pages. |
| 2169 | |
| 2170 | Daniel Stenberg (22 Dec 2008) |
| 2171 | - Given a recent enough libssh2, libcurl can now seek/resume with SFTP even |
| 2172 | on file indexes beyond 2 or 4GB. |
| 2173 | |
| 2174 | - Anthony Bryan provided a set of patches that cleaned up manual language, |
| 2175 | corrected spellings and more. |
| 2176 | |
| 2177 | Daniel Stenberg (20 Dec 2008) |
| 2178 | - Igor Novoseltsev fixed a bad situation for the multi_socket() API when doing |
| 2179 | pipelining, as libcurl could then easily get confused and A) work on the |
| 2180 | handle that was not "first in queue" on a pipeline, or even B) tell the app |
| 2181 | to REMOVE a socket while it was in use by a second handle in a pipeline. Both |
| 2182 | errors caused hanging or stalling applications. |
| 2183 | |
| 2184 | Daniel Stenberg (19 Dec 2008) |
| 2185 | - curl_multi_timeout() could return a timeout value of 0 even though nothing |
| 2186 | was actually ready to get done, as the internal time resolution is higher |
| 2187 | than the returned millisecond timer. Therefore it could cause applications |
| 2188 | running on fast processors to do short bursts of busy-loops. |
| 2189 | curl_multi_timeout() will now only return 0 if the timeout is actually |
| 2190 | alreay triggered. |
| 2191 | |
| 2192 | - Using the libssh2 0.19 function libssh2_session_block_directions(), libcurl |
| 2193 | now has an improved ability to do right when the multi interface (both |
| 2194 | "regular" and multi_socket) is used for SCP and SFTP transfers. This should |
| 2195 | result in (much) less busy-loop situations and thus less CPU usage with no |
| 2196 | speed loss. |
| 2197 | |
| 2198 | Daniel Stenberg (17 Dec 2008) |
| 2199 | - SCP and SFTP with the multi interface had the same flaw: the 'DONE' |
| 2200 | operation didn't complete properly if the EAGAIN equivalent was returned but |
| 2201 | libcurl would simply continue with a half-completed close operation |
| 2202 | performed. This ruined persistent connection re-use and cause some |
| 2203 | SSH-protocol errors in general. The correction is unfortunately adding a |
| 2204 | blocking function - doing it entirely non-blocking should be considered for |
| 2205 | a better fix. |
| 2206 | |
| 2207 | Gisle Vanem (16 Dec 2008) |
| 2208 | - Added the possibility to use the Watt-32 tcp/ip stack under Windows. |
| 2209 | The change simply involved adding a USE_WATT32 section in the |
| 2210 | config-win32.h files (under ./lib and ./src). This section disables |
| 2211 | the use of any Winsock headers. |
| 2212 | |
| 2213 | Daniel Stenberg (16 Dec 2008) |
| 2214 | - libssh2_sftp_last_error() was wrongly used at some places in libcurl which |
| 2215 | made libcurl sometimes not properly abort problematic SFTP transfers. |
| 2216 | |
| 2217 | Daniel Stenberg (12 Dec 2008) |
| 2218 | - More work with Igor Novoseltsev to first fix the remaining stuff for |
| 2219 | removing easy handles from multi handles when the easy handle is/was within |
| 2220 | a HTTP pipeline. His bug report #2351653 |
| 2221 | (http://curl.haxx.se/bug/view.cgi?id=2351653) was also related and was |
| 2222 | eventually fixed by a patch by Igor himself. |
| 2223 | |
| 2224 | Yang Tse (12 Dec 2008) |
| 2225 | - Patrick Monnerat fixed a build regression, introduced in 7.19.2, affecting |
| 2226 | OS/400 compilations with IPv6 enabled. |
| 2227 | |
| 2228 | Daniel Stenberg (12 Dec 2008) |
| 2229 | - Mark Karpeles filed bug report #2416182 titled "crash in ConnectionExists |
| 2230 | when using duphandle+curl_mutli" |
| 2231 | (http://curl.haxx.se/bug/view.cgi?id=2416182) which showed that |
| 2232 | curl_easy_duphandle() wrongly also copied the pointer to the connection |
| 2233 | cache, which was plain wrong and caused a segfault if the handle would be |
| 2234 | used in a different multi handle than the handle it was duplicated from. |
| 2235 | |
| 2236 | Daniel Stenberg (11 Dec 2008) |
| 2237 | - Keshav Krity found out that libcurl failed to deal with dotted IPv6 |
| 2238 | addresses if they were very long (>39 letters) due to a too strict address |
| 2239 | validity parser. It now accepts addresses up to 45 bytes long. |
| 2240 | |
| 2241 | Daniel Stenberg (11 Dec 2008) |
| 2242 | - Internet Explorer had a broken HTTP digest authentication before v7 and |
| 2243 | there are servers "out there" that relies on the client doing this broken |
| 2244 | Digest authentication. Apache even comes with an option to work with such |
| 2245 | broken clients. |
| 2246 | |
| 2247 | The difference is only for URLs that contain a query-part (a '?'-letter and |
| 2248 | text to the right of it). |
| 2249 | |
| 2250 | libcurl now supports this quirk, and you enable it by setting the |
| 2251 | CURLAUTH_DIGEST_IE bit in the bitmask you pass to the CURLOPT_HTTPAUTH or |
| 2252 | CURLOPT_PROXYAUTH options. They are thus individually controlled to server |
| 2253 | and proxy. |
| 2254 | |
| 2255 | (note that there's no way to activate this with the curl tool yet) |
| 2256 | |
| 2257 | Daniel Fandrich (9 Dec 2008) |
| 2258 | - Added test cases 1089 and 1090 to test --write-out after a redirect to |
| 2259 | test a report that the size didn't work, but these test cases pass. |
| 2260 | |
| 2261 | - Documented CURLOPT_CONNECT_ONLY as being useful only on HTTP URLs. |
| 2262 | |
| 2263 | Daniel Stenberg (9 Dec 2008) |
| 2264 | - Ken Hirsch simplified how libcurl does FTPS: now it doesn't assume any |
| 2265 | particular state for the control connection like it did before for implicit |
| 2266 | FTPS (libcurl assumed such control connections to be encrypted while some |
| 2267 | FTPS servers such as FileZilla assumes such connections to be clear |
| 2268 | mode). Use the CURLOPT_USE_SSL option to set your desired level. |
| 2269 | |
| 2270 | Daniel Stenberg (8 Dec 2008) |
| 2271 | - Fred Machado posted about a weird FTP problem on the curl-users list and when |
| 2272 | researching it, it turned out he got a 550 response back from a SIZE command |
| 2273 | and then I fell over the text in RFC3659 that says: |
| 2274 | |
| 2275 | The presence of the 550 error response to a SIZE command MUST NOT be taken |
| 2276 | by the client as an indication that the file cannot be transferred in the |
| 2277 | current MODE and TYPE. |
| 2278 | |
| 2279 | In other words: the change I did on September 30th 2008 and that has been |
| 2280 | included in the last two releases were a regression and a bad idea. We MUST |
| 2281 | NOT take a 550 response from SIZE as a hint that the file doesn't exist. |
| 2282 | |
| 2283 | - Christian Krause filed bug #2221237 |
| 2284 | (http://curl.haxx.se/bug/view.cgi?id=2221237) that identified an infinite |
| 2285 | loop during GSS authentication given some specific conditions. With his |
| 2286 | patience and great feedback I managed to narrow down the problem and |
| 2287 | eventually fix it although I can't test any of this myself! |
| 2288 | |
| 2289 | Daniel Fandrich (3 Dec 2008) |
| 2290 | - Fixed the getifaddrs version of Curl_if2ip to work on systems without IPv6 |
| 2291 | support (e.g. Minix) |
| 2292 | |
| 2293 | Daniel Stenberg (3 Dec 2008) |
| 2294 | - Igor Novoseltsev filed bug #2351645 |
| 2295 | (http://curl.haxx.se/bug/view.cgi?id=2351645) that identified a problem with |
| 2296 | the multi interface that occured if you removed an easy handle while in |
| 2297 | progress and the handle was used in a HTTP pipeline. |
| 2298 | |
| 2299 | - Pawel Kierski pointed out a mistake in the cookie code that could lead to a |
| 2300 | bad fclose() after a fatal error had occured. |
| 2301 | (http://curl.haxx.se/bug/view.cgi?id=2382219) |
| 2302 | |
| 2303 | Daniel Fandrich (25 Nov 2008) |
| 2304 | - If a HTTP request is Basic and num is already >=1000, the HTTP test |
| 2305 | server adds 1 to num to get the data section to return. This allows |
| 2306 | testing authentication negotiations using the Basic authentication |
| 2307 | method. |
| 2308 | |
| 2309 | - Added tests 1087 and 1088 to test Basic authentication on a redirect |
| 2310 | with and without --location-trusted |
| 2311 | |
| 2312 | Daniel Stenberg (24 Nov 2008) |
| 2313 | - Based on a patch by Vlad Grachov, libcurl now uses a new libssh2 0.19 |
| 2314 | function when built to support SCP and SFTP that helps the library to know |
| 2315 | in which direction a particular libssh2 operation would return EAGAIN so |
| 2316 | that libcurl knows what socket conditions to wait for before trying the |
| 2317 | function call again. Previously (and still when using libssh2 0.18 or |
| 2318 | earlier), libcurl will busy-loop in this situation when the easy interface |
| 2319 | is used! |
| 2320 | |
| 2321 | Daniel Fandrich (20 Nov 2008) |
| 2322 | - Automatically detect OpenBSD's CA cert bundle. |
| 2323 | |
| 2324 | Daniel Stenberg (19 Nov 2008) |
| 2325 | - I removed the default use of "Pragma: no-cache" from libcurl when a proxy is |
| 2326 | used. It has been used since forever but it was never a good idea to use |
| 2327 | unless explicitly asked for. |
| 2328 | |
| 2329 | - Josef Wolf's extension that allows a $TESTDIR/gdbinit$testnum file that when |
| 2330 | you use runtests.pl -g, will be sourced by gdb to allow additional fancy or |
| 2331 | whatever you see fit |
| 2332 | |
| 2333 | - Christian Krause reported and fixed a memory leak that would occur with HTTP |
| 2334 | GSS/kerberos authentication (http://curl.haxx.se/bug/view.cgi?id=2284386) |
| 2335 | |
| 2336 | - Andreas Wurf and Markus Koetter helped me analyze a problem that Andreas got |
| 2337 | when uploading files to a single FTP server using multiple easy handle |
| 2338 | handles with the multi interface. Occasionally a handle would stall in |
| 2339 | mysterious ways. |
| 2340 | |
| 2341 | The problem turned out to be a side-effect of the ConnectionExists() |
| 2342 | function's eagerness to re-use a handle for HTTP pipelining so it would |
| 2343 | select it even if already being in use, due to an inadequate check for its |
| 2344 | chances of being used for pipelnining. |
| 2345 | |
| 2346 | Daniel Fandrich (17 Nov 2008) |
| 2347 | - Added more compiler warning options for gcc 4.3 |
| 2348 | |
| 2349 | Yang Tse (17 Nov 2008) |
| 2350 | - Fix a remaining problem in the inet_pton() runtime configure check. And |
| 2351 | fix internal Curl_inet_pton() failures to reject certain malformed literals. |
| 2352 | |
| 2353 | - Make configure script check if ioctl with the SIOCGIFADDR command can be |
| 2354 | used, and define HAVE_IOCTL_SIOCGIFADDR if appropriate. |
| 2355 | |
| 2356 | Daniel Stenberg (16 Nov 2008) |
| 2357 | - Christian Krause fixed a build failure when building with gss support |
| 2358 | enabled and FTP disabled. |
| 2359 | |
| 2360 | - Added check for NULL returns from strdup() in src/main.c and lib/formdata.c |
| 2361 | - reported by Jim Meyering also prevent buffer overflow on MSDOS when you do |
| 2362 | for example -O on a url with a file name part longer than PATH_MAX letters |
| 2363 | |
| 2364 | - lib/nss.c fixes based on the report by Jim Meyering: I went over and added |
| 2365 | checks for return codes for all calls to malloc and strdup that were |
| 2366 | missing. I also changed a few malloc(13) to use arrays on the stack and a |
| 2367 | few malloc(PATH_MAX) to instead use aprintf() to lower memory use. |
| 2368 | |
| 2369 | - I fixed a memory leak in Curl_nss_connect() when CURLOPT_ISSUERCERT is |
| 2370 | in use. |
| 2371 | |
| 2372 | Daniel Fandrich (14 Nov 2008) |
| 2373 | - Added .xml as one of the few common file extensions known by the multipart |
| 2374 | form generator. |
| 2375 | |
| 2376 | - Added some #ifdefs around header files and change the EAGAIN test to |
| 2377 | fix compilation on Cell (reported by Jeff Curley). |
| 2378 | |
| 2379 | Yang Tse (14 Nov 2008) |
| 2380 | - Fixed several configure script issues affecting checks for inet_ntoa_r(), |
| 2381 | inet_ntop(), inet_pton(), getifaddrs(), fcntl() and getaddrinfo(). |
| 2382 | |
| 2383 | Yang Tse (13 Nov 2008) |
| 2384 | - Refactored configure script detection of functions used to set sockets into |
| 2385 | non-blocking mode, and decouple function detection from function capability. |
| 2386 | |
| 2387 | Version 7.19.2 (13 November 2008) |
| 2388 | |
| 2389 | Michal Marek (13 Nov 2008) |
| 2390 | - Fixed a potential data loss in Curl_client_write() when the transfer is |
| 2391 | paused. |
| 2392 | |
| 2393 | Daniel Stenberg (11 Nov 2008) |
| 2394 | - Rainer Canavan filed bug #2255627 |
| 2395 | (http://curl.haxx.se/bug/view.cgi?id=2255627) which pointed out that a |
| 2396 | program using libcurl's multi interface to download a HTTPS page with a |
| 2397 | libcurl built powered by OpenSSL, would easily get silly and instead hand |
| 2398 | over SSL details as data instead of the actual HTTP headers and body. This |
| 2399 | happened because libcurl would consider the connection handshake done too |
| 2400 | early. This problem was introduced at September 22nd 2008 with my fix of the |
| 2401 | bug #2107377 |
| 2402 | |
| 2403 | The correct fix is now instead done within the GnuTLS-handling code, as both |
| 2404 | the OpenSSL and the NSS code already deal with this situation in similar |
| 2405 | fashion. I added test case 560 in an attempt to verify this fix, but |
| 2406 | unfortunately it didn't trigger it even before this fix! |
| 2407 | |
| 2408 | Yang Tse (11 Nov 2008) |
| 2409 | - Related with bug #2230535 (http://curl.haxx.se/bug/view.cgi?id=2230535) |
| 2410 | Daniel Fandrich noticed that curl_addrinfo was also missing in the build |
| 2411 | process of other four non-configure platforms. Added now. |
| 2412 | |
| 2413 | Daniel Fandrich (7 Nov 2008) |
| 2414 | - The getifaddrs() version of Curl_if2ip() crashed when used on a Linux |
| 2415 | system with a TEQL load-balancing device configured, which doesn't |
| 2416 | have an address. Thanks to Adam Sampson for spotting this (bug #2234923). |
| 2417 | |
| 2418 | Yang Tse (6 Nov 2008) |
| 2419 | - Merged existing IPv4 and IPv6 Curl_ip2addr functions into a single one |
| 2420 | which now also takes a protocol address family argument. |
| 2421 | |
| 2422 | - Bug #2230535 (http://curl.haxx.se/bug/view.cgi?id=2230535) pointed out a |
| 2423 | problem with MSVC 6 makefile that caused a build failure. It was noted that |
| 2424 | the curl_addrinfo.obj reference was missing. I took the opportunity to sort |
| 2425 | the list in which this was missing. Issue submitted by John Wilkinson. |
| 2426 | |
| 2427 | Version 7.19.1 (5 November 2008) |
| 2428 | |
| 2429 | Daniel Stenberg (4 Nov 2008) |
| 2430 | - CURLINFO_FILETIME now works for file:// transfers as well |
| 2431 | |
| 2432 | Daniel Stenberg (3 Nov 2008) |
| 2433 | - Bug #2218480 (http://curl.haxx.se/bug/view.cgi?id=2218480) pointed out a |
| 2434 | problem with my CURLINFO_PRIMARY_IP fix from October 7th that caused a NULL |
| 2435 | pointer read. I also took the opportunity to clean up this logic (storing of |
| 2436 | the connection's IP address) somewhat as we had it stored in two different |
| 2437 | places and ways previously and they are now unified. |
| 2438 | |
| 2439 | Yang Tse (3 Nov 2008) |
| 2440 | - Fix undersized IPv6 address internal buffer. IPv6 address strings longer |
| 2441 | than 35 characters would be truncated. |
| 2442 | |
| 2443 | Daniel Stenberg (2 Nov 2008) |
| 2444 | - Daniel Johnson reported and fixed: |
| 2445 | |
| 2446 | When c-ares isn't enabled, libcurl by default calls getaddrinfo with family |
| 2447 | set to PF_UNSPEC which causes getaddrinfo to return all available addresses, |
| 2448 | both IPv4 and IPv6. Libcurl then tries each one until it can connect. If the |
| 2449 | net connection doesn't support IPv6, libcurl can still fall back to IPv4. |
| 2450 | |
| 2451 | However, since c-ares doesn't support PF_UNSPEC, when it's used it defaults |
| 2452 | to using family=PF_INET6 and therefore only returns IPv6 addresses when AAAA |
| 2453 | records are available, even if IPv4 addresses are also available. The effect |
| 2454 | is that since my ISP doesn't do IPv6, libcurl can't connect at all to a site |
| 2455 | that has AAAA records. It will work if I explicitly use CURL_IPRESOLVE_V4 or |
| 2456 | --ipv4 with the curl tool. I discovered this when curl would fail to connect |
| 2457 | to seemingly random sites. It turns out they weren't random, they were sites |
| 2458 | with AAAA records. |
| 2459 | |
| 2460 | So now libcurl defaults to PF_INET... until c-ares has been tought to offer |
| 2461 | both. |
| 2462 | |
| 2463 | Yang Tse (31 Oct 2008) |
| 2464 | - Tests 558 and 559 are stabilized. These two tests were initially introduced |
| 2465 | to aid in the location of a seg-fault which was only triggered on non-debug |
| 2466 | builds done with the icc 9.1 Intel compiler. Test 558 does not trigger the |
| 2467 | problem, but test 559 does trigger it. As of today, it isn't yet absolutely |
| 2468 | clear if it is a compiler optimizer issue or a memory corruption one. |
| 2469 | |
| 2470 | Yang Tse (30 Oct 2008) |
| 2471 | - Use our Curl_addrinfo structure definition to handle address info data even |
| 2472 | when a system addrinfo struct is available. Provide and use a wrapper around |
| 2473 | systems getaddrinfo function, Curl_getaddrinfo_ex which returns a pointer to |
| 2474 | a list of dynamically allocated Curl_addrinfo structs. |
| 2475 | |
| 2476 | Configure will check freeaddrinfo and getaddrinfo functions and define |
| 2477 | preprocessor symbols HAVE_FREEADDRINFO and HAVE_GETADDRINFO when appropriate. |
| 2478 | |
| 2479 | Daniel Fandrich (29 Oct 2008) |
| 2480 | - Fixed a bug that caused a few bytes of garbage to be sent after a |
| 2481 | curl_easy_pause() during a chunky upload. Reported by Steve Roskowski. |
| 2482 | |
| 2483 | Daniel Fandrich (28 Oct 2008) |
| 2484 | - Changed the "resolve" test precheck program to verify that an IPv6 socket |
| 2485 | can be created before resolving the IPv6 name. In the context of running |
| 2486 | a test, it doesn't make sense to run an IPv6 test when a host is resolvable |
| 2487 | but IPv6 isn't usable. This should fix failures of test 1085 on hosts with |
| 2488 | library and DNS support for IPv6 but where actual use of IPv6 has been |
| 2489 | administratively disabled. |
| 2490 | |
| 2491 | Daniel Fandrich (24 Oct 2008) |
| 2492 | - Added experimental support for zlib and OpenSSL on Symbian OS. |
| 2493 | |
| 2494 | Daniel Fandrich (21 Oct 2008) |
| 2495 | - Fixed some problems with SFTP range support to fix test cases 634 through |
| 2496 | 637. |
| 2497 | |
| 2498 | Daniel Fandrich (17 Oct 2008) |
| 2499 | - Fixed a compile error reported by Albert Chin on AIX and IRIX when using |
| 2500 | GTLS. |
| 2501 | |
| 2502 | Daniel Stenberg (16 Oct 2008) |
| 2503 | - Igor Novoseltsev added CURLOPT_PROXYUSER and CURLOPT_PROXYPASSWORD that then |
| 2504 | make CURLOPT_PROXYUSERPWD sort of deprecated. The primary motive for adding |
| 2505 | these new options is that they have no problems with the colon separator |
| 2506 | that the CURLOPT_PROXYUSERPWD option does. |
| 2507 | |
| 2508 | Daniel Stenberg (15 Oct 2008) |
| 2509 | - Pascal Terjan filed bug #2154627 |
| 2510 | (http://curl.haxx.se/bug/view.cgi?id=2154627) which pointed out that libcurl |
| 2511 | uses strcasecmp() in multiple places where it causes failures when the |
| 2512 | Turkish locale is used. This is because 'i' and 'I' isn't the same letter so |
| 2513 | strcasecmp() on those letters are different in Turkish than in English (or |
| 2514 | just about all other languages). I thus introduced a totally new internal |
| 2515 | function in libcurl (called Curl_raw_equal) for doing case insentive |
| 2516 | comparisons for english-(ascii?) style strings that thus will make "file" |
| 2517 | and "FILE" match even if the Turkish locale is selected. |
| 2518 | |
| 2519 | Daniel Fandrich (15 Oct 2008) |
| 2520 | - A <precheck> command is considered to have failed if it returns a non-zero |
| 2521 | return code. This way, if the precheck command can't be run at all for |
| 2522 | whatever reason, it's treated as a precheck failure which causes the |
| 2523 | test to be skipped. |
| 2524 | |
| 2525 | Daniel Stenberg (15 Oct 2008) |
| 2526 | - John Wilkinson filed bug #2155496 |
| 2527 | (http://curl.haxx.se/bug/view.cgi?id=2155496) pointing out an error case |
| 2528 | without a proper human-readable error message. When a read callback returns |
| 2529 | a too large value (like when trying to return a negative number) it would |
| 2530 | trigger and the generic error message then makes the proplem slightly |
| 2531 | different to track down. I've added an error message for this now. |
| 2532 | |
| 2533 | Daniel Fandrich (9 Oct 2008) |
| 2534 | - Fixed the --interface option to work with IPv6 connections on glibc |
| 2535 | systems supporting getifaddrs(). Also fixed a problem where an IPv6 |
| 2536 | address could be chosen instead of an IPv4 one for --interface when it |
| 2537 | involved a name lookup. |
| 2538 | |
| 2539 | Daniel Fandrich (8 Oct 2008) |
| 2540 | - Added tests 1082 through 1085 to test symbolic --interface parameters |
| 2541 | |
| 2542 | - Added tests 633 through 637 to test the new file range support for SFTP. |
| 2543 | All but the first test cause an infinite loop or other failure and so |
| 2544 | are added to DISABLED. |
| 2545 | |
| 2546 | Daniel Stenberg (8 Oct 2008) |
| 2547 | - John Wilkinson filed bug #2152270 |
| 2548 | (http://curl.haxx.se/bug/view.cgi?id=2152270) which identified and fixed a |
| 2549 | CURLINFO_REDIRECT_URL memory leak and an additional wrong-doing: |
| 2550 | |
| 2551 | Any subsequent transfer with a redirect leaks memory, eventually crashing |
| 2552 | the process potentially. |
| 2553 | |
| 2554 | Any subsequent transfer WITHOUT a redirect causes the most recent redirect |
| 2555 | that DID occur on some previous transfer to still be reported. |
| 2556 | |
| 2557 | - Igor Novoseltsev filed bug #2111613 |
| 2558 | (http://curl.haxx.se/bug/view.cgi?id=2111613) that eventually identified a |
| 2559 | flaw in how the multi_socket interface in some cases missed to call the |
| 2560 | timeout callback when easy interfaces are removed and added within the same |
| 2561 | millisecond. |
| 2562 | |
| 2563 | - Igor Novoseltsev brought a patch that introduced two new options to |
| 2564 | curl_easy_setopt: CURLOPT_USERNAME and CURLOPT_PASSWORD that sort of |
| 2565 | deprecates the good old CURLOPT_USERPWD since they allow applications to set |
| 2566 | the user name and password independently and perhaps more importantly allow |
| 2567 | both to contain colon(s) which CURLOPT_USERPWD doesn't fully support. |
| 2568 | |
| 2569 | Daniel Fandrich (7 Oct 2008) |
| 2570 | - Changed the handling of read/write errors in Curl_perform() to allow a |
| 2571 | a fresh connection to be made in such cases and the request retransmitted. |
| 2572 | This should fix test case 160. Added test case 1079 in an attempt to |
| 2573 | test a similar connection dropping scenario, but as a race condition, it's |
| 2574 | hard to test reliably. |
| 2575 | |
| 2576 | - Created test cases 1080 and 1081 to reproduce a problem of |
| 2577 | CURLINFO_REDIRECT_URL leaking memory and returning incorrect results when |
| 2578 | two URLs are requested. Reported by vmpdemo in bug #2152270 |
| 2579 | |
| 2580 | Daniel Stenberg (7 Oct 2008) |
| 2581 | - Fixed CURLINFO_PRIMARY_IP: When libcurl created a connection to host A then |
| 2582 | the app re-used the handle to do a connection to host B and then again |
| 2583 | re-used the handle to host A, it would not update the info with host A's IP |
| 2584 | address (due to the connection being re-used) but it would instead report |
| 2585 | the info from host B. |
| 2586 | |
| 2587 | Yang Tse (7 Oct 2008) |
| 2588 | - Added --enable-optimize configure option to enable and disable compiler |
| 2589 | optimizations to allow decoupled setting from --enable-debug. |
| 2590 | |
| 2591 | Yang Tse (2 Oct 2008) |
| 2592 | - Added --enable-warnings configure option to enable and disable strict |
| 2593 | compiler warnings to allow decoupled setting from --enable-debug. |
| 2594 | |
| 2595 | runtests.pl will now run with picky compiler warnings enabled unless |
| 2596 | explicitly disabled. |
| 2597 | |
| 2598 | Daniel Fandrich (1 Oct 2008) |
| 2599 | - "make clean" now cleans out the docs and tests directories, too. |
| 2600 | |
| 2601 | Daniel Stenberg (30 Sep 2008) |
| 2602 | - The libcurl FTP code now returns CURLE_REMOTE_FILE_NOT_FOUND error when SIZE |
| 2603 | gets a 550 response back for the cases where a download (or NOBODY) is |
| 2604 | wanted. It still allows a 550 as response if the SIZE is used as part of an |
| 2605 | upload process (like if resuming an upload is requested and the file isn't |
| 2606 | there before the upload). I also modified the FTP test server and a few test |
| 2607 | cases accordingly to match this modified behavior. |
| 2608 | |
| 2609 | Daniel Stenberg (29 Sep 2008) |
| 2610 | - Daniel Egger provided a patch that allows you to disable proxy support in |
| 2611 | libcurl to somewhat reduce the size of the binary. Run configure |
| 2612 | --disable-proxy. |
| 2613 | |
| 2614 | Daniel Fandrich (29 Sep 2008) |
| 2615 | - Moved all signal-based name resolution timeout handling into a single new |
| 2616 | Curl_resolv_timeout function to reduce coupling. |
| 2617 | |
| 2618 | Daniel Stenberg (29 Sep 2008) |
| 2619 | - Ian Lynagh provided a patch that now makes CURLOPT_RANGE work fine for SFTP |
| 2620 | downloads! |
| 2621 | |
| 2622 | - Maxim Ivanov filed bug report #2107803 |
| 2623 | (http://curl.haxx.se/bug/view.cgi?id=2107803) "no CURLINFO_REDIRECT_URL in |
| 2624 | multi mode" together with a patch that fixed the problem. |
| 2625 | |
| 2626 | Daniel Stenberg (25 Sep 2008) |
| 2627 | - Emanuele Bovisio submitted bug report #2126435. We fixed the HTTP Digest |
| 2628 | auth code to not behave badly when getting a blank realm with |
| 2629 | realm="". http://curl.haxx.se/bug/view.cgi?id=2126435 |
| 2630 | |
| 2631 | Daniel Fandrich (23 Sep 2008) |
| 2632 | - Make sure not to dereference the wrong UrlState proto union member when |
| 2633 | switching from one protocol to another in a single request (e.g. |
| 2634 | redirecting from HTTP to FTP as in test 1055) by resetting |
| 2635 | state.expect100header before every request. |
| 2636 | |
| 2637 | Daniel Stenberg (23 Sep 2008) |
| 2638 | - Introducing Jamie Lokier's function for date to epoch conversion used in the |
| 2639 | date parser function. This makes our function less dependent on system- |
| 2640 | provided functions and instead we do all the magic ourselves. We also no |
| 2641 | longer depend on the TZ environment variable. Switching to our own converter |
| 2642 | has some side-effect and they are noted here for future reference (taken |
| 2643 | from a mail by mr Lokier): |
| 2644 | |
| 2645 | time_t is not measured in seconds in the ANSI C standard - or even counted |
| 2646 | uniformly - weird platforms can use other numeric representations of dates |
| 2647 | in time_t - hence the difftime() function. |
| 2648 | |
| 2649 | On POSIX time_t is measured in UTC seconds, which means not including leap |
| 2650 | seconds. But it's mentioned in a few places that some old POSIX-ish |
| 2651 | environments include leap seconds in their time_t counts... |
| 2652 | |
| 2653 | I'm pretty sure [the new implementation is] correct on anything truly POSIX. |
| 2654 | And it's obviously a lot less dependent on platform quirks and corner cases |
| 2655 | in many ways than the mktime() version. |
| 2656 | |
| 2657 | - Rob Crittenden brought a patch to "add some locking for thread-safety to NSS |
| 2658 | implementation". |
| 2659 | |
| 2660 | Daniel Stenberg (22 Sep 2008) |
| 2661 | - Made the SOCKS code use the new Curl_read_plain() function to fix the bug |
| 2662 | Markus Moeller reported: http://curl.haxx.se/mail/archive-2008-09/0016.html |
| 2663 | |
| 2664 | - recv() errors other than those equal to EAGAIN now cause proper |
| 2665 | CURLE_RECV_ERROR to get returned. This made test case 160 fail so I've now |
| 2666 | disabled it until we can figure out another way to exercise that logic. |
| 2667 | |
| 2668 | - Michael Goffioul filed bug report #2107377 "Problem with multi + GnuTLS + |
| 2669 | proxy" (http://curl.haxx.se/bug/view.cgi?id=2107377) that showed how a multi |
| 2670 | interface using program didn't work when built with GnuTLS and a CONNECT |
| 2671 | request was done over a proxy (basically test 502 over a proxy to a HTTPS |
| 2672 | site). It turned out the ssl connect function would get called twice which |
| 2673 | caused the second call to fail. |
| 2674 | |
| 2675 | Daniel Fandrich (22 Sep 2008) |
| 2676 | - Fixed test 539 to handle an out of memory condition that shows up now |
| 2677 | that memdebug.h is included in the test programs. |
| 2678 | |
| 2679 | Yang Tse (20 Sep 2008) |
| 2680 | - Fix regression in configure script which affected OpenSSL builds on MSYS. |
| 2681 | |
| 2682 | Yang Tse (19 Sep 2008) |
| 2683 | - configure script now checks availability of the alarm() function. |
| 2684 | |
| 2685 | Daniel Fandrich (18 Sep 2008) |
| 2686 | - Don't bother to install a SIGALRM handler unless alarm() is available. |
| 2687 | Also, leave the existing SIGALRM handler alone if the timeout is too small |
| 2688 | to handle. |
| 2689 | |
| 2690 | Daniel Fandrich (17 Sep 2008) |
| 2691 | - Removed reference to curl-ca-bundle.crt in the host verification failure |
| 2692 | error message. |
| 2693 | |
| 2694 | Yang Tse (17 Sep 2008) |
| 2695 | - Improve configure detection of gethostname(), localtime_r(), strstr(), |
| 2696 | getservbyport_r(), gethostbyaddr_r() and gethostbyname_r(). |
| 2697 | |
| 2698 | Yang Tse (14 Sep 2008) |
| 2699 | - Improve configure detection of strcasecmp(), strcasestr(), strcmpi(), |
| 2700 | stricmp(), strlcat(), strncasecmp(), strncmpi() and strnicmp(). |
| 2701 | |
| 2702 | Yang Tse (13 Sep 2008) |
| 2703 | - Disable tracking of fdopen() calls in the low-level memory leak tracking |
| 2704 | code when fdopen() is not available, to avoid compiler error. |
| 2705 | |
| 2706 | Yang Tse (12 Sep 2008) |
| 2707 | - Further adjust detection of strerror_r() in the configure process, and |
| 2708 | ensure that errno is not modified inside Curl_strerror(). |
| 2709 | |
| 2710 | Yang Tse (10 Sep 2008) |
| 2711 | - Improve detection of gmtime_r(), strtoll(), sigaction(), strtok_r(), |
| 2712 | strdup() and ftruncate() in the configure process. |
| 2713 | |
| 2714 | Daniel Fandrich (9 Sep 2008) |
| 2715 | - Mike Revi discovered some swapped speed switches documented in the curl man |
| 2716 | page. |
| 2717 | |
| 2718 | - Checked in some documentation and code improvements and fixes that I |
| 2719 | discovered in the FreeBSD ports system. |
| 2720 | |
| 2721 | Daniel Stenberg (8 Sep 2008) |
| 2722 | - Dmitry Kurochkin patched a problem: I have found bug in pipelining through |
| 2723 | proxy. I have a transparent proxy. When running with http_proxy environment |
| 2724 | variable not set my test completes fine (it goes through transparent |
| 2725 | proxy). When I set http_proxy variable my test hangs after the first |
| 2726 | downloaded is complete. Looks like the second handle never gets out from |
| 2727 | WAITDO state. |
| 2728 | |
| 2729 | The fix: It makes checkPendPipeline move 1 handler from pend pipe to send |
| 2730 | pipe if pipelining is not supported by server but there are no handles in |
| 2731 | send and recv pipes. |
| 2732 | |
| 2733 | - Stefan Krause pointed out that libcurl would wrongly send away cookies to |
| 2734 | sites in cases where the cookie clearly has a very old expiry date. The |
| 2735 | condition was simply that libcurl's date parser would fail to convert the |
| 2736 | date and it would then count as a (timed-based) match. Starting now, a |
| 2737 | missed date due to an unsupported date format or date range will now cause |
| 2738 | the cookie to not match. |
| 2739 | |
| 2740 | Daniel Fandrich (5 Sep 2008) |
| 2741 | - Improved the logic that decides whether to use HTTP 1.1 features or not in a |
| 2742 | request. Setting a specific version with CURLOPT_HTTP_VERSION overrides |
| 2743 | all other checks, but otherwise, a 1.0 request will be made if the server |
| 2744 | is known to support only 1.0 because it previously responded so and the |
| 2745 | connection was kept alive, or a response to a previous request on this handle |
| 2746 | came back as 1.0. The latter could take place in cases like redirection or |
| 2747 | authentication where several requests have to be made before the operation |
| 2748 | is complete. If any one of the servers in a redirection chain supports only |
| 2749 | 1.0, then remaining requests will be sent in 1.0 mode. |
| 2750 | |
| 2751 | - Detect cases where an upload must be sent chunked and the server supports |
| 2752 | only HTTP 1.0 and return CURLE_UPLOAD_FAILED. |
| 2753 | |
| 2754 | Daniel Stenberg (5 Sep 2008) |
| 2755 | - Martin Drasar provided the CURLOPT_POSTREDIR patch. It renames |
| 2756 | CURLOPT_POST301 (but adds a define for backwards compatibility for you who |
| 2757 | don't define CURL_NO_OLDIES). This option allows you to now also change the |
| 2758 | libcurl behavior for a HTTP response 302 after a POST to not use GET in the |
| 2759 | subsequent request (when CURLOPT_FOLLOWLOCATION is enabled). I edited the |
| 2760 | patch somewhat before commit. The curl tool got a matching --post302 |
| 2761 | option. Test case 1076 was added to verify this. |
| 2762 | |
| 2763 | - Introducing CURLOPT_CERTINFO and the corresponding CURLINFO_CERTINFO. By |
| 2764 | enabling this feature with CURLOPT_CERTINFO for a request using SSL (HTTPS |
| 2765 | or FTPS), libcurl will gather lots of server certificate info and that info |
| 2766 | can then get extracted by a client after the request has completed with |
| 2767 | curl_easy_getinfo()'s CURLINFO_CERTINFO option. Linus Nielsen Feltzing |
| 2768 | helped me test and smoothen out this feature. |
| 2769 | |
| 2770 | Unfortunately, this feature currently only works with libcurl built to use |
| 2771 | OpenSSL. |
| 2772 | |
| 2773 | This feature was sponsored by networking4all.com - thanks! |
| 2774 | |
| 2775 | - Dmitriy Sergeyev pointed out that curl_easy_pause() didn't unpause properly |
| 2776 | during certain conditions. I also changed this code to use realloc() based |
| 2777 | on Daniel Fandrich's suggestion. |
| 2778 | |
| 2779 | Guenter Knauf (4 Sep 2008) |
| 2780 | - MingW32 non-configure builds are now largefile feature enabled by default. |
| 2781 | NetWare LIBC builds are also now largefile feature enabled by default. |
| 2782 | |
| 2783 | Yang Tse (4 Sep 2008) |
| 2784 | - Several fixes related with print formatting string directives. |
| 2785 | |
| 2786 | Daniel Fandrich (3 Sep 2008) |
| 2787 | - Search for the FreeBSD CA cert file /usr/local/share/certs/ca-root.crt |
| 2788 | |
| 2789 | Daniel Fandrich (2 Sep 2008) |
| 2790 | - Fixed an out of memory problem that caused torture test failures in tests |
| 2791 | 706 and 707. |
| 2792 | |
| 2793 | Daniel Stenberg (2 Sep 2008) |
| 2794 | - Keith Mok added supported_protocols and supported_features to the pkg-config |
| 2795 | file for libcurl, and while doing that fix he unified with curl-config.in |
| 2796 | how the supported protocols and features are extracted and used, so both those |
| 2797 | tools should now always be synced. |
| 2798 | |
| 2799 | Version 7.19.0 (1 September 2008) |
| 2800 | |
| 2801 | Daniel Fandrich (29 Aug 2008) |
| 2802 | - Added tests 1071 through 1074 to test automatic downgrading from HTTP 1.1 |
| 2803 | to HTTP 1.0 upon receiving a response from the HTTP server. Tests 1072 |
| 2804 | and 1073 are similar to test 1069 in that they involve the impossible |
| 2805 | scenario of sending chunked data to a HTTP 1.0 server. All these fail |
| 2806 | and are added to DISABLED. |
| 2807 | |
| 2808 | - Added test 1075 to test --anyauth with Basic authentication. |
| 2809 | |
| 2810 | Daniel Stenberg (29 Aug 2008) |
| 2811 | - When libcurl was doing a HTTP POST and the server would respond with |
| 2812 | "Connection: close" and actually close the connection after the |
| 2813 | response-body, libcurl could still have outstanding data to send and it |
| 2814 | would not properly notice this and stop sending. This caused weirdness and |
| 2815 | sad faces. http://curl.haxx.se/bug/view.cgi?id=2080222 |
| 2816 | |
| 2817 | Note that there are still reasons to consider libcurl's behavior when |
| 2818 | getting a >= 400 response code while sending data, as Craig Perras' note |
| 2819 | "http upload: how to stop on error" specifies: |
| 2820 | http://curl.haxx.se/mail/archive-2008-08/0138.html |
| 2821 | |
| 2822 | Daniel Stenberg (28 Aug 2008) |
| 2823 | - Dengminwen reported that libcurl would lock a (cookie) share twice (without |
| 2824 | an unlock in between) for a certain case and that in fact works when using |
| 2825 | regular windows mutexes but not with pthreads'! Locks should of course not |
| 2826 | get locked again so this is now fixed. |
| 2827 | http://curl.haxx.se/mail/lib-2008-08/0422.html |
| 2828 | |
| 2829 | - I'm abandoning the system with the web site mirrors (but keeping download |
| 2830 | files bing mirrored) and thus I've changed the URL in the cookiejar header |
| 2831 | to no longer use curlm.haxx.se but instead use the main site curl.haxx.se |
| 2832 | |
| 2833 | Daniel Fandrich (27 Aug 2008) |
| 2834 | - Fixed test case 1065 by changing the handling of CURLOPT_UPLOAD to set |
| 2835 | the HTTP method to GET (or HEAD) when given a value of 0. |
| 2836 | |
| 2837 | - Added test cases 1068 and 1069 to test a simple HTTP PUT from stdin. Test |
| 2838 | case 1069 fails in a similar manner to test 1065 so is added to DISABLED. |
| 2839 | |
| 2840 | Yang Tse (27 Aug 2008) |
| 2841 | - Fix generation of MS VC6 .dsp file to make it support compilation of either |
| 2842 | dynamic (DLL) or static (LIB) libcurl libraries in debug and release modes. |
| 2843 | |
| 2844 | Daniel Fandrich (26 Aug 2008) |
| 2845 | - Fixed out of memory problems that caused torture test failures in tests |
| 2846 | 1021 and 1067. |
| 2847 | |
| 2848 | Yang Tse (26 Aug 2008) |
| 2849 | - Added check and symbol definition for WIN32 file API usage in configure, |
| 2850 | supporting configure's --disable-largefile option for WIN32 targets also. |
| 2851 | |
| 2852 | - Non-configure systems which do not use config-win32.h configuration file, |
| 2853 | and want to use the WIN32 file API, must define USE_WIN32_LARGE_FILES or |
| 2854 | USE_WIN32_SMALL_FILES as appropriate in their own configuration files. |
| 2855 | |
| 2856 | Daniel Stenberg (23 Aug 2008) |
| 2857 | - Running 'make ca-firefox' in the root build dir will now run the new |
| 2858 | firefox-db2pem.sh conversion script that converts a local Firefox db of ca |
| 2859 | certs into PEM format, suitable for use with a OpenSSL or GnuTLS built |
| 2860 | libcurl. |
| 2861 | |
| 2862 | - Constantine Sapuntzakis fixed a bug when doing proxy CONNECT with the multi |
| 2863 | interface, and the proxy would send Connection: close during the |
| 2864 | authentication phase. http://curl.haxx.se/bug/view.cgi?id=2069047 |
| 2865 | |
| 2866 | Daniel Fandrich (22 Aug 2008) |
| 2867 | - Fixed a problem when --dump-header - was given with more than one URL, |
| 2868 | which caused an error when the second header was dumped due to stdout |
| 2869 | being closed. Added test case 1066 to verify. Also fixed a potential |
| 2870 | problem where a closed file descriptor might be used for an upload |
| 2871 | when more than one URL is given. |
| 2872 | |
| 2873 | Yang Tse (22 Aug 2008) |
| 2874 | - Improved libcurl's internal curl_m*printf() functions integral data type |
| 2875 | size and signedness handling. |
| 2876 | |
| 2877 | - Internal adjustments to better select/differentiate when large/small file |
| 2878 | support is provided using WIN32 functions directly. |
| 2879 | |
| 2880 | Daniel Fandrich (20 Aug 2008) |
| 2881 | - Added an edited version of Vincent Le Normand's documentation of SFTP quote |
| 2882 | commands to the man pages. |
| 2883 | |
| 2884 | Daniel Stenberg (20 Aug 2008) |
| 2885 | - Phil Pellouchoud pointed out that the windows version of libcurl had a |
| 2886 | memory leak because it never called the OpenSSL function |
| 2887 | CRYPTO_cleanup_all_ex_data() as it was supposed to. This was because of a |
| 2888 | missing define in config-win32.h! |
| 2889 | |
| 2890 | Gisle Vanem (18 Aug 2008) |
| 2891 | - Updated lib/Makefile.Watcom with the option to use c-ares (USE_ARES=1). |
| 2892 | |
| 2893 | Yang Tse (18 Aug 2008) |
| 2894 | - Added test case 557 to verify libcurl's internal curl_m*printf() functions |
| 2895 | formatting functionality when handling signed and unsigned longs, as well as |
| 2896 | our curl_off_t data type. |
| 2897 | |
| 2898 | Yang Tse (17 Aug 2008) |
| 2899 | - OpenSSl enabled NetWare builds are changed to use the 'openssl' subdirectory |
| 2900 | when including the OpenSSL header files. This is the recommended setting, this |
| 2901 | prevents the undesired inclusion of header files with the same name as those |
| 2902 | of OpenSSL but which do not belong to the OpenSSL package. The visible change |
| 2903 | from previously released libcurl versions is that now OpenSSl enabled NetWare |
| 2904 | builds also define USE_OPENSSL in config files, and that OpenSSL header files |
| 2905 | must be located in a subdirectory named 'openssl'. |
| 2906 | |
| 2907 | Yang Tse (16 Aug 2008) |
| 2908 | - Library internal only C preprocessor macros FORMAT_OFF_T and FORMAT_OFF_TU |
| 2909 | remain in use as internal curl_off_t print formatting strings for the internal |
| 2910 | *printf functions which still cannot handle print formatting string directives |
| 2911 | such as "I64d", "I64u", and others available on MSVC, MinGW, Intel's ICC, and |
| 2912 | other DOS/Windows compilers. |
| 2913 | |
| 2914 | Daniel Fandrich (15 Aug 2008) |
| 2915 | - Added test case 1063 to test invalid long file ranges with file: URLs and |
| 2916 | 1064 to test multiple http PUTs. |
| 2917 | |
| 2918 | - Added test case 1065 to test a PUT with a single file but two URLs. This |
| 2919 | was discovered to be problematic while investigating an incident reported by |
| 2920 | Von back in May. curl in this case doesn't include a Content-Length: or |
| 2921 | Transfer-Encoding: chunked header which is illegal. This test case is |
| 2922 | added to DISABLED until a solution is found. |
| 2923 | |
| 2924 | Yang Tse (15 Aug 2008) |
| 2925 | - C preprocessor macros used internally and equally available externally which |
| 2926 | aid in the use of the curl_off_t data type are named: CURL_FORMAT_CURL_OFF_T, |
| 2927 | CURL_FORMAT_CURL_OFF_TU, CURL_SIZEOF_CURL_OFF_T, CURL_SUFFIX_CURL_OFF_T, |
| 2928 | CURL_SUFFIX_CURL_OFF_TU, CURL_OFF_T_C and CURL_OFF_TU_C. |
| 2929 | |
| 2930 | Yang Tse (13 Aug 2008) |
| 2931 | - The size of long is a build time characteristic and as such it is now recorded |
| 2932 | in curlbuild.h as CURL_SIZEOF_LONG. Definition now done from configure process |
| 2933 | and in CVS curlbuild.h.dist for non-configure systems. |
| 2934 | |
| 2935 | Daniel Fandrich (12 Aug 2008) |
| 2936 | - Fixed a buffer overflow problem in Curl_proxyCONNECT that could occur |
| 2937 | when a server responded with long headers and data. Luckily, the buffer |
| 2938 | overflowed into another unused buffer, so no actual harm was done. |
| 2939 | Added test cases 1060 and 1061 to verify. |
| 2940 | |
| 2941 | Daniel Stenberg (12 Aug 2008) |
| 2942 | - Andy Tsouladze fixed runtests.pl to not attempt to execute the stunnel |
| 2943 | _directory_ if that happened to appear in the path! |
| 2944 | |
| 2945 | Yang Tse (12 Aug 2008) |
| 2946 | - Added macros for minimum-width signed and unsigned curl_off_t integer |
| 2947 | constants CURL_OFF_T_C and CURL_OFF_TU_C. The clever double helper macro |
| 2948 | used internally to provide its functionality is thanks to Lars Nilsson. |
| 2949 | |
| 2950 | Daniel Fandrich (11 Aug 2008) |
| 2951 | - Fixed a boundary condition error in ftp_readresp() whereby a non-terminal |
| 2952 | line of a multiline FTP response whose last byte landed exactly at the end |
| 2953 | of the BUFSIZE-length buffer would be treated as the terminal response |
| 2954 | line. The following response code read in would then actually be the |
| 2955 | end of the previous response line, and all responses from then on would |
| 2956 | correspond to the wrong command. Test case 1062 verifies this. |
| 2957 | |
| 2958 | - Stop closing a never-opened ftp socket. |
| 2959 | |
| 2960 | Daniel Stenberg (11 Aug 2008) |
| 2961 | - Constantine Sapuntzakis filed bug report #2042430 |
| 2962 | (http://curl.haxx.se/bug/view.cgi?id=2042430) with a patch. "NTLM Windows |
| 2963 | SSPI code is not thread safe". This was due to libcurl using static |
| 2964 | variables to tell wether to load the necessary SSPI DLL, but now the loading |
| 2965 | has been moved to the more suitable curl_global_init() call. |
| 2966 | |
| 2967 | - Constantine Sapuntzakis filed bug report #2042440 |
| 2968 | (http://curl.haxx.se/bug/view.cgi?id=2042440) with a patch. He identified a |
| 2969 | problem when using NTLM over a proxy but the end-point does Basic, and then |
| 2970 | libcurl would do wrong when the host sent "Connection: close" as the proxy's |
| 2971 | NTLM state was erroneously cleared. |
| 2972 | |
| 2973 | Yang Tse (11 Aug 2008) |
| 2974 | - Added missing signed and unsigned curl_off_t integer constant suffixes for |
| 2975 | internal and external use. CURL_SUFFIX_CURL_OFF_T, CURL_SUFFIX_CURL_OFF_TU. |
| 2976 | |
| 2977 | Daniel Fandrich (7 Aug 2008) |
| 2978 | - Fixed an uninitialized variable in multi_runsingle() that could cause a |
| 2979 | request to prematurely end. |
| 2980 | |
| 2981 | - Added test1059 to test the FTP proxy tunnel problem fixed July 11. |
| 2982 | |
| 2983 | Yang Tse (7 Aug 2008) |
| 2984 | - Added curlbuild.h and curlrules.h header files to libcurl's public headers. |
| 2985 | File curlbuild.h is a generated file on configure-capable systems. This is |
| 2986 | a first step towards configure-based info in public headers. Currently only |
| 2987 | used to provide support for a curl_off_t data type which is not gated to |
| 2988 | off_t. Further details are documented inside these mentioned header files. |
| 2989 | |
| 2990 | - Fix CURL_CHECK_DEF so that when the expansion of the preprocessor symbol |
| 2991 | results in a set of double-quoted strings, this macro will now return an |
| 2992 | expansion which consists of a single double-quoted string as the result of |
| 2993 | concatenating all of them. |
| 2994 | |
| 2995 | - Skip data type check in DO_CURL_OFF_T_CHECK macro when argument is empty. |
| 2996 | |
| 2997 | - Adjusted testcurl.pl to copy checked out curlbuild.h.dist as curlbuild.h |
| 2998 | for non-configure targets when the host system doesn't run buildconf.bat. |
| 2999 | |
| 3000 | - Prevent buildconf from removing 'Makefile' and 'missing' files. This would |
| 3001 | blow away our CVS checked files 'missing' and 'hiper/Makefile'. |
| 3002 | |
| 3003 | - Remove adjustment done to testcurl.pl to verify if change introduced by |
| 3004 | Guenter Knauf in lib/Makefile.netware is enough to get the netware autobuilds |
| 3005 | going again. |
| 3006 | |
| 3007 | Yang Tse (5 Aug 2008) |
| 3008 | - Changes done to buildconf script. Validate that autom4te and autoconf, as |
| 3009 | well as aclocal and automake, versions match. Improve removal of previous |
| 3010 | run generated files. Remove verbose debug logging of aclocal on Solaris. |
| 3011 | |
| 3012 | Daniel Stenberg (5 Aug 2008) |
| 3013 | - Yehoshua Hershberg found a problem that would make libcurl re-use a |
| 3014 | connection with the multi interface even if a previous use of it caused a |
| 3015 | CURLE_PEER_FAILED_VERIFICATION to get returned. I now make sure that failed |
| 3016 | SSL connections properly close the connections. |
| 3017 | |
| 3018 | Daniel Stenberg (4 Aug 2008) |
| 3019 | - Test cases 1051, 1052 and 1055 were added by Daniel Fandrich on July 30 and |
| 3020 | proved how PUT and POST with a redirect could lead to a "hang" due to the |
| 3021 | data stream not being rewound properly when it had to in order to get sent |
| 3022 | properly (again) to the subsequent URL. This is now fixed and these test |
| 3023 | cases are no longer disabled. |
| 3024 | |
| 3025 | Yang Tse (4 Aug 2008) |
| 3026 | - Autoconf 2.62 has changed the behaviour of the AC_AIX macro which we use. |
| 3027 | Prior versions of autoconf defined _ALL_SOURCE if _AIX was defined. 2.62 |
| 3028 | version of AC_AIX defines _ALL_SOURCE and other four preprocessor symbols |
| 3029 | no matter if the system is AIX or not. To keep the traditional behaviour, |
| 3030 | and an uniform one across autoconf versions AC_AIX is replaced with our |
| 3031 | own internal macro CURL_CHECK_AIX_ALL_SOURCE. |
| 3032 | |
| 3033 | Daniel Stenberg (4 Aug 2008) |
| 3034 | - Test case 1041 (added by Daniel Fandrich July 14th) proved a bug where PUT |
| 3035 | with -C - sent garbage in the Content-Range: header. I fixed this problem by |
| 3036 | making sure libcurl always sets the size of the _entire_ upload if an app |
| 3037 | attemps to do resumed uploads since libcurl simply cannot know the size of |
| 3038 | what is currently at the server end. Test 1041 is no longer disabled. |
| 3039 | |
| 3040 | Yang Tse (2 Aug 2008) |
| 3041 | - No longer test availability of the gdi32 library, nor use it for linking, even |
| 3042 | when we have been doing this since revision 1.47 of configure.ac 4 years and |
| 3043 | 5 months ago when cross-compiling a Windows target. We actually don't use any |
| 3044 | function from the Windows GDI (Graphics Device Interface) related with drawing |
| 3045 | or graphics-related operations. |
| 3046 | |
| 3047 | Daniel Fandrich (1 Aug 2008) |
| 3048 | - Added support for --append on SFTP uploads. Unfortunately, OpenSSH doesn't |
| 3049 | support this so it goes untested. |
| 3050 | |
| 3051 | Yang Tse (1 Aug 2008) |
| 3052 | - Configure process now checks if the preprocessor _REENTRANT symbol is already |
| 3053 | defined. If it isn't currently defined a set of checks are performed to test |
| 3054 | if its definition is required to make visible to the compiler a set of *_r |
| 3055 | functions. Finally, if _REENTRANT is already defined or needed it takes care |
| 3056 | of making adjustments necessary to ensure that it is defined equally for the |
| 3057 | configure process tests and generated config file. |
| 3058 | |
| 3059 | - Removed definition of CURL_CHECK_WORKING_RESOLVER from acinclude.m4 it has |
| 3060 | not been in use since revision 1.81 of configure.in 6 years, 9 months ago. |
| 3061 | |
| 3062 | Daniel Fandrich (31 Jul 2008) |
| 3063 | - Fixed parsing of an IPv6 proxy address to support a scope identifier, |
| 3064 | as well as IPv4 addresses in IPv6 format. Also, better handle the case |
| 3065 | of a malformatted IPv6 address (avoid empty and NULL strings). |
| 3066 | |
| 3067 | - Fixed a problem with any FTP URL or any URLs containing an IPv6 address |
| 3068 | being mangled when passed to proxies when CURLOPT_PORT is also set |
| 3069 | (reported by Pramod Sharma). |
| 3070 | |
| 3071 | - User names embedded in proxy URLs without a password were parsed |
| 3072 | incorrectly--the host name is treated as part of the user name and the |
| 3073 | port number becomes the password. This can be observed in test 279 |
| 3074 | (was KNOWN_ISSUE #54). |
| 3075 | |
| 3076 | Daniel Stenberg (30 Jul 2008) |
| 3077 | - Phil Blundell added the CURLOPT_ADDRESS_SCOPE option, as well as adjusted |
| 3078 | the URL parser to allow numerical IPv6-addresses to be specified with the |
| 3079 | scope given, as per RFC4007 - with a percent letter that itself needs to be |
| 3080 | URL escaped. For example, for an address of fe80::1234%1 the HTTP URL is: |
| 3081 | "http://[fe80::1234%251]/" |
| 3082 | |
| 3083 | - PHP's bug report #43158 (http://bugs.php.net/bug.php?id=43158) identifies a |
| 3084 | true bug in libcurl built with OpenSSL. It made curl_easy_getinfo() more or |
| 3085 | less always return 0 for CURLINFO_SSL_VERIFYRESULT because the function that |
| 3086 | would set it to something non-zero would return before the assign in almost |
| 3087 | all error cases. The internal variable is now set to non-zero from the start |
| 3088 | of the function only to get cleared later on if things work out fine. |
| 3089 | |
| 3090 | - Made the curl tool's -w option support the %{ssl_verify_result} variable |
| 3091 | |
| 3092 | Daniel Fandrich (30 Jul 2008) |
| 3093 | - Added test cases 1052 through 1055 to test uploading data from files |
| 3094 | during redirects. Test cases 1052 and 1055 show problems (maybe the same |
| 3095 | root cause as 1051) and are disabled. |
| 3096 | |
| 3097 | - Fixed a couple of buffer overflows in the MS-DOS port of the curl tool. |
| 3098 | |
| 3099 | Daniel Fandrich (29 Jul 2008) |
| 3100 | - Fixed --use-ascii to properly convert text files on Symbian OS, MS-DOS |
| 3101 | and OS/2. |
| 3102 | |
| 3103 | - Added test case 1051 to test Location: following with PUT, as reported |
| 3104 | by Ben Sutcliffe. The test when run manually shows a problem in curl |
| 3105 | so it's disabled. |
| 3106 | |
| 3107 | Daniel Fandrich (28 Jul 2008) |
| 3108 | - Fixed display of the interface bind address in the trace output when it's |
| 3109 | an IPv6 address. |
| 3110 | |
| 3111 | - Added test cases 1045 through 1049 as simple tests of --interface using the |
| 3112 | localhost interface. |
| 3113 | |
| 3114 | - Added test case 1050 to test --ftp-port with an IPv6 address |
| 3115 | |
| 3116 | Daniel Stenberg (26 Jul 2008) |
| 3117 | - David Bau filed bug report #2026240 "CURL_READFUNC_PAUSE leads to buffer |
| 3118 | overrun" (http://curl.haxx.se/bug/view.cgi?id=2026240) identifying two |
| 3119 | problems, and providing the fix for them: |
| 3120 | |
| 3121 | - CURL_READFUNC_PAUSE did in fact not pause the _sending_ of data that it is |
| 3122 | designed for but paused _receiving_ of data! |
| 3123 | |
| 3124 | - libcurl didn't internally set the read counter to zero when this return |
| 3125 | code was detected, which would potentially lead to junk getting sent to |
| 3126 | the server. |
| 3127 | |
| 3128 | Daniel Fandrich (26 Jul 2008) |
| 3129 | - Added test 1044 to test large file support in ftp with -I. |
| 3130 | |
| 3131 | - Eliminate a unnecessary socket creation in Curl_getaddrinfo for an IPv4 |
| 3132 | address in an IPv6 capable libcurl. |
| 3133 | |
| 3134 | - Added feature in runtests.pl to select tests based on key word. |
| 3135 | |
| 3136 | Daniel Fandrich (23 Jul 2008) |
| 3137 | - Changed the long logfile elision code in runtests.pl to properly handle |
| 3138 | lines ending in \r. |
| 3139 | |
| 3140 | - Changed references to TRUE and FALSE in the curl_easy_setopt man page to |
| 3141 | 1 and zero, respectively, since TRUE and FALSE aren't part of the |
| 3142 | libcurl API. |
| 3143 | |
| 3144 | Daniel Stenberg (23 Jul 2008) |
| 3145 | - I went over the curl_easy_setopt man page and replaced most references to |
| 3146 | non-zero with the fixed value of 1. We should strive at making options |
| 3147 | support '1' for enabling them mentioned explicitly, as that then will allow |
| 3148 | us for to extend them in the future without breaking older programs. |
| 3149 | |
| 3150 | Possibly we should even introduce a fancy define to use instead of '1' all |
| 3151 | over... |
| 3152 | |
| 3153 | Yang Tse (21 Jul 2008) |
| 3154 | - Use the sreadfrom() wrapper to replace recvfrom() in our code. |
| 3155 | |
| 3156 | Yang Tse (20 Jul 2008) |
| 3157 | - when recvfrom prototype uses a void pointer for arguments 2, 5 or 6 this will |
| 3158 | now cause the definition, as appropriate, of RECVFROM_TYPE_ARG2_IS_VOID, |
| 3159 | RECVFROM_TYPE_ARG5_IS_VOID or RECVFROM_TYPE_ARG6_IS_VOID. |
| 3160 | |
| 3161 | Yang Tse (17 Jul 2008) |
| 3162 | - RECVFROM_TYPE_ARG2, RECVFROM_TYPE_ARG5 and RECVFROM_TYPE_ARG6 are now defined |
| 3163 | to the data type pointed by its respective argument and not the pointer type. |
| 3164 | |
| 3165 | Yang Tse (16 Jul 2008) |
| 3166 | - Configure process now checks availability of recvfrom() socket function and |
| 3167 | finds out its return type and the types of its arguments. Added definitions |
| 3168 | for non-configure systems config files, and introduced macro sreadfrom which |
| 3169 | will be used on udp sockets as a recvfrom() wrapper. |
| 3170 | |
| 3171 | Yang Tse (15 Jul 2008) |
| 3172 | - Added description/comment to include paths used in several Makefile.am files. |
| 3173 | Added automake option nostdinc to test servers makefile and modified libcurl |
| 3174 | external headers include path for libtest programs. |
| 3175 | |
| 3176 | Daniel Fandrich (14 Jul 2008) |
| 3177 | - Added test1040 through test1043 to test -C - on HTTP. Test 1041 failed so |
| 3178 | it's added to DISABLED. |
| 3179 | |
| 3180 | Yang Tse (14 Jul 2008) |
| 3181 | - HTTP_ONLY definition check in lib/setup.h is now done once that configuration |
| 3182 | file has been included. In this way if symbol is defined in the config file |
| 3183 | it will no longer be ignored. Removed inclusion of remaining system header |
| 3184 | files from configuration files. Moved _REENTRANT definition up/earlier in |
| 3185 | lib/setup.h |
| 3186 | |
| 3187 | Yang Tse (11 Jul 2008) |
| 3188 | - Added missing multiple header inclusion prevention definition for header |
| 3189 | file content_encoding.h |
| 3190 | |
| 3191 | Daniel Fandrich (11 Jul 2008) |
| 3192 | - Fixed test 553 to pass the torture test. |
| 3193 | |
| 3194 | Daniel Stenberg (11 Jul 2008) |
| 3195 | - Daniel Fandrich found out we didn't pass on the user-agent properly when |
| 3196 | doing "proxy-tunnels" with non-HTTP prototols and that was simply because |
| 3197 | the code assumed the user-agent was only needed for HTTP. |
| 3198 | |
| 3199 | Daniel Fandrich (10 Jul 2008) |
| 3200 | - Changed slightly the SFTP quote commands chmod, chown and chgrp to only |
| 3201 | set the attribute that has changed instead of all possible ones. Hopefully, |
| 3202 | this will solve the "Permission denied" problem that Nagarajan Sreenivasan |
| 3203 | reported when setting some modes, but regardless, it saves a protocol |
| 3204 | round trip in the chmod case. |
| 3205 | |
| 3206 | - Added test cases 1038 and 1039 to test Adrian Kreher's report that ftp |
| 3207 | uploads with -C - didn't resume properly, but the tests pass. |
| 3208 | |
| 3209 | Yang Tse (10 Jul 2008) |
| 3210 | - Peter Lamberg filed bug report #2015126: "poll gives WSAEINVAL when POLLPRI |
| 3211 | is set in fdset.events" (http://curl.haxx.se/bug/view.cgi?id=2015126) which |
| 3212 | exactly pinpointed the problem only triggered on Windows Vista, provided |
| 3213 | reference to docs and also a fix. There is much work behind Peter Lamberg's |
| 3214 | excellent bug report. Thank You! |
| 3215 | |
| 3216 | Daniel Fandrich (9 Jul 2008) |
| 3217 | - Added tests 1036 and 1037 to verify resumed ftp downloads with -C - |
| 3218 | |
| 3219 | Daniel Stenberg (9 Jul 2008) |
| 3220 | - Andreas Schuldei improved Phil Blundell's patch for IPv6 using c-ares, and I |
| 3221 | edited it slightly. Now you should be able to use IPv6 addresses fine even |
| 3222 | with libcurl built to use c-ares. |
| 3223 | |
| 3224 | Daniel Fandrich (9 Jul 2008) |
| 3225 | - Fixed an OOM handling problem that cause test 11 to fail the torture test. |
| 3226 | |
| 3227 | Daniel Fandrich (8 Jul 2008) |
| 3228 | - Fixed test 554 to pass the torture test. |
| 3229 | |
| 3230 | Daniel Fandrich (7 Jul 2008) |
| 3231 | - Added test cases 1034 & 1035 to test IDN name conversion failures. |
| 3232 | |
| 3233 | Daniel Stenberg (7 Jul 2008) |
| 3234 | - Scott Barrett provided a test case for a segfault in the FTP code and the |
| 3235 | fix for it. It occured when you did a FTP transfer using |
| 3236 | CURLFTPMETHOD_SINGLECWD and then did another one on the same easy handle but |
| 3237 | switched to CURLFTPMETHOD_NOCWD. Due to the "dir depth" variable not being |
| 3238 | cleared properly. Scott's test case is now known as test 539 and it |
| 3239 | verifies the fix. |
| 3240 | |
| 3241 | Daniel Stenberg (3 Jul 2008) |
| 3242 | - Phil Blundell provided a fix for libcurl's treatment of unexpected 1xx |
| 3243 | response codes. Previously libcurl would hang on such occurances. I added |
| 3244 | test case 1033 to verify. |
| 3245 | |
| 3246 | - Introcuding a new timestamp for curl_easy_getinfo(): |
| 3247 | CURLINFO_APPCONNECT_TIME. This is set with the "application layer" |
| 3248 | handshake/connection is completed. Which typically is SSL, TLS or SSH and by |
| 3249 | using this you can figure out the application layer's own connect time. You |
| 3250 | can extract the time stamp using curl's -w option and the new variable named |
| 3251 | 'time_appconnect'. This feature was sponsored by Lenny Rachitsky at NeuStar. |
| 3252 | |
| 3253 | Daniel Fandrich (2 Jul 2008) |
| 3254 | - Support Open Watcom C on Linux (as well as Windows). |
| 3255 | |
| 3256 | Yang Tse (2 Jul 2008) |
| 3257 | - The previously committed fix for bug report #1999181 prevented using the |
| 3258 | monotonic clock on any system without an always supported POSIX compliant |
| 3259 | implementation. Now the POSIX compliant configuration check is removed and |
| 3260 | will fallback to gettimeofday when the monotonic clock is unavailable at |
| 3261 | run-time. |
| 3262 | |
| 3263 | - The configure process will now halt when sed, grep, egrep or ar programs |
| 3264 | can not be found among the directories in PATH variable. |
| 3265 | |
| 3266 | Daniel Stenberg (1 Jul 2008) |
| 3267 | - Rolland Dudemaine provided fixes to get libcurl to build for the INTEGRITY |
| 3268 | operating system. |
| 3269 | |
| 3270 | Daniel Stenberg (30 Jun 2008) |
| 3271 | - Made the internal printf() support %llu properly to print unsigned long longs. |
| 3272 | |
| 3273 | - Stephen Collyer and Tor Arntsen helped identify a flaw in the range code |
| 3274 | which output the range using a signed variable where it should rather use |
| 3275 | unsigned. |
| 3276 | |
| 3277 | Yang Tse (29 Jun 2008) |
| 3278 | - John Lightsey filed bug report #1999181: "CLOCK_MONOTONIC always fails on |
| 3279 | some systems" (http://curl.haxx.se/bug/view.cgi?id=1999181). The problem was |
| 3280 | that the configure script did not use the _POSIX_MONOTONIC_CLOCK feature test |
| 3281 | macro when checking monotonic clock availability. This is now fixed and the |
| 3282 | monotonic clock will not be used unless the feature test macro is defined |
| 3283 | with a value greater than zero indicating always supported. |
| 3284 | |
| 3285 | Daniel Fandrich (25 Jun 2008) |
| 3286 | - Honour --stderr with the -v option. |
| 3287 | |
| 3288 | - Fixed a file handle leak in the command line client if more than one |
| 3289 | --stderr option was given. |
| 3290 | |
| 3291 | Daniel Stenberg (22 Jun 2008) |
| 3292 | - Eduard Bloch filed the debian bug report #487567 |
| 3293 | (http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=487567) pointing out that |
| 3294 | libcurl used Content-Range: instead of Range when doing a range request with |
| 3295 | --head (CURLOPT_NOBODY). This is now fixed and test case 1032 was added to |
| 3296 | verify. |
| 3297 | |
| 3298 | Daniel Fandrich (21 Jun 2008) |
| 3299 | - Stopped using ranges in scanf character sequences (e.g. %[a-z]) since that |
| 3300 | is not ANSI C, just a common extension. This caused problems on |
| 3301 | at least Open Watcom C. |
| 3302 | |
| 3303 | Yang Tse (20 Jun 2008) |
| 3304 | - Modified configuration script to actually verify if the compiler is good |
| 3305 | enough at detecting compilation errors or at least it has been properly |
| 3306 | configured to do so. Configuration heavily depends on this capability, so |
| 3307 | if this compiler sanity check fails the configuration process will now fail. |
| 3308 | |
| 3309 | Daniel Stenberg (20 Jun 2008) |
| 3310 | - Phil Pellouchoud found a case where libcurl built with NSS failed to |
| 3311 | handshake with a SSLv2 server, and it turned out to be because it didn't |
| 3312 | recognize the cipher named "rc4-md5". In our list that cipher was named |
| 3313 | plainly "rc4". I've now added rc4-md5 to work as an alias as Phil reported |
| 3314 | that it made things work for him again. |
| 3315 | |
| 3316 | - Hans-Jurgen May pointed out that trying SCP or SFTP over a SOCKS proxy |
| 3317 | crashed libcurl. This is now addressed by making sure we use "plain send" |
| 3318 | internally when doing the socks handshake instead of the Curl_write() |
| 3319 | function which is designed to use the "target" protocol. That's then SCP or |
| 3320 | SFTP in this case. I also took the opportunity and cleaned up some ssh- |
| 3321 | related #ifdefs in the code for readability. |
| 3322 | |
| 3323 | Daniel Stenberg (19 Jun 2008) |
| 3324 | - Christopher Palow fixed a curl_multi_socket() issue which previously caused |
| 3325 | libcurl to not tell the app properly when a socket was closed (when the name |
| 3326 | resolve done by c-ares is completed) and then immediately re-created and put |
| 3327 | to use again (for the actual connection). Since the closure will make the |
| 3328 | "watch status" get lost in several event-based systems libcurl will need to |
| 3329 | tell the app about this close/re-create case. |
| 3330 | |
| 3331 | - Dengminwen found a bug in the connection re-use function when using the |
| 3332 | multi interface with pipelining enabled as it would wrongly check for, |
| 3333 | detect and close "dead connections" even though that connection was already |
| 3334 | in use! |
| 3335 | |
| 3336 | Daniel Fandrich (18 Jun 2008) |
| 3337 | - Added SSH failure test cases 628-632 |
| 3338 | |
| 3339 | - Fixed a memory leak in the command-line tool that caused a valgrind error. |
| 3340 | |
| 3341 | Daniel Stenberg (18 Jun 2008) |
| 3342 | - Rob Crittenden brought a fix for the NSS layer that makes libcurl no longer |
| 3343 | always fire up a new connection rather than using the existing one when the |
| 3344 | multi interface is used. Original bug report: |
| 3345 | https://bugzilla.redhat.com/show_bug.cgi?id=450140 |
| 3346 | |
| 3347 | Yang Tse (18 Jun 2008) |
| 3348 | - Internal configure script improvement. No longer break out of shell "for" |
| 3349 | statements from inside AC_FOO_IFELSE macros, otherwise temporary macro files |
| 3350 | are not properly removed. |
| 3351 | |
| 3352 | Daniel Fandrich (12 Jun 2008) |
| 3353 | - Fixed curl-config --ca which wasn't being exported by configure. |
| 3354 | |
| 3355 | Daniel Stenberg (11 Jun 2008) |
| 3356 | - I did a cleanup of the internal generic SSL layer and how the various SSL |
| 3357 | libraries are supported. Starting now, each underlying SSL library support |
| 3358 | code does a set of defines for the 16 functions the generic layer (sslgen.c) |
| 3359 | uses (all these new function defines use the prefix "curlssl_"). This |
| 3360 | greatly simplified the generic layer in readability by involving much less |
| 3361 | #ifdefs and other preprocessor stuff and should make it easier for people to |
| 3362 | make libcurl work with new SSL libraries. |
| 3363 | |
| 3364 | Hopefully I can later on document these 16 functions somewhat as well. |
| 3365 | |
| 3366 | I also made most of the internal SSL-dependent functions (using Curl_ssl_ |
| 3367 | prefix) #defined to nothing when no SSL support is requested - previously |
| 3368 | they would unnecessarily call mostly empty functions. |
| 3369 | |
| 3370 | I've built libcurl with OpenSSL and GnuTLS and without SSL to test this and |
| 3371 | I've also tried building with NSS but the NSS support is a mystery to me and |
| 3372 | I failed to build libcurl with the NSS libraries I have installed. We really |
| 3373 | should A) improve our configure script to detect unsuitable NSS versions |
| 3374 | already at configure time and B) document our requirements better for the |
| 3375 | SSL libraries. |
| 3376 | |
| 3377 | Daniel Stenberg (10 Jun 2008) |
| 3378 | - I made the OpenSSL code build again with OpenSSL 0.9.6. The CRLFILE |
| 3379 | functionality killed it due to its unconditional use of |
| 3380 | X509_STORE_set_flags... |
| 3381 | |
| 3382 | Daniel Stenberg (8 Jun 2008) |
| 3383 | - Due to the three new libcurl changes and the massive command line option |
| 3384 | change I decided we'll mark it by bumping the next release number to 7.19.0! |
| 3385 | |
| 3386 | - curl the tool now deals with its command line options somewhat differently! |
| 3387 | All boolean options (such as -O, -I, -v etc), both short and long versions, |
| 3388 | now always switch on/enable the option named. Using the same option multiple |
| 3389 | times thus make no difference. To switch off one of those options, you need |
| 3390 | to use the long version of the option and type --no-OPTION. Like to disable |
| 3391 | verbose mode you use --no-verbose! |
| 3392 | |
| 3393 | - Added --remote-name-all to curl, which if used changes the default for all |
| 3394 | given URLs to be dealt with as if -O is used. So if you want to disable that |
| 3395 | for a specific URL after --remote-name-all has been used, you muse use -o - |
| 3396 | or --no-remote-name. |
| 3397 | |
| 3398 | Daniel Stenberg (6 Jun 2008) |
| 3399 | - Axel Tillequin and Arnaud Ebalard added support for CURLOPT_ISSUERCERT, for |
| 3400 | OpenSSL, NSS and GnuTLS-built libcurls. |
| 3401 | |
| 3402 | - Axel Tillequin and Arnaud Ebalard added support for CURLOPT_CRLFILE, for |
| 3403 | OpenSSL, NSS and GnuTLS-built libcurls. |
| 3404 | |
| 3405 | - Added CURLINFO_PRIMARY_IP as a new information retrievable with |
| 3406 | curl_easy_getinfo. It returns a pointer to a string with the most recently |
| 3407 | used IP address. Modified test case 500 to also verify this feature. The |
| 3408 | implementing of this feature was sponsored by Lenny Rachitsky at NeuStar. |
| 3409 | |
| 3410 | Version 7.18.2 (4 June 2008) |
| 3411 | |
| 3412 | Daniel Fandrich (3 Jun 2008) |
| 3413 | - Fixed a problem where telnet data would be lost if an EWOULDBLOCK |
| 3414 | condition were encountered. |
| 3415 | |
| 3416 | Marty Kuhrt (1 Jun 2008) |
| 3417 | - Updated main.c to return CURLE_OK if PARAM_HELP_REQUESTED was returned |
| 3418 | from getparameter instead of CURLE_FAILED_INIT. No point in returning |
| 3419 | an error if --help or --version were requested. |
| 3420 | |
| 3421 | Daniel Stenberg (28 May 2008) |
| 3422 | - Emil Romanus found a problem and helped me repeat it. It occured when using |
| 3423 | the curl_multi_socket() API with HTTP pipelining enabled and could lead to |
| 3424 | the pipeline basically stalling for a very long period of time until it took |
| 3425 | off again. |
| 3426 | |
| 3427 | - Jeff Weber reported memory leaks with aborted SCP and SFTP transfers and |
| 3428 | provided excellent repeat recipes. I fixed the cases I managed to reproduce |
| 3429 | but Jeff still got some (SCP) problems even after these fixes: |
| 3430 | http://curl.haxx.se/mail/lib-2008-05/0342.html |
| 3431 | |
| 3432 | Daniel Stenberg (26 May 2008) |
| 3433 | - Bug report #1973352 (http://curl.haxx.se/bug/view.cgi?id=1973352) identified |
| 3434 | how the HTTP redirect following code didn't properly follow to a new URL if |
| 3435 | the new url was but a query string such as "Location: ?moo=foo". Test case |
| 3436 | 1031 was added to verify this fix. |
| 3437 | |
| 3438 | - Andreas Faerber and Scott McCreary made (lib)curl build for the Haiku OS. |
| 3439 | |
| 3440 | Yang Tse (26 May 2008) |
| 3441 | - David Rosenstrauch reported that header files spnegohelp.h and |
| 3442 | openssl/objects.h were needed to compile SPNEGO support. |
| 3443 | |
| 3444 | Daniel Fandrich (22 May 2008) |
| 3445 | - Made sure to pass longs in to curl_easy_setopt where necessary in the |
| 3446 | example programs and libtest code. |
| 3447 | |
| 3448 | Daniel Stenberg (19 May 2008) |
| 3449 | - When trying to repeat a multi interface problem I fell over a few multi |
| 3450 | interface problems: |
| 3451 | |
| 3452 | o with pipelining disabled, the state should never be set to WAITDO but |
| 3453 | rather go straight to DO |
| 3454 | |
| 3455 | o we had multiple states for which the internal function returned no socket |
| 3456 | at all to wait for, with the effect that libcurl calls the socket callback |
| 3457 | (when curl_multi_socket() is used) with REMOVE prematurely (as it would be |
| 3458 | added again within very shortly) |
| 3459 | |
| 3460 | o when in DO and DOING states, the HTTP and HTTPS protocol handler functions |
| 3461 | didn't return that the socket should be waited for writing, but instead it |
| 3462 | was treated as if no socket was needing monitoring so again REMOVE was |
| 3463 | called prematurely. |
| 3464 | |
| 3465 | Daniel Stenberg (13 May 2008) |
| 3466 | - Added test case 556 that uses curl_easy_send() and curl_easy_recv() |
| 3467 | |
| 3468 | Daniel Stenberg (9 May 2008) |
| 3469 | - Introducing curl_easy_send() and curl_easy_recv(). They can be used to send |
| 3470 | and receive data over a connection previously setup with curl_easy_perform() |
| 3471 | and its CURLOPT_CONNECT_ONLY option. The sendrecv.c example was added to |
| 3472 | show how they can be used. |
| 3473 | |
| 3474 | Yang Tse (9 May 2008) |
| 3475 | - Internal time differences now use monotonic time source if available. |
| 3476 | This also implies the removal of the winmm.lib dependency for WIN32. |
| 3477 | |
| 3478 | Daniel Stenberg (9 May 2008) |
| 3479 | - Stefan Krause reported a busy-looping case when using the multi interface |
| 3480 | and doing CONNECT to a proxy. The app would then busy-loop until the proxy |
| 3481 | completed its response. |
| 3482 | |
| 3483 | Michal Marek (9 May 2008) |
| 3484 | - Make Curl_write and it's callees accept a const pointer, in preparation |
| 3485 | of tetetest's patch for curl_easy_send() |
| 3486 | |
| 3487 | Daniel Stenberg (7 May 2008) |
| 3488 | - Liam Healy filed the debian bug report #480044 |
| 3489 | (http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=480044) identifying a |
| 3490 | segfault when using krb5 ftp, but the krb4 code had the same problem. |
| 3491 | |
| 3492 | Yang Tse (7 May 2008) |
| 3493 | - Christopher Palow provided the patch (edited by me) that introduces the |
| 3494 | use of microsecond resolution keys for internal splay trees. |
| 3495 | |
| 3496 | Daniel Stenberg (4 May 2008) |
| 3497 | - Yuriy Sosov pointed out a configure fix for detecting c-ares when that is |
| 3498 | built debug-enabled. |
| 3499 | |
| 3500 | Daniel Stenberg (3 May 2008) |
| 3501 | - Ben Van Hof filed bug report #1945240: "libcurl sometimes sends body twice |
| 3502 | when using CURL_AUTH_ANY" (http://curl.haxx.se/bug/view.cgi?id=1945240). |
| 3503 | The problem was that when libcurl rewound a stream meant for upload when it |
| 3504 | would prepare for a second request, it could accidentally continue the |
| 3505 | sending of the rewound data on the first request instead of on the second. |
| 3506 | Ben also provided test case 1030 that verifies this fix. |
| 3507 | |
| 3508 | Daniel Stenberg (3 May 2008) |
| 3509 | - Jean-Francois Bertrand reported a libcurl crash with CURLOPT_TCP_NODELAY |
| 3510 | since libcurl used getprotobyname() and that isn't thread-safe. We now |
| 3511 | switched to use IPPROTO_TCP unconditionally, but perhaps the proper fix is |
| 3512 | to detect the thread-safe version of the function and use that. |
| 3513 | http://curl.haxx.se/mail/lib-2008-05/0011.html |
| 3514 | |
| 3515 | Daniel Stenberg (1 May 2008) |
| 3516 | - Bart Whiteley provided a patch that made libcurl work properly when an app |
| 3517 | uses the CURLOPT_OPENSOCKETFUNCTION callback to create a unix domain socket |
| 3518 | to a http server. |
| 3519 | |
| 3520 | Daniel Stenberg (29 Apr 2008) |
| 3521 | - To make it easier for applications that want lots of magic stuff done on |
| 3522 | redirections and thus cannot use CURLOPT_FOLLOWLOCATION easily, we now |
| 3523 | introduce the new CURLINFO_REDIRECT_URL option that lets applications |
| 3524 | extract the URL libcurl would've redirected to if it had been told to. This |
| 3525 | then enables the application to continue to that URL as it thinks is |
| 3526 | suitable, without having to re-implement the magic of creating the new URL |
| 3527 | from the Location: header etc. Test 1029 verifies it. |
| 3528 | |
| 3529 | Yang Tse (29 Apr 2008) |
| 3530 | - Improved easy interface resolving timeout handling in c-ares enabled builds |
| 3531 | |
| 3532 | Daniel Fandrich (28 Apr 2008) |
| 3533 | - Added test 1028 to test an HTTP redirect to a FTP URL. |
| 3534 | |
| 3535 | Daniel Stenberg (28 Apr 2008) |
| 3536 | - Norbert Frese filed bug report #1951588: "Problem with curlftpfs and |
| 3537 | libcurl" (http://curl.haxx.se/bug/view.cgi?id=1951588) which seems to be an |
| 3538 | identical report to what Denis Golovan reported in |
| 3539 | http://curl.haxx.se/mail/lib-2008-02/0108.html The FTP code didn't reset the |
| 3540 | user/password pointers properly even though there might've been a new |
| 3541 | struct/cconnection getting used. |
| 3542 | |
| 3543 | Daniel Stenberg (26 Apr 2008) |
| 3544 | - Reverted back to use automake 1.9.6 in the next release (from automake |
| 3545 | 1.10.1) since it *still* suffers from Solaris-related bugs. Our previous |
| 3546 | automake 1.10 problem was reported in bug #1701360 |
| 3547 | (http://curl.haxx.se/bug/view.cgi?id=1701360) and this recent problem was |
| 3548 | bug #1944825 (http://curl.haxx.se/bug/view.cgi?id=1944825). I have not |
| 3549 | personally approached the automake team about either one of these but I |
| 3550 | figure we need a Solaris 10 guy to do it! |
| 3551 | |
| 3552 | Yang Tse (25 Apr 2008) |
| 3553 | - Added 'timeout' and 'delay' attributes support for the test harness |
| 3554 | <command> subsection. |
| 3555 | |
| 3556 | Daniel Fandrich (24 Apr 2008) |
| 3557 | - Made --stderr able to redirect all stderr messages. |
| 3558 | |
| 3559 | Yang Tse (23 Apr 2008) |
| 3560 | - Improve synchronization between test harness runtests.pl script |
| 3561 | and test harness servers to minimize risk of false test failures. |
| 3562 | |
| 3563 | Daniel Fandrich (22 Apr 2008) |
| 3564 | - Added support for running on Symbian OS. |
| 3565 | |
| 3566 | Daniel Fandrich (18 Apr 2008) |
| 3567 | - Added test cases 1026 and 1027 to do some rudimentary tests on the --manual |
| 3568 | and --help options. |
| 3569 | |
| 3570 | Michal Marek (14 Apr 2008) |
| 3571 | - allow disabling the typechecker by defining CURL_DISABLE_TYPECHECK, as |
| 3572 | discussed in http://curl.haxx.se/mail/lib-2008-04/0291.html |
| 3573 | |
| 3574 | Daniel Stenberg (14 Apr 2008) |
| 3575 | - Stefan Krause reported a case where the OpenSSL handshake phase wasn't |
| 3576 | properly acknowledging the timeout values, like if you pulled the network |
| 3577 | plug in the midst of it. |
| 3578 | |
| 3579 | - Andre Guibert de Bruet fixed a second case of not checking the malloc() |
| 3580 | return code in the Negotiate code. |
| 3581 | |
| 3582 | - Sandor Feldi reported bug #1942022 |
| 3583 | (http://curl.haxx.se/bug/view.cgi?id=1942022) pointing out a mistake in the |
| 3584 | lib/Makefile.vc[68] makefiles' release-ssl-dll target. |
| 3585 | |
| 3586 | - Brock Noland reported that curl behaved differently depending on which order |
| 3587 | you used -i and -I. |
| 3588 | |
| 3589 | Daniel Stenberg (12 Apr 2008) |
| 3590 | - Andre Guibert de Bruet found and fixed a case where malloc() was called but |
| 3591 | was not checked for a NULL return, in the Negotiate code. |
| 3592 | |
| 3593 | Daniel Fandrich (9 Apr 2008) |
| 3594 | - Added test cases 1024 & 1025 to test a scenario similar to the one reported |
| 3595 | by Ben Combee where libcurl would send the wrong cookie to a redirected |
| 3596 | server. libcurl was doing the right thing in these test cases. |
| 3597 | |
| 3598 | Michal Marek (7 Apr 2008) |
| 3599 | - Fix the MIT / Heimdal check for good: |
| 3600 | Define HAVE_GSSMIT if <gssapi/{gssapi.h,gssapi_generic.h,gssapi_krb5.h}> are |
| 3601 | available, otherwise define HAVE_GSSHEIMDAL if <gssapi.h> is available. |
| 3602 | |
| 3603 | Only define GSS_C_NT_HOSTBASED_SERVICE to gss_nt_service_name if |
| 3604 | GSS_C_NT_HOSTBASED_SERVICE isn't declared by the gssapi headers. This should |
| 3605 | avoid breakage in case we wrongly recognize Heimdal as MIT again. |
| 3606 | |
| 3607 | Daniel Stenberg (5 Apr 2008) |
| 3608 | - Alexey Simak fixed curl_easy_reset() to reset the max redirect limit properly |
| 3609 | |
| 3610 | - Based on the Debian bug report #474224 that complained about the FTP error |
| 3611 | message when libcurl doesn't get a 220 back immediately on connect, I now |
| 3612 | changed it to be more specific on what the problem is. Also worth noticing: |
| 3613 | while the bug report contains an example where the response is: |
| 3614 | |
| 3615 | 421 There are too many connected users, please try again later |
| 3616 | |
| 3617 | we cannot assume that the error message will always be this readable nor |
| 3618 | that it fits within a particular boundary etc. |
| 3619 | |
| 3620 | Daniel Fandrich (3 Apr 2008) |
| 3621 | - Added test627 to test SFTP with CURLOPT_NOBODY |
| 3622 | |
| 3623 | Daniel Stenberg (3 Apr 2008) |
| 3624 | - Setting CURLOPT_NOBODY to FALSE will now switch the HTTP request method to |
| 3625 | GET simply because previously when you set CURLOPT_NOBODY to TRUE first and |
| 3626 | then FALSE you'd end up in a broken state where a HTTP request would do a |
| 3627 | HEAD by still act a lot like for a GET and hang waiting for the content etc. |
| 3628 | |
| 3629 | - Scott Barrett added support for CURLOPT_NOBODY over SFTP |
| 3630 | |
| 3631 | Daniel Fandrich (3 Apr 2008) |
| 3632 | - Made sure that curl_global_init is called in all the multithreaded |
| 3633 | example programs. |
| 3634 | |
| 3635 | Michal Marek (31 Mar 2008) |
| 3636 | - Removed the generated ca-bundle.h file. The verbatim value of $ca and |
| 3637 | $capath is known to configure, so it can be defined in config.h instead. |
| 3638 | |
| 3639 | Daniel Stenberg (31 Mar 2008) |
| 3640 | - Added CURLFORM_STREAM as a supported option to curl_formadd() to allow an |
| 3641 | application to provide data for a multipart with the read callback. Note |
| 3642 | that the size needs to be provided with CURLFORM_CONTENTSLENGTH when the |
| 3643 | stream option is used. This feature is verified by the new test case |
| 3644 | 554. This feature was sponsored by Xponaut. |
| 3645 | |
| 3646 | Daniel Fandrich (30 Mar 2008) |
| 3647 | - Changed the makefile so the doc/examples/ programs are never built in a |
| 3648 | normal build/install (only with the 'make check' target), so that a |
| 3649 | build failure in the examples isn't fatal. |
| 3650 | |
| 3651 | Version 7.18.1 (30 March 2008) |
| 3652 | |
| 3653 | Daniel Stenberg (28 Mar 2008) |
| 3654 | - Stephen Collyer pointed out that configure --with-libssh2 without a given |
| 3655 | path didn't work properly. |
| 3656 | |
| 3657 | Daniel Stenberg (27 Mar 2008) |
| 3658 | - As found out and reported by Dan Petitt, libcurl didn't show progress/call |
| 3659 | the progress callback for the first (potentially huge) piece of body data |
| 3660 | sent together with the POST request headers in the initial send(). |
| 3661 | |
| 3662 | Daniel Stenberg (25 Mar 2008) |
| 3663 | - Made setting the CURLOPT_SSL_CTX_FUNCTION option return a failure in case |
| 3664 | libcurl wasn't built to use OpenSSL as that is a prerequisite for this |
| 3665 | option to function! |
| 3666 | |
| 3667 | Daniel Stenberg (22 Mar 2008) |
| 3668 | - Fixed the problem with doing a zero byte SCP transfer, verified with test |
| 3669 | case 617 (which was added by Daniel Fandrich 5 Mar 2008). |
| 3670 | |
| 3671 | Daniel Fandrich (20 Mar 2008) |
| 3672 | - Fixed a problem where curl-config --protocols could erroneously show LDAPS |
| 3673 | support when curl didn't even have regular LDAP support. It looks like |
| 3674 | this could happen when the --enable-ldaps configure switch is given but |
| 3675 | configure couldn't find the LDAP headers or libraries. |
| 3676 | |
| 3677 | Michal Marek (20 Mar 2008) |
| 3678 | - Added --with-ca-path=DIRECTORY configure option to use an openSSL CApath by |
| 3679 | default instead of a ca bundle. The configure script will also look for a |
| 3680 | ca path if no ca bundle is found and no option given. |
| 3681 | |
| 3682 | - Fixed detection of previously installed curl-ca-bundle.crt |
| 3683 | |
| 3684 | Daniel Fandrich (18 Mar 2008) |
| 3685 | - Added test 626 to reproduce an infinite loop when given an invalid |
| 3686 | SFTP quote command reported by Vincent Le Normand, and fixed it. |
| 3687 | |
| 3688 | Michal Marek (18 Mar 2008) |
| 3689 | - Added curl_easy_getinfo typechecker. |
| 3690 | |
| 3691 | - Added macros for curl_share_setopt and curl_multi_setopt to check at least |
| 3692 | the correct number of arguments. |
| 3693 | |
| 3694 | Daniel Fandrich (13 Mar 2008) |
| 3695 | - Added tests 622-625 to test SFTP/SCP uploads. Test 625 was an attempt to |
| 3696 | reproduce the --ftp-create-dirs problem reported by Brian Ulm, but that |
| 3697 | seems to need a call curl_easy_reset() which this test case doesn't do. |
| 3698 | |
| 3699 | Daniel Stenberg (13 Mar 2008) |
| 3700 | - Brian Ulm figured out that if you did an SFTP upload with |
| 3701 | CURLOPT_FTP_CREATE_MISSING_DIRS to create a directory, and then re-used the |
| 3702 | handle and uploaded another file to another directory that needed to be |
| 3703 | created, the second upload would fail. Another case of a state variable that |
| 3704 | wasn't properly reset between requests. |
| 3705 | |
| 3706 | - I rewrote the 100-continue code to use a single state variable instead of |
| 3707 | the previous two ones. I think it made the logic somewhat clearer. |
| 3708 | |
| 3709 | Daniel Stenberg (11 Mar 2008) |
| 3710 | - Dmitry Popov filed bug report #1911069 |
| 3711 | (http://curl.haxx.se/bug/view.cgi?id=1911069) that identified a race |
| 3712 | condition in the name resolver code when the DNS cache is shared between |
| 3713 | multiple easy handles, each running in simultaneous threads that could cause |
| 3714 | crashes. |
| 3715 | |
| 3716 | - Added a macro for curl_easy_setopt() that accepts three arguments and simply |
| 3717 | does nothing with them, just to make sure libcurl users always use three |
| 3718 | arguments to this function. Due to its use of ... for the third argument, it |
| 3719 | is otherwise hard to detect abuse. |
| 3720 | |
| 3721 | Michal Marek (11 Mar 2008) |
| 3722 | - Added a type checking macro for curl_easy_setopt(), needs gcc-4.3 and only |
| 3723 | works in C mode atm (http://curl.haxx.se/mail/lib-2008-02/0267.html , |
| 3724 | http://curl.haxx.se/mail/lib-2008-02/0292.html ) |
| 3725 | |
| 3726 | Daniel Fandrich (10 Mar 2008) |
| 3727 | - Added tests 618-621 to test SFTP/SCP transfers of more than one file |
| 3728 | (test 620 tests the just-fixed problem reported by Brian Ulm). |
| 3729 | |
| 3730 | Daniel Stenberg (9 Mar 2008) |
| 3731 | - Brian Ulm reported a crash when doing a second SFTP transfer on a re-used |
| 3732 | easy handle if curl_easy_reset() was used between them. I fixed it and Brian |
| 3733 | verified that it cured his problem. |
| 3734 | |
| 3735 | - Brian Ulm reported that if you first tried to download a non-existing SFTP |
| 3736 | file and then fetched an existing one and re-used the handle, libcurl would |
| 3737 | still report the second one as non-existing as well! I fixed it and Brian |
| 3738 | verified that it cured his problem. |
| 3739 | |
| 3740 | Michal Marek (6 Mar 2008) |
| 3741 | - Fix the gssapi configure check to detect newer MIT Kerberos (patch by |
| 3742 | Michael Calmer) |
| 3743 | |
| 3744 | Yang Tse (6 Mar 2008) |
| 3745 | - Fix regression on Curl_socket_ready() and Curl_poll() so that these will |
| 3746 | again fail on select/poll errors different than EINTR. |
| 3747 | |
| 3748 | Daniel Fandrich (5 Mar 2008) |
| 3749 | - Fixed the test harness so it will write out zero-length data files. |
| 3750 | |
| 3751 | - Added tests 616 and 617 to see how SFTP and SCP cope with zero-length |
| 3752 | files, as questioned by Mike Protts. SFTP does for me but SCP doesn't |
| 3753 | so test 617 is disabled for now. |
| 3754 | |
| 3755 | Daniel S (4 Mar 2008) |
| 3756 | - Mike Protts brought a patch that makes resumed transfers work with SFTP. |
| 3757 | |
| 3758 | Daniel S (1 Mar 2008) |
| 3759 | - Anatoli Tubman found and fixed a crash with Negotiate authentication used on |
| 3760 | a re-used connection where both requests used Negotiate. |
| 3761 | |
| 3762 | Guenter Knauf (26 Feb 2008) |
| 3763 | - Kaspar Brand provided a patch to support server name indication (RFC 4366). |
| 3764 | |
| 3765 | Daniel S (25 Feb 2008) |
| 3766 | - Kaspar Brand made GnuTLS-built libcurl properly acknowledge the option that |
| 3767 | forces it to prefer SSLv3. |
| 3768 | |
| 3769 | Daniel S (23 Feb 2008) |
| 3770 | - Sam Listopad provided a patch in feature-request #1900014 |
| 3771 | http://curl.haxx.se/bug/feature.cgi?id=1900014 that makes libcurl (built to |
| 3772 | use OpenSSL) support a full chain of certificates in a given PKCS12 |
| 3773 | certificate. |
| 3774 | |
| 3775 | Daniel S (22 Feb 2008) |
| 3776 | - Georg Lippitsch made the src/Makefile.vc6 makefile use the same memory model |
| 3777 | options as the lib/Makefile.vc6 already did. |
| 3778 | |
| 3779 | Daniel S (21 Feb 2008) |
| 3780 | - Zmey Petroff found a crash when libcurl accessed a NULL pointer, which |
| 3781 | happened if you set the connection cache size to 1 and for example failed to |
| 3782 | login to an FTP site. Bug report #1896698 |
| 3783 | (http://curl.haxx.se/bug/view.cgi?id=1896698) |
| 3784 | |
| 3785 | Daniel S (20 Feb 2008) |
| 3786 | - Fixed test case 405 to not fail when libcurl is built with GnuTLS |
| 3787 | |
| 3788 | - Based on initial work done by Gautam Kachroo to address a bug, we now keep |
| 3789 | better control at the exact state of the connection's SSL status so that we |
| 3790 | know exactly when it has completed the SSL negotiation or not so that there |
| 3791 | won't be accidental re-uses of connections that are wrongly believed to be |
| 3792 | in SSL-completed-negotiate state. |
| 3793 | |
| 3794 | - We no longer support setting the CURLOPT_URL option from inside a callback |
| 3795 | such as the CURLOPT_SSL_CTX_FUNCTION one treat that as if it was a Location: |
| 3796 | following. The patch that introduced this feature was done for 7.11.0, but |
| 3797 | this code and functionality has been broken since about 7.15.4 (March 2006) |
| 3798 | with the introduction of non-blocking OpenSSL "connects". |
| 3799 | |
| 3800 | It was a hack to begin with and since it doesn't work and hasn't worked |
| 3801 | correctly for a long time and nobody has even noticed, I consider it a very |
| 3802 | suitable subject for plain removal. And so it was done. |
| 3803 | |
| 3804 | Guenter Knauf (19 Feb 2008) |
| 3805 | - We do no longer support SSLv2 by default since it has known flaws. |
| 3806 | Kaspar Brand provided a patch for all supported SSL toolkits. |
| 3807 | |
| 3808 | Daniel Fandrich (19 Feb 2008) |
| 3809 | - Added test309 to test HTTP redirect to HTTPS URL |
| 3810 | |
| 3811 | Daniel S (18 Feb 2008) |
| 3812 | - We're no longer providing a very old ca-bundle in the curl tarball. You can |
| 3813 | get a fresh one downloaded and created with 'make ca-bundle' or you can get |
| 3814 | one from here => http://curl.haxx.se/docs/caextract.html if you want a fresh |
| 3815 | new one extracted from Mozilla's recent list of ca certs. |
| 3816 | |
| 3817 | The configure option --with-ca-bundle now lets you specify what file to use |
| 3818 | as default ca bundle for your build. If not specified, the configure script |
| 3819 | will check a few known standard places for a global ca cert to use. |
| 3820 | |
| 3821 | Daniel S (17 Feb 2008) |
| 3822 | - Jerome Muffat-Meridol helped me fix Curl_done() to close the current |
| 3823 | connection by force when it was called before the entire request is |
| 3824 | completed, simply because we can't know if the connection really can be |
| 3825 | re-used safely at that point. |
| 3826 | |
| 3827 | - Based on the same debugging logic, I've also made Curl_http_done() not |
| 3828 | return CURLE_GOT_NOTHING if called "prematurely". This should have no real |
| 3829 | effect to anything but the code makes more sense like this. |
| 3830 | |
| 3831 | Daniel S (15 Feb 2008) |
| 3832 | - Made the gnutls code path not even try to get the server cert if no peer |
| 3833 | verification is requested. Previously it would even return failure if gnutls |
| 3834 | failed to get the server cert even though no verification was asked for. |
| 3835 | Public server showing the problem: https://www.net222.caisse-epargne.fr |
| 3836 | |
| 3837 | - Fix my Curl_timeleft() leftover mistake in the gnutls code |
| 3838 | |
| 3839 | - Pooyan McSporran found and fixed a flaw where you first would do a normal |
| 3840 | http request and then you'd reuse the handle and replace the Accept: header, |
| 3841 | as then libcurl would send two Accept: headers! |
| 3842 | |
| 3843 | Daniel S (11 Feb 2008) |
| 3844 | - Yang Tse pointed out a few remaining quirks from my timeout refactoring from |
| 3845 | Feb 7 that didn't abort properly on timeouts. These are actually old |
| 3846 | problems but now they should be fixed. |
| 3847 | |
| 3848 | Yang Tse (10 Feb 2008) |
| 3849 | - Bug report #1888932 (http://curl.haxx.se/bug/view.cgi?id=1888932) points out |
| 3850 | and provides test program that demonstrates that libcurl might not set error |
| 3851 | description message for error CURLE_COULDNT_RESOLVE_HOST for Windows threaded |
| 3852 | name resolver builds. Fixed now. |
| 3853 | |
| 3854 | Daniel Fandrich (8 Feb 2008) |
| 3855 | - Added key words to all SSL-using tests so they can be skipped if necessary. |
| 3856 | Removed a few unnecessary requires SSL statements. |
| 3857 | |
| 3858 | Daniel S (8 Feb 2008) |
| 3859 | - Mike Hommey filed and fixed bug report #1889856 |
| 3860 | (http://curl.haxx.se/bug/view.cgi?id=1889856): When using the gnutls ssl |
| 3861 | layer, cleaning-up and reinitializing curl ends up with https requests |
| 3862 | failing with "ASN1 parser: Element was not found" errors. Obviously a |
| 3863 | regression added in 7.16.3. |
| 3864 | |
| 3865 | Yang Tse (8 Feb 2008) |
| 3866 | - Improved test harness SCP/SFTP start up server verification, doing a real |
| 3867 | connection to the sftp server, authenticating and running a simple sftp |
| 3868 | pwd command using the test harness generated configuration and key files. |
| 3869 | |
| 3870 | Daniel S (8 Feb 2008) |
| 3871 | - Günter Knauf added lib/mk-ca-bundle.pl which gets the Firefox ca bundle and |
| 3872 | creates a suitable ca-bundle.crt file in PEM format for use with curl. The |
| 3873 | recommended way to run it is to use 'make ca-bundle' in the build tree root. |
| 3874 | |
| 3875 | Daniel Fandrich (7 Feb 2008) |
| 3876 | - Added tests 1022 and 1023 to validate output of curl-config --version and |
| 3877 | --vernum |
| 3878 | |
| 3879 | Daniel S (7 Feb 2008) |
| 3880 | - Refactored a lot of timeout code into a few functions in an attempt to make |
| 3881 | them all use the same (hopefully correct) logic to make it less error-prone |
| 3882 | and easier to introduce library-wide where it should be used. |
| 3883 | |
| 3884 | Yang Tse (6 Feb 2008) |
| 3885 | - Fix an issue in strdup replacement function when dealing with absolutely |
| 3886 | huge strings. Only systems without a standard strdup would be affected. |
| 3887 | |
| 3888 | Daniel S (3 Feb 2008) |
| 3889 | - Dmitry Kurochkin cleaned up the pipelining code and removed the need for and |
| 3890 | use of the "is_in_pipeline" struct field. |
| 3891 | |
| 3892 | - I wrote up and added the threaded-ssl.c example source code that shows how |
| 3893 | to do multi-threaded downloads of HTTPS files with a libcurl that is built |
| 3894 | with OpenSSL. It uses pthreads for the threading. |
| 3895 | |
| 3896 | Daniel S (31 Jan 2008) |
| 3897 | - Niklas Angebrand made the cookie support in libcurl properly deal with the |
| 3898 | "HttpOnly" feature introduced by Microsoft and apparently also supported by |
| 3899 | Firefox: http://msdn2.microsoft.com/en-us/library/ms533046.aspx . HttpOnly |
| 3900 | is now supported when received from servers in HTTP headers, when written to |
| 3901 | cookie jars and when read from existing cookie jars. |
| 3902 | |
| 3903 | I modified test case 31 and 46 to also do some basic HttpOnly testing. |
| 3904 | |
| 3905 | - Dmitry Kurochkin moved several struct fields from the connectdata struct to |
| 3906 | the SingleRequest one to make pipelining better. It is a bit tricky to keep |
| 3907 | them in the right place, to keep things related to the actual request or to |
| 3908 | the actual connection in the right place. |
| 3909 | |
| 3910 | Daniel S (29 Jan 2008) |
| 3911 | - Dmitry Kurochkin fixed Curl_done() for pipelining, as it could previously |
| 3912 | crash! |
| 3913 | |
| 3914 | - Michal Marek fixed minor mistake in test case 553 that prevented it from |
| 3915 | working on other IP-addresses or port numbers. |
| 3916 | |
| 3917 | Version 7.18.0 (28 January 2008) |
| 3918 | |
| 3919 | Daniel S (27 Jan 2008) |
| 3920 | - Dmitry Kurochkin: In "real world" testing I found more bugs in |
| 3921 | pipelining. Broken connection is not restored and we get into infinite |
| 3922 | loop. It happens because of wrong is_in_pipeline values. |
| 3923 | |
| 3924 | Daniel S (26 Jan 2008) |
| 3925 | - Kevin Reed filed bug report #1879375 |
| 3926 | (http://curl.haxx.se/bug/view.cgi?id=1879375) which describes how libcurl |
| 3927 | got lost in this scenario: proxy tunnel (or HTTPS over proxy), ask to do any |
| 3928 | proxy authentication and the proxy replies with an auth (like NTLM) and then |
| 3929 | closes the connection after that initial informational response. |
| 3930 | |
| 3931 | libcurl would not properly re-initialize the connection to the proxy and |
| 3932 | continue the auth negotiation like supposed. It does now however, as it will |
| 3933 | now detect if one or more authentication methods were available and asked |
| 3934 | for, and will thus retry the connection and continue from there. |
| 3935 | |
| 3936 | - I made the progress callback get called properly during proxy CONNECT. |
| 3937 | |
| 3938 | Daniel S (23 Jan 2008) |
| 3939 | - Igor Franchuk pointed out that CURLOPT_COOKIELIST set to "ALL" leaked |
| 3940 | memory, and so did "SESS". Fixed now. |
| 3941 | |
| 3942 | Yang Tse (22 Jan 2008) |
| 3943 | - Check poll.h at configuration time, and use it when sys/poll.h unavailable |
| 3944 | |
| 3945 | Daniel S (22 Jan 2008) |
| 3946 | - Dmitry Kurochkin removed the cancelled state for pipelining, as we agreed |
| 3947 | that it is bad anyway. Starting now, removing a handle that is in used in a |
| 3948 | pipeline will break the pipeline - it'll be set back up again but still... |
| 3949 | |
| 3950 | Yang Tse (21 Jan 2008) |
| 3951 | - Disable ldap support for cygwin builds, since it breaks whole build process. |
| 3952 | Fixing it will affect other platforms, so it is postponed for another release. |
| 3953 | |
| 3954 | Daniel S (18 Jan 2008) |
| 3955 | - Lau Hang Kin found and fixed a problem with the multi interface when doing |
| 3956 | CONNECT over a proxy. curl_multi_fdset() didn't report back the socket |
| 3957 | properly during that state, due to a missing case in the switch in the |
| 3958 | multi_getsock() function. |
| 3959 | |
| 3960 | Yang Tse (17 Jan 2008) |
| 3961 | - Don't abort tests 518 and 537 when unable to raise the open-file soft limit. |
| 3962 | |
| 3963 | Daniel S (16 Jan 2008) |
| 3964 | - Nathan Coulter's patch that makes runtests.pl respect the PATH when figuring |
| 3965 | out what valgrind to run. |
| 3966 | |
| 3967 | Yang Tse (16 Jan 2008) |
| 3968 | - Improved handling of out of memory in the command line tool that afected |
| 3969 | data url encoded HTTP POSTs when reading it from a file. |
| 3970 | |
| 3971 | Daniel S (16 Jan 2008) |
| 3972 | - Dmitry Kurochkin worked a lot on improving the HTTP Pipelining support that |
| 3973 | previously had a number of flaws, perhaps most notably when an application |
| 3974 | fired up N transfers at once as then they wouldn't pipeline at all that |
| 3975 | nicely as anyone would think... Test case 530 was also updated to take the |
| 3976 | improved functionality into account. |
| 3977 | |
| 3978 | - Calls to Curl_failf() are not supposed to provide a trailing newline as the |
| 3979 | function itself adds that. Fixed on 50 or something strings! |
| 3980 | |
| 3981 | Daniel S (15 Jan 2008) |
| 3982 | - I made the torture test on test 530 go through. This was actually due to |
| 3983 | silly code left from when we switched to let the multi handle "hold" the dns |
| 3984 | cache when using the multi interface... Of course this only triggered when a |
| 3985 | certain function call returned error at the correct moment. |
| 3986 | |
| 3987 | Daniel S (14 Jan 2008) |
| 3988 | - Joe Malicki filed bug report #1871269 |
| 3989 | (http://curl.haxx.se/bug/view.cgi?id=1871269) and we could fix his hang- |
| 3990 | problem that occurred when doing a large HTTP POST request with the |
| 3991 | response-body read from a callback. |
| 3992 | |
| 3993 | Daniel S (12 Jan 2008) |
| 3994 | - I re-arranged the curl --help output. All the options are now sorted on |
| 3995 | their long option names and all descriptions are one-liners. |
| 3996 | |
| 3997 | - Eric Landes provided the patch (edited by me) that introduces the |
| 3998 | --keepalive-time to curl to set the keepalive probe interval. I also took |
| 3999 | the opportunity to rename the recently added no-keep-alive option to |
| 4000 | no-keepalive to keep a consistent naming and to avoid getting two dashes in |
| 4001 | these option names. Eric also provided an update to the man page for the new |
| 4002 | option. |
| 4003 | |
| 4004 | Daniel S (11 Jan 2008) |
| 4005 | - Daniel Egger made CURLOPT_RANGE work on file:// URLs the very same way it |
| 4006 | already worked for FTP:// URLs. |
| 4007 | |
| 4008 | - I made the curl tool switch from using CURLOPT_IOCTLFUNCTION to now use the |
| 4009 | spanking new CURLOPT_SEEKFUNCTION simply to take advantage of the improved |
| 4010 | performance for the upload resume cases where you want to upload the last |
| 4011 | few bytes of a very large file. To implement this decently, I had to switch |
| 4012 | the client code for uploading from fopen()/fread() to plain open()/read() so |
| 4013 | that we can use lseek() to do >32bit seeks (as fseek() doesn't allow that) |
| 4014 | on systems that offer support for that. |
| 4015 | |
| 4016 | Daniel S (10 Jan 2008) |
| 4017 | - Michal Marek made curl-config --libs not include /usr/lib64 in the output |
| 4018 | (it already before skipped /usr/lib). /usr/lib64 is the default library |
| 4019 | directory on many 64bit systems and it's unlikely that anyone would use the |
| 4020 | path privately on systems where it's not. |
| 4021 | |
| 4022 | - Georg Lippitsch brought CURLOPT_SEEKFUNCTION and CURLOPT_SEEKDATA to allow |
| 4023 | libcurl to seek in a given input stream. This is particularly important when |
| 4024 | doing upload resumes when there's already a huge part of the file present |
| 4025 | remotely. Before, and still if this callback isn't used, libcurl will read |
| 4026 | and through away the entire file up to the point to where the resuming |
| 4027 | begins (which of course can be a slow opereration depending on file size, |
| 4028 | I/O bandwidth and more). This new function will also be preferred to get |
| 4029 | used instead of the CURLOPT_IOCTLFUNCTION for seeking back in a stream when |
| 4030 | doing multi-stage HTTP auth with POST/PUT. |
| 4031 | |
| 4032 | - Nikitinskit Dmitriy filed bug report #1868255 |
| 4033 | (http://curl.haxx.se/bug/view.cgi?id=1868255) with a patch. It identifies |
| 4034 | and fixes a problem with parsing WWW-Authenticate: headers with additional |
| 4035 | spaces in the line that the parser wasn't written to deal with. |
| 4036 | |
| 4037 | Daniel S (8 Jan 2008) |
| 4038 | - Introducing curl_easy_pause() and new magic return codes for both the read |
| 4039 | and the write callbacks that now can make a connection's reading and/or |
| 4040 | writing get paused. |
| 4041 | |
| 4042 | Daniel S (6 Jan 2008) |
| 4043 | - Jeff Johnson filed bug report #1863171 |
| 4044 | (http://curl.haxx.se/bug/view.cgi?id=1863171) where he pointed out that |
| 4045 | libcurl's date parser didn't accept a +1300 time zone which actually is used |
| 4046 | fairly often (like New Zealand's Dailight Savings Time), so I modified the |
| 4047 | parser to now accept up to and including -1400 to +1400. |
| 4048 | |
| 4049 | Daniel S (5 Jan 2008) |
| 4050 | - Based on further discussion on curl-library, I reverted yesterday's SOCKS5 |
| 4051 | code to instead introduce support for a new proxy type called |
| 4052 | CURLPROXY_SOCKS5_HOSTNAME that is used to send the host name to the proxy |
| 4053 | instead of IP address and there's thus no longer any need for a new |
| 4054 | curl_easy_setopt() option. |
| 4055 | |
| 4056 | The default SOCKS5 proxy is again back to sending the IP address to the |
| 4057 | proxy. The new curl command line option for enabling sending host name to a |
| 4058 | SOCKS5 proxy is now --socks5-hostname. |
| 4059 | |
| 4060 | Daniel S (4 Jan 2008) |
| 4061 | - Based on Maxim Perenesenko's patch, we now do SOCKS5 operations and let the |
| 4062 | proxy do the host name resolving and only if --socks5ip (or |
| 4063 | CURLOPT_SOCKS5_RESOLVE_LOCAL) is used we resolve the host name locally and |
| 4064 | pass on the IP address only to the proxy. |
| 4065 | |
| 4066 | Yang Tse (3 Jan 2008) |
| 4067 | - Modified test harness to allow SCP, SFTP and SOCKS4 tests to run with |
| 4068 | OpenSSH 2.9.9, SunSSH 1.0 or later versions. SOCKS5 tests need OpenSSH |
| 4069 | 3.7, SunSSH 1.0 or later. |
| 4070 | |
| 4071 | Daniel S (2 Jan 2008) |
| 4072 | - I fixed two cases of missing return code checks when handling chunked |
| 4073 | decoding where a write error (or abort return from a callback) didn't stop |
| 4074 | libcurl's processing. |
| 4075 | |
| 4076 | - I removed the socklen_t use from the public curl/curl.h header and instead |
| 4077 | made it an unsigned int. The type was only used in the curl_sockaddr struct |
| 4078 | definition (only used by the curl_opensocket_callback). On all platforms I |
| 4079 | could find information about, socklen_t is 32 unsigned bits large so I don't |
| 4080 | think this will break the API or ABI. The main reason for this change is of |
| 4081 | course for all the platforms that don't have a socklen_t definition in their |
| 4082 | headers to build fine again. Providing our own configure magic and custom |
| 4083 | definition of socklen_t on those systems proved to work but was a lot of |
| 4084 | cruft, code and extra magic needed - when this very small change of type |
| 4085 | seems harmless and still solves the missing socklen_t problem. |
| 4086 | |
| 4087 | - Richard Atterer brought a patch that added support for SOCKS4a proxies, |
| 4088 | which is an inofficial PROXY4 variant that sends the hostname to the proxy |
| 4089 | instead of the resolved address (which is already supported by SOCKS5). |
| 4090 | --socks4a is the curl command line option for it and CURLOPT_PROXYTYPE can |
| 4091 | now be set to CURLPROXY_SOCKS4A as well. |
| 4092 | |
| 4093 | Daniel S (1 Jan 2008) |
| 4094 | - Mohun Biswas pointed out that --libcurl generated a source code with an int |
| 4095 | function but without a return statement. While fixing that, I also took care |
| 4096 | about adding some better comments for the generated code. |
| 4097 | |
| 4098 | Daniel S (27 Dec 2007) |
| 4099 | - Dmitry Kurochkin mentioned a flaw |
| 4100 | (http://curl.haxx.se/mail/lib-2007-12/0252.html) in detect_proxy() which |
| 4101 | failed to set the bits.proxy variable properly when an environment variable |
| 4102 | told libcurl to use a http proxy. |
| 4103 | |
| 4104 | Daniel S (26 Dec 2007) |
| 4105 | - In an attempt to repeat the problem in bug report #1850730 |
| 4106 | (http://curl.haxx.se/bug/view.cgi?id=1850730) I wrote up test case 552. The |
| 4107 | test is doing a 70K POST with a read callback and an ioctl callback over a |
| 4108 | proxy requiring Digest auth. The test case code is more or less identical to |
| 4109 | the test recipe code provided by Spacen Jasset (who submitted the bug |
| 4110 | report). |
| 4111 | |
| 4112 | Daniel S (25 Dec 2007) |
| 4113 | - Gary Maxwell filed bug report #1856628 |
| 4114 | (http://curl.haxx.se/bug/view.cgi?id=1856628) and provided a fix for the |
| 4115 | (small) memory leak in the SSL session ID caching code. It happened when a |
| 4116 | previous entry in the cache was re-used. |
| 4117 | |
| 4118 | Daniel Fandrich (19 Dec 2007) |
| 4119 | - Ensure that nroff doesn't put anything but ASCII characters into the |
| 4120 | --manual text. |
| 4121 | |
| 4122 | Yang Tse (18 Dec 2007) |
| 4123 | - MSVC 9.0 (VS2008) does not support Windows build targets prior to WinXP, |
| 4124 | and makes wrong asumptions of build target when it isn't specified. So, |
| 4125 | if no build target has been defined we will target WinXP when building |
| 4126 | curl/libcurl with MSVC 9.0 (VS2008). |
| 4127 | |
| 4128 | - (http://curl.haxx.se/mail/archive-2007-12/0039.html) reported and fixed |
| 4129 | a file truncation problem on Windows build targets triggered when retrying |
| 4130 | a download with curl. |
| 4131 | |
| 4132 | Daniel S (17 Dec 2007) |
| 4133 | - Mateusz Loskot pointed out that MSVC 9.0 (VS2008) has the pollfd struct and |
| 4134 | defines in winsock2.h somehow differently than previous versions and that |
| 4135 | curl 7.17.1 would fail to compile out of the box. |
| 4136 | |
| 4137 | Daniel S (13 Dec 2007) |
| 4138 | - David Wright filed bug report #1849764 |
| 4139 | (http://curl.haxx.se/bug/view.cgi?id=1849764) with an included fix. He |
| 4140 | identified a problem for re-used connections that previously had sent |
| 4141 | Expect: 100-continue and in some situations the subsequent POST (that didn't |
| 4142 | use Expect:) still had the internal flag set for its use. David's fix (that |
| 4143 | makes the setting of the flag in every single request unconditionally) is |
| 4144 | fine and is now used! |
| 4145 | |
| 4146 | Daniel S (12 Dec 2007) |
| 4147 | - Gilles Blanc made the curl tool enable SO_KEEPALIVE for the connections and |
| 4148 | added the --no-keep-alive option that can disable that on demand. |
| 4149 | |
| 4150 | Daniel S (9 Dec 2007) |
| 4151 | - Andrew Moise filed bug report #1847501 |
| 4152 | (http://curl.haxx.se/bug/view.cgi?id=1847501) and pointed out a memcpy() |
| 4153 | that should be memmove() in the convert_lineends() function. |
| 4154 | |
| 4155 | Daniel S (8 Dec 2007) |
| 4156 | - Renamed all internal static functions that had Curl_ prefixes to no longer |
| 4157 | have them. The Curl_ prefix is exclusively used for library internal global |
| 4158 | symbols. Static functions can be named anything, except for using Curl_ or |
| 4159 | curl_ prefixes. This is for consistency and for easier maintainance and |
| 4160 | overview. |
| 4161 | |
| 4162 | - Cleaned up and reformatted the TODO document to look like the FAQ and |
| 4163 | CONTRIBUTE, which makes nicer web pages |
| 4164 | |
| 4165 | - Added test cases 549 and 550 that test CURLOPT_PROXY_TRANSFER_MODE. |
| 4166 | |
| 4167 | - Added keywords on a bunch of test cases |
| 4168 | |
| 4169 | - Fixed an OOM problem in the curl code that would lead to fclose on a bad |
| 4170 | handle and crash |
| 4171 | |
| 4172 | Daniel S (5 Dec 2007) |
| 4173 | - Spacen Jasset reported a problem with doing POST (with data read with a |
| 4174 | callback) over a proxy when NTLM is used as auth with the proxy. The bug |
| 4175 | also concerned Digest and was limited to using callback only. Spacen worked |
| 4176 | with us to provide a useful patch. I added the test case 547 and 548 to |
| 4177 | verify two variations of POST over proxy with NTLM. |
| 4178 | |
| 4179 | Daniel S (3 Dec 2007) |
| 4180 | - Ray Pekowski filed bug report #1842029 |
| 4181 | (http://curl.haxx.se/bug/view.cgi?id=1842029) in which he identified a |
| 4182 | problem with SSL session caching that prevent it from working, and provided |
| 4183 | the associated fix! |
| 4184 | |
| 4185 | - Now libcurl (built with OpenSSL) doesn't return error anymore if the remote |
| 4186 | SSL-based server doesn't present a certificate when the request is told to |
| 4187 | ignore certificate verification anyway. |
| 4188 | |
| 4189 | - Michal Marek introduced CURLOPT_PROXY_TRANSFER_MODE which is used to control |
| 4190 | the appending of the "type=" thing on FTP URLs when they are passed to a |
| 4191 | HTTP proxy. Some proxies just don't like that appending (which is done |
| 4192 | unconditionally in 7.17.1), and some proxies treat binary/ascii transfers |
| 4193 | better with the appending done! |
| 4194 | |
| 4195 | Daniel S (29 Nov 2007) |
| 4196 | - A bug report on the curl-library list showed a HTTP Digest session going on |
| 4197 | with a 700+ letter nonce. Previously libcurl only support 127 letter ones |
| 4198 | and now I bumped it to 1023. |
| 4199 | |
| 4200 | - Fixed the resumed FTP upload loop to not require that the read callback |
| 4201 | returns a full buffer on each invoke. |
| 4202 | |
| 4203 | Daniel S (25 Nov 2007) |
| 4204 | - Added test case 1015 that tests --data-urlencode in multiple ways |
| 4205 | |
| 4206 | - Fixed --data-urlencode for when no @ or = are used |
| 4207 | |
| 4208 | - Extended the user-agent buffer curl uses, since we can hit the 128 byte |
| 4209 | border with plenty development libraries used. Like my current set: "curl |
| 4210 | 7.17.2-CVS (i686-pc-linux-gnu) libcurl/7.17.2-CVS OpenSSL/0.9.8g |
| 4211 | zlib/1.2.3.3 c-ares/1.5.2-CVS libidn/1.1 libssh2/0.19.0-CVS" |
| 4212 | |
| 4213 | Daniel S (24 Nov 2007) |
| 4214 | - Internal rearrangements, so that the previous struct HandleData is no more. |
| 4215 | It is now known as SingleRequest and the Curl_transfer_keeper struct within |
| 4216 | that was remove entirely. This has the upside that there are less duplicate |
| 4217 | struct members that made it hard to see and remember what struct that was |
| 4218 | used to store what data. The transfer_keeper thing was once stored on a |
| 4219 | per-connection basis and then it made sense to have the duplicate info but |
| 4220 | since it was moved to the SessionHandle (in 7.16.0) it just added weirdness. |
| 4221 | The SingleRequest struct is used by data that only is valid for this single |
| 4222 | request. |
| 4223 | |
| 4224 | Yang Tse (22 Nov 2007) |
| 4225 | - Provide a socklen_t definition in curl.h for Win32 API build targets |
| 4226 | which don't have one. |
| 4227 | |
| 4228 | Daniel S (22 Nov 2007) |
| 4229 | - Alessandro Vesely helped me improve the --data-urlencode's syntax, parser |
| 4230 | and documentation. |
| 4231 | |
| 4232 | Daniel S (21 Nov 2007) |
| 4233 | - While inspecting the Negotiate code, I noticed how the proxy auth was using |
| 4234 | the same state struct as the host auth, so both could never be used at the |
| 4235 | same time! I fixed it (without being able to check) to use two separate |
| 4236 | structs to allow authentication using Negotiate on host and proxy |
| 4237 | simultaneously. |
| 4238 | |
| 4239 | Daniel S (20 Nov 2007) |
| 4240 | - Emil Romanus pointed out a bug that made an easy handle get the cookie |
| 4241 | engine activated when set to use a share (even if the share doesn't share |
| 4242 | cookies). I fixed it. |
| 4243 | |
| 4244 | - Fixed a very long-lasting mprintf() bug that occurred when we did "%.*s%s", |
| 4245 | since the second %s would then wrongly used the numerical precision argument |
| 4246 | instead and crash. |
| 4247 | |
| 4248 | - Introduced --data-urlencode to the curl tool for easier url encoding of the |
| 4249 | data sent in a post. |
| 4250 | |
| 4251 | Daniel S (18 Nov 2007) |
| 4252 | - Rob Crittenden fixed SSL connections with NSS done with the multi-interface |
| 4253 | |
| 4254 | Daniel S (17 Nov 2007) |
| 4255 | - Michal Marek made the test suite remember what test servers that fail to |
| 4256 | start so that subsequent tries are simply skipped. |
| 4257 | |
| 4258 | - Andres Garcia made the examples build fine on Windows (mingw + msys) when |
| 4259 | the lib was built staticly. |
| 4260 | |
| 4261 | Daniel S (16 Nov 2007) |
| 4262 | - Ates Goral identified a problem in http.c:add_buffer_send() when a debug |
| 4263 | callback was used, as it could wrongly pass on a bad size for the outgoing |
| 4264 | HTTP header. The bad size would be a very large value as it was a wrapped |
| 4265 | size_t content. This happened when the whole HTTP request failed to get sent |
| 4266 | in one single send. http://curl.haxx.se/mail/lib-2007-11/0165.html |
| 4267 | |
| 4268 | Daniel S (15 Nov 2007) |
| 4269 | - Fixed yet another remaining problem with doing SFTP directory listings on a |
| 4270 | re-used persistent connection. Mentioned by Immanuel Gregoire on the mailing |
| 4271 | list. |
| 4272 | |
| 4273 | - Michal Marek fixed the test suite to better deal with the case when the HTTP |
| 4274 | IPv6 server can't run. |
| 4275 | |
| 4276 | Yang Tse (14 Nov 2007) |
| 4277 | - Fix a variable potential wrapping in add_buffer() when using absolutely |
| 4278 | huge send buffer sizes. |
| 4279 | |
| 4280 | Daniel S (13 Nov 2007) |
| 4281 | - Fixed a remaining problem with doing SFTP directory listings on a re-used |
| 4282 | persistent connection. Mentioned by Immanuel Gregoire on the mailing list. |
| 4283 | |
| 4284 | Daniel S (12 Nov 2007) |
| 4285 | - Bug report #1830637 (http://curl.haxx.se/bug/view.cgi?id=1830637), which was |
| 4286 | forwarded from the Gentoo bug tracker by Daniel Black and was originally |
| 4287 | submitted by Robin Johnson, pointed out that libcurl would do bad memory |
| 4288 | references when it failed and bailed out before the handler thing was |
| 4289 | setup. My fix is not done like the provided patch does it, but instead I |
| 4290 | make sure that there's never any chance for a NULL pointer in that struct |
| 4291 | member. |
| 4292 | |
| 4293 | Yang Tse (10 Nov 2007) |
| 4294 | - Vikram Saxena (http://curl.haxx.se/mail/lib-2007-11/0096.html) pointed out |
| 4295 | that the pollfd struct was being multi defined when using VS2008. This is |
| 4296 | now fixed in /curl/lib/select.h |
| 4297 | |
| 4298 | Daniel S (8 Nov 2007) |
| 4299 | - Bug report #1823487 (http://curl.haxx.se/bug/view.cgi?id=1823487) pointed |
| 4300 | out that SFTP requests didn't use persistent connections. Neither did SCP |
| 4301 | ones. I gave the SSH code a good beating and now both SCP and SFTP should |
| 4302 | use persistent connections fine. I also did a bunch of indent changes as |
| 4303 | well as a bug fix for the "keyboard interactive" auth. |
| 4304 | |
| 4305 | Dan F (6 Nov 2007) |
| 4306 | - Improved telnet support by drastically reducing the number of write |
| 4307 | callbacks needed to pass a buffer to the user. Instead one per byte it |
| 4308 | is now as little as one per segment. |
| 4309 | |
| 4310 | Yang Tse (6 Nov 2007) |
| 4311 | - Bug report #1824894 (http://curl.haxx.se/bug/view.cgi?id=1824894) pointed |
| 4312 | out a problem in curl.h when building C++ apps with MSVC. To fix it, the |
| 4313 | inclusion of header files in curl.h is moved outside of the C++ extern "C" |
| 4314 | linkage block. |
| 4315 | |
| 4316 | Daniel S (1 Nov 2007) |
| 4317 | - Toby Peterson patched a memory problem in the command line tool that |
| 4318 | happened when a user had a home dir as an empty string. curl would then do |
| 4319 | free() on a wrong area. |
| 4320 | |
| 4321 | Dan F (1 Nov 2007) |
| 4322 | - Fixed curl-config --features to not display libz when it wasn't used |
| 4323 | due to a missing header file. |
| 4324 | |
| 4325 | Dan F (31 October 2007) |
| 4326 | - Fixed the output of curl-config --protocols which showed SCP and SFTP |
| 4327 | always, except when --without-libssh2 was given |
| 4328 | |
| 4329 | - Added test cases 1013 and 1014 to check that curl-config --protocols and |
| 4330 | curl-config --features matches the output of curl --version |
| 4331 | |
| 4332 | Dan F (30 October 2007) |
| 4333 | - Fixed an OOM problem with file: URLs |
| 4334 | |
| 4335 | - Moved Curl_file_connect into the protocol handler struct |
| 4336 | |
| 4337 | Dan F (29 October 2007) |
| 4338 | - Added test case 546 to check that subsequent FTP transfers work after a |
| 4339 | failed one using the multi interface |
| 4340 | |
| 4341 | Daniel S (29 October 2007) |
| 4342 | - Based on one of those bug reports that are intercepted by a distro's bug |
| 4343 | tracker (https://bugzilla.redhat.com/show_bug.cgi?id=316191), I now made |
| 4344 | curl-config --features and --protocols show the correct output when built |
| 4345 | with NSS. |
| 4346 | |
| 4347 | Version 7.17.1 (29 October 2007) |
| 4348 | |
| 4349 | Dan F (25 October 2007) |
| 4350 | - Added the --static-libs option to curl-config |
| 4351 | |
| 4352 | Daniel S (25 October 2007) |
| 4353 | - Made libcurl built with NSS possible to ignore the peer verification. |
| 4354 | Previously it would fail if the ca bundle wasn't present, even if the code |
| 4355 | ignored the verification results. |
| 4356 | |
| 4357 | Patrick M (25 October 2007) |
| 4358 | - Fixed test server to allow null bytes in binary posts. |
| 4359 | _ Added tests 35, 544 & 545 to check binary data posts, both static (in place) |
| 4360 | and dynamic (copied). |
| 4361 | |
| 4362 | Daniel S (25 October 2007) |
| 4363 | - Michal Marek fixed the test script to be able to use valgrind even when the |
| 4364 | lib is built shared with libtool. |
| 4365 | |
| 4366 | - Fixed a few memory leaks when the same easy handle is re-used to request |
| 4367 | URLs with different protocols. FTP and TFTP related leaks. Caught thanks to |
| 4368 | Dan F's new test cases. |
| 4369 | |
| 4370 | Dan F (24 October 2007) |
| 4371 | - Fixed the test FTP and TFTP servers to support the >10000 test number |
| 4372 | notation |
| 4373 | |
| 4374 | - Added test cases 2000 through 2003 which test multiple protocols using the |
| 4375 | same easy handle |
| 4376 | |
| 4377 | - Fixed the filecheck: make target to work outside the source tree |
| 4378 | |
| 4379 | Daniel S (24 October 2007) |
| 4380 | - Vladimir Lazarenko pointed out that we should do some 'mt' magic when |
| 4381 | building with VC8 to get the "manifest" embedded to make fine stand-alone |
| 4382 | binaries. The maketgz and the src/Makefile.vc6 files were adjusted |
| 4383 | accordingly. |
| 4384 | |
| 4385 | Daniel S (23 October 2007) |
| 4386 | - Bug report #1812190 (http://curl.haxx.se/bug/view.cgi?id=1812190) points out |
| 4387 | that libcurl tried to re-use connections a bit too much when using non-SSL |
| 4388 | protocols tunneled over a HTTP proxy. |
| 4389 | |
| 4390 | Daniel S (22 October 2007) |
| 4391 | - Michal Marek forwarded the bug report |
| 4392 | https://bugzilla.novell.com/show_bug.cgi?id=332917 about a HTTP redirect to |
| 4393 | FTP that caused memory havoc. His work together with my efforts created two |
| 4394 | fixes: |
| 4395 | |
| 4396 | #1 - FTP::file was moved to struct ftp_conn, because is has to be dealt with |
| 4397 | at connection cleanup, at which time the struct HandleData could be |
| 4398 | used by another connection. |
| 4399 | Also, the unused char *urlpath member is removed from struct FTP. |
| 4400 | |
| 4401 | #2 - provide a Curl_reset_reqproto() function that frees |
| 4402 | data->reqdata.proto.* on connection setup if needed (that is if the |
| 4403 | SessionHandle was used by a different connection). |
| 4404 | |
| 4405 | A long-term goal is of course to somehow get rid of how the reqdata struct |
| 4406 | is used, as it is too error-prone. |
| 4407 | |
| 4408 | - Bug report #1815530 (http://curl.haxx.se/bug/view.cgi?id=1815530) points out |
| 4409 | that specifying a proxy with a trailing slash didn't work (unless it also |
| 4410 | contained a port number). |
| 4411 | |
| 4412 | Patrick M (15 October 2007) |
| 4413 | - Fixed the dynamic CURLOPT_POSTFIELDS problem: this option is now static again |
| 4414 | and option CURLOPT_COPYPOSTFIELDS has been added to support dynamic mode. |
| 4415 | |
| 4416 | Patrick M (12 October 2007) |
| 4417 | - Added per-protocol callback static tables, replacing callback ptr storage |
| 4418 | in the connectdata structure by a single handler table ptr. |
| 4419 | |
| 4420 | Dan F (11 October 2007) |
| 4421 | - Fixed the -l option of runtests.pl |
| 4422 | |
| 4423 | - Added support for skipping tests based on key words. |
| 4424 | |
| 4425 | Daniel S (9 October 2007) |
| 4426 | - Michal Marek removed the no longer existing return codes from the curl.1 |
| 4427 | man page. |
| 4428 | |
| 4429 | Daniel S (7 October 2007) |
| 4430 | - Known bug #47, which confused libcurl if doing NTLM auth over a proxy with |
| 4431 | a response that was larger than 16KB is now improved slightly so that now |
| 4432 | the restriction at 16KB is for the headers only and it should be a rare |
| 4433 | situation where the response-headers exceed 16KB. Thus, I consider #47 fixed |
| 4434 | and the header limitation is now known as known bug #48. |
| 4435 | |
| 4436 | Daniel S (5 October 2007) |
| 4437 | - Michael Wallner made the CULROPT_COOKIELIST option support a new magic |
| 4438 | string: "FLUSH". Using that will cause libcurl to flush its cookies to the |
| 4439 | CURLOPT_COOKIEJAR file. |
| 4440 | |
| 4441 | - The new file docs/libcurl/ABI describes how we view ABI breakages, soname |
| 4442 | bumps and what the version number's significance to all that is. |
| 4443 | |
| 4444 | Daniel S (4 October 2007) |
| 4445 | - I enabled test 1009 and made the --local-port use a wide range to reduce the |
| 4446 | risk of failures. |
| 4447 | |
| 4448 | - Kim Rinnewitz reported that --local-port didn't work with TFTP transfers. |
| 4449 | This happened because the tftp code always uncondionally did a bind() |
| 4450 | without caring if one already had been done and then it failed. I wrote a |
| 4451 | test case (1009) to verify this, but it is a bit error-prone since it will |
| 4452 | have to pick a fixed local port number and since the tests are run on so |
| 4453 | many different hosts in different situations I'll add it in disabled state. |
| 4454 | |
| 4455 | Yang Tse (3 October 2007) |
| 4456 | - Fixed issue related with the use of ares_timeout() result. |
| 4457 | |
| 4458 | Daniel S (3 October 2007) |
| 4459 | - Alexey Pesternikov introduced CURLOPT_OPENSOCKETFUNCTION and |
| 4460 | CURLOPT_OPENSOCKETDATA to set a callback that allows an application to |
| 4461 | replace the socket() call used by libcurl. It basically allows the app to |
| 4462 | change address, protocol or whatever of the socket. |
| 4463 | |
| 4464 | - I renamed the CURLE_SSL_PEER_CERTIFICATE error code to |
| 4465 | CURLE_PEER_FAILED_VERIFICATION (standard CURL_NO_OLDIES style), and made |
| 4466 | this return code get used by the previous SSH MD5 fingerprint check in case |
| 4467 | it fails. |
| 4468 | |
| 4469 | - Based on a patch brought by Johnny Luong, libcurl now offers |
| 4470 | CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 and the curl tool --hostpubmd5. They both |
| 4471 | make the SCP or SFTP connection verify the remote host's md5 checksum of the |
| 4472 | public key before doing a connect, to reduce the risk of a man-in-the-middle |
| 4473 | attack. |
| 4474 | |
| 4475 | Daniel S (2 October 2007) |
| 4476 | - libcurl now handles chunked-encoded CONNECT responses |
| 4477 | |
| 4478 | Daniel S (1 October 2007) |
| 4479 | - Alex Fishman reported a curl_easy_escape() problem that was made the |
| 4480 | function do wrong on all input bytes that are >= 0x80 (decimal 128) due to a |
| 4481 | signed / unsigned mistake in the code. I fixed it and added test case 543 to |
| 4482 | verify. |
| 4483 | |
| 4484 | Daniel S (29 September 2007) |
| 4485 | - Immanuel Gregoire fixed a problem with persistent transfers over SFTP. |
| 4486 | |
| 4487 | Daniel S (28 September 2007) |
| 4488 | - Adapted the c-ares code to the API change c-ares 1.5.0 brings in the |
| 4489 | notifier callback(s). |
| 4490 | |
| 4491 | Dan F (26 September 2007) |
| 4492 | - Enabled a few more gcc warnings with --enable-debug. Renamed a few |
| 4493 | variables to avoid shadowing global declarations. |
| 4494 | |
| 4495 | Daniel S (26 September 2007) |
| 4496 | - Philip Langdale provided the new CURLOPT_POST301 option for |
| 4497 | curl_easy_setopt() that alters how libcurl functions when following |
| 4498 | redirects. It makes libcurl obey the RFC2616 when a 301 response is received |
| 4499 | after a non-GET request is made. Default libcurl behaviour is to change |
| 4500 | method to GET in the subsequent request (like it does for response code 302 |
| 4501 | - because that's what many/most browsers do), but with this CURLOPT_POST301 |
| 4502 | option enabled it will do what the spec says and do the next request using |
| 4503 | the same method again. I.e keep POST after 301. |
| 4504 | |
| 4505 | The curl tool got this option as --post301 |
| 4506 | |
| 4507 | Test case 1011 and 1012 were added to verify. |
| 4508 | |
| 4509 | - Max Katsev reported that when doing a libcurl FTP request with |
| 4510 | CURLOPT_NOBODY enabled but not CURLOPT_HEADER, libcurl wouldn't do TYPE |
| 4511 | before it does SIZE which makes it less useful. I walked over the code and |
| 4512 | made it do this properly, and added test case 542 to verify it. |
| 4513 | |
| 4514 | Daniel S (24 September 2007) |
| 4515 | - Immanuel Gregoire fixed KNOWN_BUGS #44: --ftp-method nocwd did not handle |
| 4516 | URLs ending with a slash properly (it should list the contents of that |
| 4517 | directory). Test case 351 brought back and also test 1010 was added. |
| 4518 | |
| 4519 | Daniel S (21 September 2007) |
| 4520 | - Mark Davies fixed Negotiate authentication over proxy, and also introduced |
| 4521 | the --proxy-negotiate command line option to allow a user to explicitly |
| 4522 | select it. |
| 4523 | |
| 4524 | Daniel S (19 September 2007) |
| 4525 | - Rob Crittenden provided an NSS update with the following highlights: |
| 4526 | |
| 4527 | o It looks for the NSS database first in the environment variable SSL_DIR, |
| 4528 | then in /etc/pki/nssdb, then it initializes with no database if neither of |
| 4529 | those exist. |
| 4530 | |
| 4531 | o If the NSS PKCS#11 libnspsem.so driver is available then PEM files may be |
| 4532 | loaded, including the ca-bundle. If it is not available then only |
| 4533 | certificates already in the NSS database are used. |
| 4534 | |
| 4535 | o Tries to detect whether a file or nickname is being passed in so the right |
| 4536 | thing is done |
| 4537 | |
| 4538 | o Added a bit of code to make the output more like the OpenSSL module, |
| 4539 | including displaying the certificate information when connecting in |
| 4540 | verbose mode |
| 4541 | |
| 4542 | o Improved handling of certificate errors (expired, untrusted, etc) |
| 4543 | |
| 4544 | The libnsspem.so PKCS#11 module is currently only available in Fedora |
| 4545 | 8/rawhide. Work will be done soon to upstream it. The NSS module will work |
| 4546 | with or without it, all that changes is the source of the certificates and |
| 4547 | keys. |
| 4548 | |
| 4549 | Daniel S (18 September 2007) |
| 4550 | - Immanuel Gregoire pointed out that public key SSH auth failed if no |
| 4551 | public/private key was specified and there was no HOME environment variable, |
| 4552 | and then it didn't continue to try the other auth methods. Now it will |
| 4553 | instead try to get the files id_dsa.pub and id_dsa from the current |
| 4554 | directory if none of the two conditions were met. |
| 4555 | |
| 4556 | Dan F (17 September 2007) |
| 4557 | - Added hooks to the test suite to make it possible to test a curl running |
| 4558 | on a remote host. |
| 4559 | |
| 4560 | - Changed some FTP tests to validate the format of the PORT and EPRT commands |
| 4561 | sent by curl, if not the addresses themselves. |
| 4562 | |
| 4563 | Daniel S (15 September 2007) |
| 4564 | - Michal Marek made libcurl automatically append ";type=<a|i>" when using HTTP |
| 4565 | proxies for FTP urls. |
| 4566 | |
| 4567 | - Günter Knauf fixed LDAP builds in the Windows makefiles and fixed LDAPv3 |
| 4568 | support on Windows. |
| 4569 | |
| 4570 | Dan F (13 September 2007) |
| 4571 | - Added LDAPS, SCP and SFTP to curl-config --protocols. Removed and |
| 4572 | fixed some AC_SUBST configure entries. |
| 4573 | |
| 4574 | Version 7.17.0 (13 September 2007) |
| 4575 | |
| 4576 | Daniel S (12 September 2007) |
| 4577 | - Bug report #1792649 (http://curl.haxx.se/bug/view.cgi?id=1792649) pointed |
| 4578 | out a problem with doing an empty upload over FTP on a re-used connection. |
| 4579 | I added test case 541 to reproduce it and to verify the fix. |
| 4580 | |
| 4581 | - I noticed while writing test 541 that the FTP code wrongly did a CWD on the |
| 4582 | second transfer as it didn't store and remember the "" path from the |
| 4583 | previous transfer so it would instead CWD to the entry path as stored. This |
| 4584 | worked, but did a superfluous command. Thus, test case 541 now also verifies |
| 4585 | this fix. |
| 4586 | |
| 4587 | Dan F (5 September 2007) |
| 4588 | - Added test case 1007 to test permission problem when uploading with TFTP |
| 4589 | (to validate bug #1790403). |
| 4590 | |
| 4591 | - TFTP now reports the "not defined" TFTP error code 0 as an error, |
| 4592 | not success. |
| 4593 | |
| 4594 | Daniel S (5 September 2007) |
| 4595 | - Continued the work on a fix for #1779054 |
| 4596 | (http://curl.haxx.se/bug/view.cgi?id=1779054). My previous fix from August |
| 4597 | 24 was not complete (either) but could accidentally "forget" parts of a |
| 4598 | server response which led to faulty server response time-out errors. |
| 4599 | |
| 4600 | Dan F (5 September 2007) |
| 4601 | - Minix doesn't support getsockopt on UDP sockets or send/recv on TCP |
| 4602 | sockets. |
| 4603 | |
| 4604 | Dan F (31 August 2007) |
| 4605 | - Made some of the error strings returned by the *strerror functions more |
| 4606 | generic, and more consistent with each other. |
| 4607 | |
| 4608 | - Renamed the curl_ftpssl enum to curl_usessl and its enumerated constants, |
| 4609 | creating macros for backward compatibility: |
| 4610 | |
| 4611 | CURLFTPSSL_NONE => CURLUSESSL_NONE |
| 4612 | CURLFTPSSL_TRY => CURLUSESSL_TRY |
| 4613 | CURLFTPSSL_CONTROL => CURLUSESSL_CONTROL |
| 4614 | CURLFTPSSL_ALL => CURLUSESSL_ALL |
| 4615 | CURLFTPSSL_LAST => CURLUSESSL_LAST |
| 4616 | |
| 4617 | Dan F (30 August 2007) |
| 4618 | - Renamed several libcurl error codes and options to make them more general |
| 4619 | and allow reuse by multiple protocols. Several unused error codes were |
| 4620 | removed. In all cases, macros were added to preserve source (and binary) |
| 4621 | compatibility with the old names. These macros are subject to removal at |
| 4622 | a future date, but probably not before 2009. An application can be |
| 4623 | tested to see if it is using any obsolete code by compiling it with the |
| 4624 | CURL_NO_OLDIES macro defined. |
| 4625 | |
| 4626 | The following unused error codes were removed: |
| 4627 | |
| 4628 | CURLE_BAD_CALLING_ORDER |
| 4629 | CURLE_BAD_PASSWORD_ENTERED |
| 4630 | CURLE_FTP_CANT_RECONNECT |
| 4631 | CURLE_FTP_COULDNT_GET_SIZE |
| 4632 | CURLE_FTP_COULDNT_SET_ASCII |
| 4633 | CURLE_FTP_USER_PASSWORD_INCORRECT |
| 4634 | CURLE_FTP_WEIRD_USER_REPLY |
| 4635 | CURLE_FTP_WRITE_ERROR |
| 4636 | CURLE_LIBRARY_NOT_FOUND |
| 4637 | CURLE_MALFORMAT_USER |
| 4638 | CURLE_OBSOLETE |
| 4639 | CURLE_SHARE_IN_USE |
| 4640 | CURLE_URL_MALFORMAT_USER |
| 4641 | |
| 4642 | The following error codes were renamed: |
| 4643 | |
| 4644 | CURLE_FTP_ACCESS_DENIED => CURLE_REMOTE_ACCESS_DENIED |
| 4645 | CURLE_FTP_COULDNT_SET_BINARY => CURLE_FTP_COULDNT_SET_TYPE |
| 4646 | CURLE_FTP_SSL_FAILED => CURLE_USE_SSL_FAILED |
| 4647 | CURLE_FTP_QUOTE_ERROR => CURLE_QUOTE_ERROR |
| 4648 | CURLE_TFTP_DISKFULL => CURLE_REMOTE_DISK_FULL |
| 4649 | CURLE_TFTP_EXISTS => CURLE_REMOTE_FILE_EXISTS |
| 4650 | CURLE_HTTP_RANGE_ERROR => CURLE_RANGE_ERROR |
| 4651 | |
| 4652 | The following options were renamed: |
| 4653 | |
| 4654 | CURLOPT_SSLKEYPASSWD => CURLOPT_KEYPASSWD |
| 4655 | CURLOPT_FTPAPPEND => CURLOPT_APPEND |
| 4656 | CURLOPT_FTPLISTONLY => CURLOPT_DIRLISTONLY |
| 4657 | CURLOPT_FTP_SSL => CURLOPT_USE_SSL |
| 4658 | |
| 4659 | A few more changes will take place with the next SONAME bump of the |
| 4660 | library. These are documented in docs/TODO |
| 4661 | |
| 4662 | - Documented some newer error codes in libcurl-error(3) |
| 4663 | |
| 4664 | - Added more accurate error code returns from SFTP operations. Added test |
| 4665 | case 615 to test an SFTP upload failure. |
| 4666 | |
| 4667 | Dan F (28 August 2007) |
| 4668 | - Some minor internal type and const changes based on a splint scan. |
| 4669 | |
| 4670 | Daniel S (24 August 2007) |
| 4671 | - Bug report #1779054 (http://curl.haxx.se/bug/view.cgi?id=1779054) pointed |
| 4672 | out that libcurl didn't deal with large responses from server commands, when |
| 4673 | the single response was consisting of multiple lines but of a total size of |
| 4674 | 16KB or more. Dan Fandrich improved the ftp test script and provided test |
| 4675 | case 1006 to repeat the problem, and I fixed the code to make sure this new |
| 4676 | test case runs fine. |
| 4677 | |
| 4678 | Patrick M (23 August 2007) |
| 4679 | - OS/400 port: new files lib/config-os400.h lib/setup-os400.h packages/OS400/*. |
| 4680 | See packages/OS400/README.OS400. |
| 4681 | |
| 4682 | Daniel S (23 August 2007) |
| 4683 | - Bug report #1779751 (http://curl.haxx.se/bug/view.cgi?id=1779751) pointed |
| 4684 | out that doing first a file:// upload and then an FTP upload crashed libcurl |
| 4685 | or at best caused furious valgrind complaints. Fixed now! |
| 4686 | |
| 4687 | Daniel S (22 August 2007) |
| 4688 | - Bug report #1779054 (http://curl.haxx.se/bug/view.cgi?id=1779054) pointed |
| 4689 | out that libcurl didn't deal with very long (>16K) FTP server response lines |
| 4690 | properly. Starting now, libcurl will chop them off (thus the client app will |
| 4691 | not get the full line) but survive and deal with them fine otherwise. Test |
| 4692 | case 1003 was added to verify this. |
| 4693 | |
| 4694 | Daniel S (20 August 2007) |
| 4695 | - Based on a patch by Christian Vogt, the FTP code now sets the upcoming |
| 4696 | download transfer size much earlier to be possible to get read with |
| 4697 | CURLINFO_CONTENT_LENGTH_DOWNLOAD as soon as possible. This is very much in a |
| 4698 | similar spirit to the HTTP size change from August 11 2007. |
| 4699 | |
| 4700 | Daniel S (18 August 2007) |
| 4701 | - Robson Braga Araujo filed bug report #1776232 |
| 4702 | (http://curl.haxx.se/bug/view.cgi?id=1776232) about libcurl calling |
| 4703 | Curl_client_write(), passing on a const string that the caller may not |
| 4704 | modify and yet it does (on some platforms). |
| 4705 | |
| 4706 | - Robson Braga Araujo filed bug report #1776235 |
| 4707 | (http://curl.haxx.se/bug/view.cgi?id=1776235) about ftp requests with NOBODY |
| 4708 | on a directory would do a "SIZE (null)" request. This is now fixed and test |
| 4709 | case 1000 was added to verify. |
| 4710 | |
| 4711 | Daniel S (17 August 2007) |
| 4712 | - Song Ma provided a patch that cures a problem libcurl has when doing resume |
| 4713 | HTTP PUT using Digest authentication. Test case 5320 and 5322 were also |
| 4714 | added to verify the functionality. |
| 4715 | |
| 4716 | Daniel S (14 August 2007) |
| 4717 | - Andrew Wansink provided an NTLM bugfix: in the case the server sets the flag |
| 4718 | NTLMFLAG_NEGOTIATE_UNICODE, we need to filter it off because libcurl doesn't |
| 4719 | UNICODE encode the strings it packs into the NTLM authenticate packet. |
| 4720 | |
| 4721 | Daniel S (11 August 2007) |
| 4722 | - Allen Pulsifer provided a patch that makes libcurl set the expected download |
| 4723 | size earlier when doing HTTP downloads, so that applications and the |
| 4724 | progress meter etc know get the info earlier in the flow than before. |
| 4725 | |
| 4726 | - Patrick Monnerat modified the LDAP code and approach in curl. Starting now, |
| 4727 | the configure script checks for openldap and friends and we link with those |
| 4728 | libs just like we link all other third party libraries, and we no longer |
| 4729 | dlopen() those libraries. Our private header file lib/ldap.h was renamed to |
| 4730 | lib/curl_ldap.h due to this. I set a tag in CVS (curl-7_17_0-preldapfix) |
| 4731 | just before this commit, just in case. |
| 4732 | |
| 4733 | Dan F (8 August 2007) |
| 4734 | - Song Ma noted a zlib memory leak in the illegal compressed header |
| 4735 | countermeasures code path. |
| 4736 | |
| 4737 | Daniel S (4 August 2007) |
| 4738 | - Patrick Monnerat fixed curl_easy_escape() and curlx_strtoll() to work on |
| 4739 | non-ASCII systems. |
| 4740 | |
| 4741 | Daniel S (3 August 2007) |
| 4742 | - I cut out support for libssh2 versions older than 0.16 to make our code a |
| 4743 | lot simpler, and to avoid getting trouble with the LIBSSH2_APINO define |
| 4744 | that 1) didn't work properly since it was >32 bits and 2) is removed in |
| 4745 | libssh2 0.16... |
| 4746 | |
| 4747 | Daniel S (2 August 2007) |
| 4748 | - Scott Cantor filed bug report #1766320 |
| 4749 | (http://curl.haxx.se/bug/view.cgi?id=1766320) pointing out that the libcurl |
| 4750 | code accessed two curl_easy_setopt() options (CURLOPT_DNS_CACHE_TIMEOUT and |
| 4751 | CURLOPT_DNS_USE_GLOBAL_CACHE) as ints even though they're documented to be |
| 4752 | passed in as longs, and that makes a difference on 64 bit architectures. |
| 4753 | |
| 4754 | - Dmitriy Sergeyev reported a regression: resumed file:// transfers broke |
| 4755 | after 7.16.2. This is much due to the different treatment file:// gets |
| 4756 | internally, but now I added test 231 to make it less likely to happen again |
| 4757 | without us noticing! |
| 4758 | |
| 4759 | Daniel S (1 August 2007) |
| 4760 | - Patrick Monnerat and I modified libcurl so that now it *copies* all strings |
| 4761 | passed to it with curl_easy_setopt()! Previously it has always just refered |
| 4762 | to the data, forcing the user to keep the data around until libcurl is done |
| 4763 | with it. That is now history and libcurl will instead clone the given |
| 4764 | strings and keep private copies. This is also part of Patrick Monnerat's |
| 4765 | OS/400 port. |
| 4766 | |
| 4767 | Due to this being a somewhat interesting change API wise, I've decided to |
| 4768 | bump the version of the upcoming release to 7.17.0. Older applications will |
| 4769 | of course not notice this change nor do they have to care, but new |
| 4770 | applications can be written to take advantage of this. |
| 4771 | |
| 4772 | - Greg Morse reported a problem with POSTing using ANYAUTH to a server |
| 4773 | requiring NTLM, and he provided test code and a test server and we worked |
| 4774 | out a bug fix. We failed to count sent body data at times, which then caused |
| 4775 | internal confusions when libcurl tried to send the rest of the data in order |
| 4776 | to maintain the same connection alive. |
| 4777 | |
| 4778 | Daniel S (31 July 2007) |
| 4779 | - Peter O'Gorman pointed out (and fixed) that the non-blocking check in |
| 4780 | configure made libcurl use blocking sockets on AIX 4 and 5, while that |
| 4781 | wasn't the intention. |
| 4782 | |
| 4783 | Daniel S (29 July 2007) |
| 4784 | - Jayesh A Shah filed bug report #1759542 |
| 4785 | (http://curl.haxx.se/bug/view.cgi?id=1759542) identifying a rather serious |
| 4786 | problem with FTPS: libcurl closed the data connection socket and then later |
| 4787 | in the flow it would call the SSL layer to do SSL shutdown which then would |
| 4788 | use a socket that had already been closed - so if the application had opened |
| 4789 | a new one in the mean time, libcurl could send gibberish that way! I worked |
| 4790 | with Greg Zavertnik to properly diagnose and fix this. The fix affects code |
| 4791 | for all SSL libraries we support, but it has only been truly verified to |
| 4792 | work fine for the OpenSSL version. The others have only been code reviewed. |
| 4793 | |
| 4794 | Daniel S (23 July 2007) |
| 4795 | - Implemented the parts of Patrick Monnerat's OS/400 patch that introduces |
| 4796 | support for the OS/400 Secure Sockets Layer library. |
| 4797 | |
| 4798 | Dan F (23 July 2007) |
| 4799 | - Implemented only the parts of Patrick Monnerat's OS/400 patch that renamed |
| 4800 | some few internal identifiers to avoid conflicts, which could be useful on |
| 4801 | other platforms. |
| 4802 | |
| 4803 | Daniel S (22 July 2007) |
| 4804 | - HTTP Digest bug fix by Chris Flerackers: |
| 4805 | |
| 4806 | Scenario |
| 4807 | |
| 4808 | - Perfoming a POST request with body |
| 4809 | - With authentication (only Digest) |
| 4810 | - Re-using a connection |
| 4811 | |
| 4812 | libcurl would send a HTTP POST with an Authorization header but without |
| 4813 | body. Our server would return 400 Bad Request in that case (because |
| 4814 | authentication passed, but the body was empty). |
| 4815 | |
| 4816 | Cause |
| 4817 | |
| 4818 | 1) http_digest.c -> Curl_output_digest |
| 4819 | - Updates allocptr.userpwd/allocptr.proxyuserpwd *only* if d->nonce is |
| 4820 | filled in (and no errors) |
| 4821 | - authp->done = TRUE if d->nonce is filled in |
| 4822 | 2) http.c -> Curl_http |
| 4823 | - *Always* uses allocptr.userpwd/allocptr.proxyuserpwd if not NULL |
| 4824 | 3) http.c -> Curl_http, Curl_http_output_auth |
| 4825 | |
| 4826 | So what happens is that Curl_output_digest cannot yet update the |
| 4827 | Authorization header (allocptr.userpwd) which results in authhost->done=0 -> |
| 4828 | authhost->multi=1 -> conn->bits.authneg = TRUE. The body is not |
| 4829 | added. *However*, allocptr.userpwd is still used when building the request |
| 4830 | |
| 4831 | - Added test case 354 that makes a simple FTP retrieval without password, which |
| 4832 | verifies the bug fix in #1757328. |
| 4833 | |
| 4834 | Daniel S (21 July 2007) |
| 4835 | - To allow more flexibility in FTP test cases, I've removed the enforced states |
| 4836 | from the test server code as they served no real purpose. The test server |
| 4837 | is here to serve for the test cases, not to attempt to function as a real |
| 4838 | server! While at it, I modified test case 141 to better test and verify |
| 4839 | curl -I on a single FTP file. |
| 4840 | |
| 4841 | Daniel S (20 July 2007) |
| 4842 | - James Housley fixed the SFTP PWD command to work. |
| 4843 | |
| 4844 | - Ralf S. Engelschall filed bug report #1757328 |
| 4845 | (http://curl.haxx.se/bug/view.cgi?id=1757328) and submitted a patch. It |
| 4846 | turns out we broke login to FTP servers that don't require (nor understand) |
| 4847 | PASS after the USER command. The breakage was done as part of the krb5 |
| 4848 | commit so a krb-using person needs to verify that the current version now |
| 4849 | works or if we need to fix it (in a different way of course). |
| 4850 | |
| 4851 | Dan F (17 July 2007) |
| 4852 | - Fixed test cases 613 and 614 by improving the log postprocessor to handle |
| 4853 | a new directory listing format that newer libssh2's can provide. This |
| 4854 | is probably NOT sufficient to handle all directory listing formats that |
| 4855 | server's can provide, and should be revisited. |
| 4856 | |
| 4857 | Daniel S (17 July 2007) |
| 4858 | - Daniel Johnson fixed a bug in how libssh2_session_last_error() was used, in |
| 4859 | two places. |
| 4860 | |
| 4861 | - Jofell Gallardo posted a libcurl log using FTP that exposed a bug which made |
| 4862 | a control connection that was deemed "dead" to yet be re-used in a following |
| 4863 | request. |
| 4864 | |
| 4865 | Daniel S (13 July 2007) |
| 4866 | - Colin Hogben filed bug report #1750274 |
| 4867 | (http://curl.haxx.se/bug/view.cgi?id=1750274) and submitted a patch for the |
| 4868 | case where libcurl did a connect attempt to a non-listening port and didn't |
| 4869 | provide a human readable error string back. |
| 4870 | |
| 4871 | - Daniel Cater fixes: |
| 4872 | 1 - made 'make vc8' work on windows. |
| 4873 | 2 - made libcurl itself built with CURL_NO_OLDIES defined (which doesn't |
| 4874 | define the symbols for backwards source compatibility) |
| 4875 | 3 - updated libcurl-errors.3 |
| 4876 | 4 - added CURL_DISABLE_TFTP to docs/INSTALL |
| 4877 | |
| 4878 | Daniel S (12 July 2007) |
| 4879 | - Made the krb5 code build with Heimdal's GSSAPI lib. |
| 4880 | |
| 4881 | Dan F (12 July 2007) |
| 4882 | - Compile most of the example apps in docs/examples when doing a 'make check'. |
| 4883 | Fixed some compile warnings and errors in those examples. |
| 4884 | |
| 4885 | - Removed the example program ftp3rdparty.c since libcurl doesn't support |
| 4886 | 3rd party FTP transfers any longer. |
| 4887 | |
| 4888 | Daniel S (12 July 2007) |
| 4889 | - Shmulik Regev found an (albeit rare) case where the proxy CONNECT operation |
| 4890 | could in fact get stuck in an endless loop. |
| 4891 | |
| 4892 | - Made CURLOPT_SSL_VERIFYHOST set to 1 acts as described in the documentation: |
| 4893 | fail to connect if there is no Common Name field found in the remote cert. |
| 4894 | We should deprecate the support for this set to 1 anyway soon, since the |
| 4895 | feature is pointless and most likely never really used by anyone. |
| 4896 | |
| 4897 | Daniel S (11 July 2007) |
| 4898 | - Shmulik Regev fixed a bug with transfer-encoding skipping during the 407 |
| 4899 | error pages for proxy authentication. |
| 4900 | |
| 4901 | - Giancarlo Formicuccia reported and fixed a problem with a closed connection |
| 4902 | to a proxy during CONNECT auth negotiation. |
| 4903 | |
| 4904 | Dan F (10 July 2007) |
| 4905 | - Fixed a curl memory leak reported by Song Ma with a modified version |
| 4906 | of the patch he suggested. Added his test case as test289 to verify. |
| 4907 | |
| 4908 | - Force the time zone to GMT in the cookie tests in case the user is |
| 4909 | using one of the so-called 'right' time zones that take into account |
| 4910 | leap seconds, which causes the tests to fail (as reported by |
| 4911 | Daniel Black in bug report #1745964). |
| 4912 | |
| 4913 | Version 7.16.4 (10 July 2007) |
| 4914 | |
| 4915 | Daniel S (10 July 2007) |
| 4916 | - Kees Cook notified us about a security flaw |
| 4917 | (http://curl.haxx.se/docs/adv_20070710.html) in which libcurl failed to |
| 4918 | properly reject some outdated or not yet valid server certificates when |
| 4919 | built with GnuTLS. Kees also provided the patch. |
| 4920 | |
| 4921 | James H (5 July 2007) |
| 4922 | - Gavrie Philipson provided a patch that will use a more specific error |
| 4923 | message for an scp:// upload failure. If libssh2 has his matching |
| 4924 | patch, then the error message return by the server will be used instead |
| 4925 | of a more generic error. |
| 4926 | |
| 4927 | Daniel S (1 July 2007) |
| 4928 | - Thomas J. Moore provided a patch that introduces Kerberos5 support in |
| 4929 | libcurl. This also makes the options change name to --krb (from --krb4) and |
| 4930 | CURLOPT_KRBLEVEL (from CURLOPT_KRB4LEVEL) but the old names are still |
| 4931 | |
| 4932 | - Song Ma helped me verify and extend a fix for doing FTP over a SOCKS4/5 |
| 4933 | proxy. |
| 4934 | |
| 4935 | Daniel S (27 June 2007) |
| 4936 | - James Housley: Add two new options for the SFTP/SCP/FILE protocols: |
| 4937 | CURLOPT_NEW_FILE_PERMS and CURLOPT_NEW_DIRECTORY_PERMS. These control the |
| 4938 | premissions for files and directories created on the remote |
| 4939 | server. CURLOPT_NEW_FILE_PERMS defaults to 0644 and |
| 4940 | CURLOPT_NEW_DIRECTORY_PERMS defaults to 0755 |
| 4941 | |
| 4942 | - I corrected the 10-at-a-time.c example and applied a patch for it by James |
| 4943 | Bursa. |
| 4944 | |
| 4945 | Daniel S (26 June 2007) |
| 4946 | - Robert Iakobashvili re-arranged the internal hash code to work with a custom |
| 4947 | hash function for different hashes, and also expanded the default size for |
| 4948 | the socket hash table used in multi handles to greatly enhance speed when |
| 4949 | very many connections are added and the socket API is used. |
| 4950 | |
| 4951 | - James Housley made the CURLOPT_FTPLISTONLY mode work for SFTP directory |
| 4952 | listings as well |
| 4953 | |
| 4954 | Daniel S (25 June 2007) |
| 4955 | - Adjusted how libcurl treats HTTP 1.1 responses without content-lenth or |
| 4956 | chunked encoding (that also lacks "Connection: close"). It now simply |
| 4957 | assumes that the connection WILL be closed to signal the end, as that is how |
| 4958 | RFC2616 section 4.4 point #5 says we should behave. |
| 4959 | |
| 4960 | Version 7.16.3 (25 June 2007) |
| 4961 | |
| 4962 | Daniel S (23 June 2007) |
| 4963 | - As reported by "Tro" in http://curl.haxx.se/mail/lib-2007-06/0161.html and |
| 4964 | http://curl.haxx.se/mail/lib-2007-06/0238.html, libcurl didn't properly do |
| 4965 | no-body requests on FTP files on re-used connections properly, or at least |
| 4966 | it didn't provide the info back in the header callback properly in the |
| 4967 | subsequent requests. |
| 4968 | |
| 4969 | Daniel S (21 June 2007) |
| 4970 | - Gerrit Bruchhäuser pointed out a warning that the Intel(R) Thread Checker |
| 4971 | tool reports and it was indeed a legitimate one and it is one fixed. It was |
| 4972 | a use of a share without doing the proper locking first. |
| 4973 | |
| 4974 | Daniel S (20 June 2007) |
| 4975 | - Adam Piggott filed bug report #1740263 |
| 4976 | (http://curl.haxx.se/bug/view.cgi?id=1740263). Adam discovered that when |
| 4977 | getting a large amount of URLs with curl, they were fetched slower and |
| 4978 | slower... which turned out to be because the --libcurl data collecting which |
| 4979 | wrongly always was enabled, but no longer is... |
| 4980 | |
| 4981 | Daniel S (18 June 2007) |
| 4982 | - Robson Braga Araujo filed bug report #1739100 |
| 4983 | (http://curl.haxx.se/bug/view.cgi?id=1739100) that mentioned that libcurl |
| 4984 | could not actually list the contents of the root directory of a given FTP |
| 4985 | server if the login directory isn't root. I fixed the problem and added |
| 4986 | three test cases (one is disabled for now since I identified KNOWN_BUGS #44, |
| 4987 | we cannot use --ftp-method nocwd and list ftp directories). |
| 4988 | |
| 4989 | Daniel S (14 June 2007) |
| 4990 | - Shmulik Regev: |
| 4991 | |
| 4992 | I've encountered (and hopefully fixed) a problem involving proxy CONNECT |
| 4993 | requests and easy handles state management. The problem isn't simple to |
| 4994 | reproduce since it depends on socket state. It only manifests itself when |
| 4995 | working with non-blocking sockets. |
| 4996 | |
| 4997 | Here is the scenario: |
| 4998 | |
| 4999 | 1. in multi_runsingle the easy handle is in the CURLM_STATE_WAITCONNECT and |
| 5000 | calls Curl_protocol_connect |
| 5001 | |
| 5002 | 2. in Curl_proxyCONNECT, line 1247, if the socket isn't ready the function |
| 5003 | returns and conn->bits.tunnel_connecting is TRUE |
| 5004 | |
| 5005 | 3. when the call to Curl_protocol_connect returns the protocol_connect flag |
| 5006 | is false and the easy state is changed to CURLM_STATE_PROTOCONNECT which |
| 5007 | isn't correct if a proxy is used. Rather CURLM_STATE_WAITPROXYCONNECT |
| 5008 | should be used. |
| 5009 | |
| 5010 | I discovered this while performing an HTTPS request through a proxy (squid) |
| 5011 | on my local network. The problem caused openssl to fail as it read the proxy |
| 5012 | response to the CONNECT call ('HTTP/1.0 Established') rather than the SSL |
| 5013 | handshake (the exact openssl error was 'wrong ssl version' but this isn't |
| 5014 | very important) |
| 5015 | |
| 5016 | - Dave Vasilevsky filed bug report #1736875 |
| 5017 | (http://curl.haxx.se/bug/view.cgi?id=1736875) almost simultanouesly as Dan |
| 5018 | Fandrich mentioned a related build problem on the libcurl mailing list: |
| 5019 | http://curl.haxx.se/mail/lib-2007-06/0131.html. Both problems had the same |
| 5020 | reason: the definitions of the POLL* defines and the pollfd struct in the |
| 5021 | libcurl code was depending on HAVE_POLL instead of HAVE_SYS_POLL_H. |
| 5022 | |
| 5023 | Daniel S (13 June 2007) |
| 5024 | - Tom Regner provided a patch and worked together with James Housley, so now |
| 5025 | CURLOPT_FTP_CREATE_MISSING_DIRS works for SFTP connections as well as FTP |
| 5026 | ones. |
| 5027 | |
| 5028 | - Rich Rauenzahn filed bug report #1733119 |
| 5029 | (http://curl.haxx.se/bug/view.cgi?id=1733119) and we collaborated on the |
| 5030 | fix. The problem is that for 64bit HPUX builds, several socket-related |
| 5031 | functions would still assume int (32 bit) arguments and not socklen_t (64 |
| 5032 | bit) ones. |
| 5033 | |
| 5034 | Daniel S (12 June 2007) |
| 5035 | - James Housley brought his revamped SSH code that is state-machine driven to |
| 5036 | really take advantage of the now totally non-blocking libssh2 (in CVS). |
| 5037 | |
| 5038 | Dan F (8 June 2007) |
| 5039 | - Incorporated Daniel Black's test706 and test707 SOCKS test cases. |
| 5040 | |
| 5041 | - Fixed a few problems when starting the SOCKS server. |
| 5042 | |
| 5043 | - Reverted some recent changes to runtests.pl that weren't compatible with |
| 5044 | perl 5.0. |
| 5045 | |
| 5046 | - Fixed the test harness so that it actually kills the ssh being used as |
| 5047 | the SOCKS server. |
| 5048 | |
| 5049 | Daniel S (6 June 2007) |
| 5050 | - -s/--silent can now be used to toggle off the silence again if used a second |
| 5051 | time. |
| 5052 | |
| 5053 | Daniel S (5 June 2007) |
| 5054 | - Added Daniel Black's work that adds the first few SOCKS test cases. I also |
| 5055 | fixed two minor SOCKS problems to make the test cases run fine. |
| 5056 | |
| 5057 | Daniel S (31 May 2007) |
| 5058 | - Feng Tu made (lib)curl support "upload" resuming work for file:// URLs. |
| 5059 | |
| 5060 | Daniel S (30 May 2007) |
| 5061 | - I modified the 10-at-a-time.c example to transfer 500 downloads in parallel |
| 5062 | with a c-ares enabled build only to find that it crashed miserably, and this |
| 5063 | was due to some select()isms left in the code. This was due to API |
| 5064 | restrictions in c-ares 1.3.x, but with the upcoming c-ares 1.4.0 this is no |
| 5065 | longer the case so now libcurl runs much better with c-ares and the multi |
| 5066 | interface with > 1024 file descriptors in use. |
| 5067 | |
| 5068 | Extra note: starting now we require c-ares 1.4.0 for asynchronous name |
| 5069 | resolves. |
| 5070 | |
| 5071 | - Added CURLMOPT_MAXCONNECTS which is a curl_multi_setopt() option for setting |
| 5072 | the maximum size of the connection cache maximum size of the multi handle. |
| 5073 | |
| 5074 | Daniel S (27 May 2007) |
| 5075 | - When working with a problem Stefan Becker had, I found an off-by-one buffer |
| 5076 | overwrite in Curl_select(). While fixing it, I also improved its performance |
| 5077 | somewhat by changing calloc to malloc and breaking out of a loop earlier |
| 5078 | (when possible). |
| 5079 | |
| 5080 | Daniel S (25 May 2007) |
| 5081 | - Rob Crittenden fixed bug #1705802 |
| 5082 | (http://curl.haxx.se/bug/view.cgi?id=1705802), which was filed by Daniel |
| 5083 | Black identifying several FTP-SSL test cases fail when we build libcurl with |
| 5084 | NSS for TLS/SSL. Listed as #42 in KNOWN_BUGS. |
| 5085 | |
| 5086 | Daniel S (24 May 2007) |
| 5087 | - Song Ma filed bug report #1724016 |
| 5088 | (http://curl.haxx.se/bug/view.cgi?id=1724016) noticing that downloading |
| 5089 | glob-ranges for TFTP was broken in CVS. Fixed now. |
| 5090 | |
| 5091 | - 'mytx' in bug report #1723194 (http://curl.haxx.se/bug/view.cgi?id=1723194) |
| 5092 | pointed out that the warnf() function in the curl tool didn't properly deal |
| 5093 | with the cases when excessively long words were used in the string to chop |
| 5094 | up. |
| 5095 | |
| 5096 | Daniel S (22 May 2007) |
| 5097 | - Andre Guibert de Bruet fixed a memory leak in the function that verifies the |
| 5098 | peer's name in the SSL certificate when built for OpenSSL. The leak happens |
| 5099 | for libcurls with CURL_DOES_CONVERSIONS enabled that fail to convert the CN |
| 5100 | name from UTF8. He also fixed a leak when PKCS #12 parsing failed. |
| 5101 | |
| 5102 | Daniel S (18 May 2007) |
| 5103 | - Feng Tu reported that curl -w did wrong on TFTP transfers in bug report |
| 5104 | #1715394 (http://curl.haxx.se/bug/view.cgi?id=1715394), and the |
| 5105 | transfer-related info "variables" were indeed overwritten with zeroes |
| 5106 | wrongly and have now been adjusted. The upload size still isn't accurate. |
| 5107 | |
| 5108 | Daniel S (17 May 2007) |
| 5109 | - Feng Tu pointed out a division by zero error in the TFTP connect timeout |
| 5110 | code for timeouts less than five seconds, and also provided a fix for it. |
| 5111 | Bug report #1715392 (http://curl.haxx.se/bug/view.cgi?id=1715392) |
| 5112 | |
| 5113 | Dan F (16 May 2007) |
| 5114 | - Added support for compiling under Minix 3.1.3 using ACK. |
| 5115 | |
| 5116 | Dan F (14 May 2007) |
| 5117 | - Added SFTP directory listing test case 613. |
| 5118 | |
| 5119 | - Added support for quote commands before a transfer using SFTP and test |
| 5120 | case 614. |
| 5121 | |
| 5122 | - Changed the post-quote commands to occur after the transferred file is |
| 5123 | closed. |
| 5124 | |
| 5125 | - Allow SFTP quote commands chmod, chown, chgrp to set a value of 0. |
| 5126 | |
| 5127 | Dan F (9 May 2007) |
| 5128 | - Kristian Gunstone fixed a problem where overwriting an uploaded file with |
| 5129 | sftp didn't truncate it first, which would corrupt the file if the new |
| 5130 | file was shorter than the old. |
| 5131 | |
| 5132 | Dan F (8 May 2007) |
| 5133 | - Added FTPS test cases 406 and 407 |
| 5134 | |
| 5135 | Daniel S (8 May 2007) |
| 5136 | - CURLE_FTP_COULDNT_STOR_FILE is now known as CURLE_UPLOAD_FAILED. This is |
| 5137 | because I just made SCP uploads return this value if the file size of |
| 5138 | the upload file isn't given with CURLOPT_INFILESIZE*. Docs updated to |
| 5139 | reflect this news, and a define for the old name was added to the public |
| 5140 | header file. |
| 5141 | |
| 5142 | Daniel S (7 May 2007) |
| 5143 | - James Bursa fixed a bug in the multi handle code that made the connection |
| 5144 | cache grow a bit too much, beyond the normal 4 * easy_handles. |
| 5145 | |
| 5146 | Daniel S (2 May 2007) |
| 5147 | - Anders Gustafsson remarked that requiring CURLOPT_HTTP_VERSION set to 1.0 |
| 5148 | when CURLOPT_HTTP200ALIASES is used to avoid the problem mentioned below is |
| 5149 | not very nice if the client wants to be able to use _either_ a HTTP 1.1 |
| 5150 | server or one within the aliases list... so starting now, libcurl will |
| 5151 | simply consider 200-alias matches the to be HTTP 1.0 compliant. |
| 5152 | |
| 5153 | - Tobias Rundström reported a problem they experienced with xmms2 and recent |
| 5154 | libcurls, which turned out to be the 25-nov-2006 change which treats HTTP |
| 5155 | responses without Content-Length or chunked encoding as without bodies. We |
| 5156 | now added the conditional that the above mentioned response is only without |
| 5157 | body if the response is HTTP 1.1. |
| 5158 | |
| 5159 | - Jeff Pohlmeyer improved the hiperfifo.c example to use the |
| 5160 | CURLMOPT_TIMERFUNCTION callback option. |
| 5161 | |
| 5162 | - Set the timeout for easy handles to expire really soon after addition or |
| 5163 | when CURLM_CALL_MULTI_PERFORM is returned from curl_multi_socket*/perform, |
| 5164 | to make applications using only curl_multi_socket() to properly function |
| 5165 | when adding easy handles "on the fly". Bug report and test app provided by |
| 5166 | Michael Wallner. |
| 5167 | |
| 5168 | Dan F (30 April 2007) |
| 5169 | - Improved the test harness to allow running test servers on other than |
| 5170 | the default port numbers, allowing more than one test suite to run |
| 5171 | simultaneously on the same host. |
| 5172 | |
| 5173 | Daniel S (28 April 2007) |
| 5174 | - Peter O'Gorman fixed libcurl to not init GnuTLS as early as we did before, |
| 5175 | since it then inits libgcrypt and libgcrypt is being evil and EXITS the |
| 5176 | application if it fails to get a fine random seed. That's really not a nice |
| 5177 | thing to do by a library. |
| 5178 | |
| 5179 | - Frank Hempel fixed a curl_easy_duphandle() crash on a handle that had |
| 5180 | been removed from a multi handle, and then fixed another flaw that prevented |
| 5181 | curl_easy_duphandle() to work even after the first fix - the handle was |
| 5182 | still marked as using the multi interface. |
| 5183 | |
| 5184 | Daniel S (26 April 2007) |
| 5185 | - Peter O'Gorman found a problem with SCP downloads when the downloaded file |
| 5186 | was 16385 bytes (16K+1) and it turned out we didn't properly always "suck |
| 5187 | out" all data from libssh2. The effect being that libcurl would hang on the |
| 5188 | socket waiting for data when libssh2 had in fact already read it all... |
| 5189 | |
| 5190 | Dan F (25 April 2007) |
| 5191 | - Added support in runtests.pl for "!n" test numbers to disable individual |
| 5192 | tests. Changed -t to only keep log files around when -k is specified, |
| 5193 | to have the same behaviour as without -t. |
| 5194 | |
| 5195 | Daniel S (25 April 2007) |
| 5196 | - Sonia Subramanian brought our attention to a problem that happens if you set |
| 5197 | the CURLOPT_RESUME_FROM or CURLOPT_RANGE options and an existing connection |
| 5198 | in the connection cache is closed to make room for the new one when you call |
| 5199 | curl_easy_perform(). It would then wrongly free range-related data in the |
| 5200 | connection close funtion. |
| 5201 | |
| 5202 | Yang Tse (25 April 2007) |
| 5203 | - Steve Little fixed compilation on VMS 64-bit mode |
| 5204 | |
| 5205 | Daniel S (24 April 2007) |
| 5206 | - Robert Iakobashvili made the 'master_buffer' get allocated first once it is |
| 5207 | can/will be used as it then makes the common cases save 16KB of data for each |
| 5208 | easy handle that isn't used for pipelining. |
| 5209 | |
| 5210 | Dan F (23 April 2007) |
| 5211 | - Added <postcheck> support to the test harness. |
| 5212 | |
| 5213 | - Added tests 610-612 to test more SFTP post-quote commands. |
| 5214 | |
| 5215 | Daniel S (22 April 2007) |
| 5216 | - Song Ma's warning if -r/--range is given with a "bad" range, also noted in |
| 5217 | the man page now. |
| 5218 | |
| 5219 | - Daniel Black filed bug #1705177 |
| 5220 | (http://curl.haxx.se/bug/view.cgi?id=1705177) where --without-ssl |
| 5221 | --with-gnutl outputs a warning about SSL not being enabled even though GnuTLS |
| 5222 | was found and used. |
| 5223 | |
| 5224 | Daniel S (21 April 2007) |
| 5225 | - Daniel Black filed bug #1704675 |
| 5226 | (http://curl.haxx.se/bug/view.cgi?id=1704675) identifying a double-free |
| 5227 | problem in the SSL-dealing layer, telling GnuTLS to free NULL credentials on |
| 5228 | closedown after a failure and a bad #ifdef for NSS when closing down SSL. |
| 5229 | |
| 5230 | Yang Tse (20 April 2007) |
| 5231 | - Save one call to curlx_tvnow(), which calls gettimeofday(), in each of |
| 5232 | Curl_socket_ready(), Curl_poll() and Curl_select() when these are called |
| 5233 | with a zero timeout or a timeout value indicating a blocking call should |
| 5234 | be performed. |
| 5235 | |
| 5236 | Daniel S (18 April 2007) |
| 5237 | - James Housley made SFTP uploads use libssh2's non-blocking API |
| 5238 | |
| 5239 | - Prevent the internal progress meter from updating more frequently than once |
| 5240 | per second. |
| 5241 | |
| 5242 | Dan F (17 April 2007) |
| 5243 | - Added test cases 296, 297 and 298 to test --ftp-method handling |
| 5244 | |
| 5245 | Daniel S (16 April 2007) |
| 5246 | - Robert Iakobashvil added curl_multi_socket_action() to libcurl, which is a |
| 5247 | function that deprecates the curl_multi_socket() function. Using the new |
| 5248 | function the application tell libcurl what action that was found in the |
| 5249 | socket that it passes in. This gives a significant performance boost as it |
| 5250 | allows libcurl to avoid a call to poll()/select() for every call to |
| 5251 | curl_multi_socket*(). |
| 5252 | |
| 5253 | I added a define in the public curl/multi.h header file that will make your |
| 5254 | existing application automatically use curl_multi_socket_action() instead of |
| 5255 | curl_multi_socket() when you recompile. But of course you'll get better |
| 5256 | performance if you adjust your code manually and actually pass in the |
| 5257 | correct action bitmask to this function. |
| 5258 | |
| 5259 | Daniel S (14 April 2007) |
| 5260 | - Jay Austin added "DH PARAMETERS" to the stunnel.pem certificate for the test |
| 5261 | suite to make stunnel run better in some (most?) environments. |
| 5262 | |
| 5263 | Dan F (13 April 2007) |
| 5264 | - Added test cases 294 and 295 to test --ftp-account handling |
| 5265 | |
| 5266 | - Improved handling of out of memory in ftp. |
| 5267 | |
| 5268 | Yang Tse (13 April 2007) |
| 5269 | - Fix test case 534 which started to fail 2007-04-13 due to the existance |
| 5270 | of a new host on the net with the same silly domain the test was using |
| 5271 | for a host which was supposed not to exist. |
| 5272 | |
| 5273 | Daniel S (12 April 2007) |
| 5274 | - Song Ma found a memory leak in the if2ip code if you pass in an interface |
| 5275 | name longer than the name field of the ifreq struct (typically 6 bytes), as |
| 5276 | then it wouldn't close the used dummy socket. Bug #1698974 |
| 5277 | (http://curl.haxx.se/bug/view.cgi?id=1698974) |
| 5278 | |
| 5279 | Version 7.16.2 (11 April 2007) |
| 5280 | |
| 5281 | Yang Tse (10 April 2007) |
| 5282 | - Ravi Pratap provided some fixes for HTTP pipelining |
| 5283 | |
| 5284 | - configure script will ignore --enable-sspi option for non-native Windows. |
| 5285 | |
| 5286 | Daniel S (9 April 2007) |
| 5287 | - Nick Zitzmann did ssh.c cleanups |
| 5288 | |
| 5289 | Daniel S (3 April 2007) |
| 5290 | - Rob Jones fixed better #ifdef'ing for a bunch of #include lines. |
| 5291 | |
| 5292 | Daniel S (2 April 2007) |
| 5293 | - Nick Zitzmann made the CURLOPT_POSTQUOTE option work for SFTP as well. The |
| 5294 | accepted commands are as follows: |
| 5295 | |
| 5296 | chgrp (gid) (path) |
| 5297 | Changes the group ID of the file or directory at (path) to (gid). (gid) |
| 5298 | must be a number. |
| 5299 | |
| 5300 | chmod (perms) (path) |
| 5301 | Changes the permissions of the file or directory at (path) to |
| 5302 | (perms). (perms) must be a number in the format used by the chmod Unix |
| 5303 | command. |
| 5304 | |
| 5305 | chown (uid) (path) |
| 5306 | Changes the user ID of the file or directory at (path) to (uid). (uid) |
| 5307 | must be a number. |
| 5308 | |
| 5309 | ln (source) (dest) |
| 5310 | Creates a symbolic link at (dest) that points to the file located at |
| 5311 | (source). |
| 5312 | |
| 5313 | mkdir (path) |
| 5314 | Creates a new directory at (path). |
| 5315 | |
| 5316 | rename (source) (dest) |
| 5317 | Moves the file or directory at (source) to (dest). |
| 5318 | |
| 5319 | rm (path) |
| 5320 | Deletes the file located at (path). |
| 5321 | |
| 5322 | rmdir (path) |
| 5323 | Deletes the directory located at (path). This command will raise an error |
| 5324 | if the directory is not empty. |
| 5325 | |
| 5326 | symlink (source) (dest) |
| 5327 | Same as ln. |
| 5328 | |
| 5329 | Daniel S (1 April 2007) |
| 5330 | - Robert Iakobashvili made curl_multi_remove_handle() a lot faster when many |
| 5331 | easy handles are added to a multi handle, by avoiding the looping over all |
| 5332 | the handles to find which one to remove. |
| 5333 | |
| 5334 | - Matt Kraai provided a patch that makes curl build on QNX 6 fine again. |
| 5335 | |
| 5336 | Daniel S (31 March 2007) |
| 5337 | - Fixed several minor issues detected by the coverity.com scanner. |
| 5338 | |
| 5339 | - "Pixel" fixed a problem that appeared when you used -f with user+password |
| 5340 | embedded in the URL. |
| 5341 | |
| 5342 | Dan F (29 March 2007) |
| 5343 | - Don't tear down the ftp connection if the maximum filesize was exceeded |
| 5344 | and added tests 290 and 291 to check. |
| 5345 | |
| 5346 | - Added ftps upload and SSL required tests 401 and 402. |
| 5347 | |
| 5348 | - Send an EOF message before closing an SCP channel, as recommended by |
| 5349 | RFC4254. Enable libssh2 tracing when ssh debugging is turned on. |
| 5350 | |
| 5351 | Yang Tse (27 March 2007) |
| 5352 | - Internal function Curl_select() renamed to Curl_socket_ready() |
| 5353 | |
| 5354 | New Internal wrapper function Curl_select() around select (2), it |
| 5355 | uses poll() when a fine poll() is available, so now libcurl can be |
| 5356 | built without select() support at all if a fine poll() is available. |
| 5357 | |
| 5358 | Daniel S (25 March 2007) |
| 5359 | - Daniel Johnson fixed multi code to traverse the easy handle list properly. |
| 5360 | A left-over bug from the February 21 fix. |
| 5361 | |
| 5362 | Dan F (23 March 2007) |
| 5363 | - Added --pubkey option to curl and made --key also work for SCP/SFTP, |
| 5364 | plus made --pass work on an SSH private key as well. |
| 5365 | |
| 5366 | - Changed the test harness to attempt to gracefully shut down servers |
| 5367 | before resorting to the kill -9 hammer. |
| 5368 | |
| 5369 | - Added test harness infrastructure to support scp/sftp tests, using |
| 5370 | OpenSSH as the server. |
| 5371 | |
| 5372 | - Fixed a memory leak when specifying a proxy with a file: URL. |
| 5373 | |
| 5374 | Yang Tse (20 March 2007) |
| 5375 | - Fixed: When a signal was caught awaiting for an event using Curl_select() |
| 5376 | or Curl_poll() with a non-zero timeout both functions would restart the |
| 5377 | specified timeout. This could even lead to the extreme case that if a |
| 5378 | signal arrived with a frecuency lower to the specified timeout neither |
| 5379 | function would ever exit. |
| 5380 | |
| 5381 | Added experimental symbol definition check CURL_ACKNOWLEDGE_EINTR in |
| 5382 | Curl_select() and Curl_poll(). When compiled with CURL_ACKNOWLEDGE_EINTR |
| 5383 | defined both functions will return as soon as a signal is caught. Use it |
| 5384 | at your own risk, all calls to these functions in the library should be |
| 5385 | revisited and checked before fully supporting this feature. |
| 5386 | |
| 5387 | Yang Tse (19 March 2007) |
| 5388 | - Bryan Henderson fixed the progress function so that it can get called more |
| 5389 | frequently allowing same calling frecuency for the client progress callback. |
| 5390 | |
| 5391 | Dan F (15 March 2007) |
| 5392 | - Various memory leaks plugged and NULL pointer fixes made in the ssh code. |
| 5393 | |
| 5394 | Daniel (15 March 2007) |
| 5395 | - Nick made the curl tool accept globbing ranges that only is one number, i.e |
| 5396 | you can now use [1-1] without curl complaining. |
| 5397 | |
| 5398 | Daniel (10 March 2007) |
| 5399 | - Eygene Ryabinkin: |
| 5400 | |
| 5401 | The problem is the following: when we're calling Curl_done and it decides to |
| 5402 | keep the connection opened ('left intact'), then the caller is not notified |
| 5403 | that the connection was done via the NULLifying of the pointer, so some easy |
| 5404 | handle is keeping the pointer to this connection. |
| 5405 | |
| 5406 | Later ConnectionExists can select such connection for reuse even if we're |
| 5407 | not pipelining: pipeLen is zero, so the (pipeLen > 0 && !canPipeline) is |
| 5408 | false and we can reuse this connection for another easy handle. But thus the |
| 5409 | connection will be shared between two easy handles if the handle that wants |
| 5410 | to take the ownership is not the same as was not notified of the connection |
| 5411 | was done in Curl_done. And when some of these easy handles will get their |
| 5412 | connection really freed the another one will still keep the pointer. |
| 5413 | |
| 5414 | My fix was rather trivial: I just added the NULLification to the 'else' |
| 5415 | branch in the Curl_done. My tests with Git and ElectricFence showed no |
| 5416 | problems both for HTTP pulling and cloning. Repository size is about 250 Mb, |
| 5417 | so it was a considerable amount of Curl's work. |
| 5418 | |
| 5419 | Dan F (9 March 2007) |
| 5420 | - Updated the test harness to add a new "crypto" feature check and updated the |
| 5421 | appropriate test case to use it. For now, this is treated the same as the |
| 5422 | "SSL" feature because curl doesn't list it separately. |
| 5423 | |
| 5424 | Daniel (9 March 2007) |
| 5425 | - Robert Iakobashvili fixed CURLOPT_INTERFACE for IPv6. |
| 5426 | |
| 5427 | - Robert A. Monat improved the maketgz and VC6/8 generating to set the correct |
| 5428 | machine type too. |
| 5429 | |
| 5430 | - Justin Fletcher fixed a file descriptor leak in the curl tool when trying to |
| 5431 | upload a file it couldn't open. Bug #1676581 |
| 5432 | (http://curl.haxx.se/bug/view.cgi?id=1676581) |
| 5433 | |
| 5434 | Dan F (9 March 2007) |
| 5435 | - Updated the test harness to check for protocol support before running each |
| 5436 | test, fixing KNOWN_BUGS #11. |
| 5437 | |
| 5438 | Dan F (7 March 2007) |
| 5439 | - Reintroduced (after a 3 year hiatus) an FTPS test case (400) into the test |
| 5440 | harness. It is very limited as it supports only ftps:// URLs with |
| 5441 | --ftp-ssl-control specified, which implicitly encrypts the control |
| 5442 | channel but not the data channels. That allows stunnel to be used with |
| 5443 | an unmodified ftp server in exactly the same way that the test https |
| 5444 | server is set up. |
| 5445 | |
| 5446 | Dan F (7 March 2007) |
| 5447 | - Honour --ftp-ssl-control on ftps:// URLs to allow encrypted control and |
| 5448 | unencrypted data connections. |
| 5449 | |
| 5450 | Dan F (6 March 2007) |
| 5451 | - Fixed a couple of improper pointer uses detected by valgrind in test |
| 5452 | cases 181 & 216. |
| 5453 | |
| 5454 | Daniel (2 March 2007) |
| 5455 | - Robert A. Monat and Shmulik Regev helped out to fix the new */Makefile.vc8 |
| 5456 | makefiles that are included in the source release archives, generated from |
| 5457 | the Makefile.vc6 files by the maketgz script. I also modified the root |
| 5458 | Makefile to have a VC variable that defaults to vc6 but can be overridden to |
| 5459 | allow it to be used for vc8 as well. Like this: |
| 5460 | |
| 5461 | nmake VC=vc8 vc |
| 5462 | |
| 5463 | Daniel (27 February 2007) |
| 5464 | - Hang Kin Lau found and fixed: When I use libcurl to connect to an https |
| 5465 | server through a proxy and have the remote https server port set using the |
| 5466 | CURLOPT_PORT option, protocol gets reset to http from https after the first |
| 5467 | request. |
| 5468 | |
| 5469 | User defined URL was modified internally by libcurl and subsequent reuse of |
| 5470 | the easy handle may lead to connection using a different protocol (if not |
| 5471 | originally http). |
| 5472 | |
| 5473 | I found that libcurl hardcoded the protocol to "http" when it tries to |
| 5474 | regenerate the URL if CURLOPT_PORT is set. I tried to fix the problem as |
| 5475 | follows and it's working fine so far |
| 5476 | |
| 5477 | Daniel (25 February 2007) |
| 5478 | - Adam D. Moss made the HTTP CONNECT procedure less blocking when used from |
| 5479 | the multi interface. Note that it still does a part of the connection in a |
| 5480 | blocking manner. |
| 5481 | |
| 5482 | Daniel (23 February 2007) |
| 5483 | - Added warning outputs if the command line uses more than one of the options |
| 5484 | -v, --trace and --trace-ascii, since it could really confuse the user. |
| 5485 | Clarified this fact in the man page. |
| 5486 | |
| 5487 | Daniel (21 February 2007) |
| 5488 | - Ravi Pratap provided work on libcurl making pipelining more robust and |
| 5489 | fixing some bugs: |
| 5490 | o Don't mix GET and POST requests in a pipeline |
| 5491 | o Fix the order in which requests are dispatched from the pipeline |
| 5492 | o Fixed several curl bugs with pipelining when the server is returning |
| 5493 | chunked encoding: |
| 5494 | * Added states to chunked parsing for final CRLF |
| 5495 | * Rewind buffer after parsing chunk with data remaining |
| 5496 | * Moved chunked header initializing to a spot just before receiving |
| 5497 | headers |
| 5498 | |
| 5499 | Daniel (20 February 2007) |
| 5500 | - Linus Nielsen Feltzing changed the CURLOPT_FTP_SSL_CCC option to handle |
| 5501 | active and passive CCC shutdown and added the --ftp-ssl-ccc-mode command |
| 5502 | line option. |
| 5503 | |
| 5504 | Daniel (19 February 2007) |
| 5505 | - Ian Turner fixed the libcurl.m4 macro's support for --with-libcurl. |
| 5506 | |
| 5507 | - Shmulik Regev found a memory leak in re-used HTTPS connections, at least |
| 5508 | when the multi interface was used. |
| 5509 | |
| 5510 | - Robson Braga Araujo made passive FTP transfers work with SOCKS (both 4 and |
| 5511 | 5). |
| 5512 | |
| 5513 | Daniel (18 February 2007) |
| 5514 | - Jeff Pohlmeyer identified two problems: first a rather obscure problem with |
| 5515 | the multi interface and connection re-use that could make a |
| 5516 | curl_multi_remove_handle() ruin a pointer in another handle. |
| 5517 | |
| 5518 | The second problem was less of an actual problem but more of minor quirk: |
| 5519 | the re-using of connections wasn't properly checking if the connection was |
| 5520 | marked for closure. |
| 5521 | |
| 5522 | Daniel (16 February 2007) |
| 5523 | - Duncan Mac-Vicar Prett and Michal Marek reported problems with resetting |
| 5524 | CURLOPT_RANGE back to no range on an easy handle when using FTP. |
| 5525 | |
| 5526 | Dan F (14 February 2007) |
| 5527 | - Fixed curl-config --libs so it doesn't list unnecessary libraries (and |
| 5528 | therefore introduce unnecessary dependencies) when it's not needed. |
| 5529 | Also, don't bother adding a library path of /usr/lib |
| 5530 | |
| 5531 | Daniel (13 February 2007) |
| 5532 | - The default password for anonymous FTP connections is now changed to be |
| 5533 | "ftp@example.com". |
| 5534 | |
| 5535 | - Robert A. Monat made libcurl build fine with VC2005 - it doesn't have |
| 5536 | gmtime_r() like the older VC versions. He also made use of some machine- |
| 5537 | specific defines to differentiate the "OS" define. |
| 5538 | |
| 5539 | Daniel (12 February 2007) |
| 5540 | - Rob Crittenden added support for NSS (Network Security Service) for the |
| 5541 | SSL/TLS layer. http://www.mozilla.org/projects/security/pki/nss/ |
| 5542 | |
| 5543 | This is the fourth supported library for TLS/SSL that libcurl supports! |
| 5544 | |
| 5545 | - Shmulik Regev fixed so that the final CRLF of HTTP response headers are sent |
| 5546 | to the debug callback. |
| 5547 | |
| 5548 | - Shmulik Regev added CURLOPT_HTTP_CONTENT_DECODING and |
| 5549 | CURLOPT_HTTP_TRANSFER_DECODING that if set to zero will disable libcurl's |
| 5550 | internal decoding of content or transfer encoded content. This may be |
| 5551 | preferable in cases where you use libcurl for proxy purposes or similar. The |
| 5552 | command line tool got a --raw option to disable both at once. |
| 5553 | |
| 5554 | - release tarballs made with maketgz will from now on have a LIBCURL_TIMESTAMP |
| 5555 | define set to hold the exact date and time of when the tarball was built, as |
| 5556 | a human readable string using the UTC time zone. |
| 5557 | |
| 5558 | - Jeff Pohlmeyer fixed a flaw in curl_multi_add_handle() when adding a handle |
| 5559 | that has an easy handle present in the "closure" list pending closure. |
| 5560 | |
| 5561 | Daniel (6 February 2007) |
| 5562 | - Regular file downloads wiht SFTP and SCP are now done using the non-blocking |
| 5563 | API of libssh2, if the libssh2 headers seem to support them. This will make |
| 5564 | SCP and SFTP much more responsive and better libcurl citizens when used with |
| 5565 | the multi interface etc. |
| 5566 | |
| 5567 | Daniel (5 February 2007) |
| 5568 | - Michael Wallner added support for CURLOPT_TIMEOUT_MS and |
| 5569 | CURLOPT_CONNECTTIMEOUT_MS that, as their names suggest, do the timeouts with |
| 5570 | millisecond resolution. The only restriction to that is the alarm() |
| 5571 | (sometimes) used to abort name resolves as that uses full seconds. I fixed |
| 5572 | the FTP response timeout part of the patch. |
| 5573 | |
| 5574 | Internally we now count and keep the timeouts in milliseconds but it also |
| 5575 | means we multiply set timeouts with 1000. The effect of this is that no |
| 5576 | timeout can be set to more than 2^31 milliseconds (on 32 bit systems), which |
| 5577 | equals 24.86 days. We probably couldn't before either since the code did |
| 5578 | *1000 on the timeout values on several places already. |
| 5579 | |
| 5580 | Daniel (3 February 2007) |
| 5581 | - Yang Tse fixed the cookie expiry date in several test cases that started to |
| 5582 | fail since they used "1 feb 2007"... |
| 5583 | |
| 5584 | - Manfred Schwarb reported that socks5 support was broken and help us pinpoint |
| 5585 | the problem. The code now tries harder to use httproxy and proxy where |
| 5586 | apppropriate, as not all proxies are HTTP... |
| 5587 | |
| 5588 | Version 7.16.1 (29 January 2007) |
| 5589 | |
| 5590 | Daniel (29 January 2007) |
| 5591 | - Michael Wallner reported that when doing a CONNECT with a custom User-Agent |
| 5592 | header, you got _two_ User-Agent headers in the CONNECT request...! Added |
| 5593 | test case 287 to verify the fix. |
| 5594 | |
| 5595 | Daniel (28 January 2007) |
| 5596 | - curl_easy_reset() now resets the CA bundle path correctly. |
| 5597 | |
| 5598 | - David McCreedy fixed the Curl command line tool for HTTP on non-ASCII |
| 5599 | platforms. |
| 5600 | |
| 5601 | Daniel (25 January 2007) |
| 5602 | - Added the --libcurl [file] option to curl. Append this option to any |
| 5603 | ordinary curl command line, and you will get a libcurl-using source code |
| 5604 | written to the file that does the equivalent operation of what your command |
| 5605 | line operation does! |
| 5606 | |
| 5607 | Dan F (24 January 2007) |
| 5608 | - Fixed a dangling pointer problem that prevented the http_proxy environment |
| 5609 | variable from being properly used in many cases (and caused test case 63 |
| 5610 | to fail). |
| 5611 | |
| 5612 | Daniel (23 January 2007) |
| 5613 | - David McCreedy did NTLM changes mainly for non-ASCII platforms: |
| 5614 | |
| 5615 | #1 |
| 5616 | There's a compilation error in http_ntlm.c if USE_NTLM2SESSION is NOT |
| 5617 | defined. I noticed this while testing various configurations. Line 867 of |
| 5618 | the current http_ntlm.c is a closing bracket for an if/else pair that only |
| 5619 | gets compiled in if USE_NTLM2SESSION is defined. But this closing bracket |
| 5620 | wasn't in an #ifdef so the code fails to compile unless USE_NTLM2SESSION was |
| 5621 | defined. Lines 198 and 140 of my patch wraps that closing bracket in an |
| 5622 | #ifdef USE_NTLM2SESSION. |
| 5623 | |
| 5624 | #2 |
| 5625 | I noticed several picky compiler warnings when DEBUG_ME is defined. I've |
| 5626 | fixed them with casting. By the way, DEBUG_ME was a huge help in |
| 5627 | understanding this code. |
| 5628 | |
| 5629 | #3 |
| 5630 | Hopefully the last non-ASCII conversion patch for libcurl in a while. I |
| 5631 | changed the "NTLMSSP" literal to hex since this signature must always be in |
| 5632 | ASCII. |
| 5633 | |
| 5634 | Conversion code was strategically added where necessary. And the |
| 5635 | Curl_base64_encode calls were changed so the binary "blobs" http_ntlm.c |
| 5636 | creates are NOT translated on non-ASCII platforms. |
| 5637 | |
| 5638 | Dan F (22 January 2007) |
| 5639 | - Converted (most of) the test data files into genuine XML. A handful still |
| 5640 | are not, due mainly to the lack of support for XML character entities |
| 5641 | (e.g. & => & ). This will make it easier to validate test files using |
| 5642 | tools like xmllint, as well as to edit and view them using XML tools. |
| 5643 | |
| 5644 | Daniel (16 January 2007) |
| 5645 | - Armel Asselin improved libcurl to behave a lot better when an easy handle |
| 5646 | doing an FTP transfer is removed from a multi handle before completion. The |
| 5647 | fix also fixed the "alive counter" to be correct on "premature removal" for |
| 5648 | all protocols. |
| 5649 | |
| 5650 | Dan F (16 January 2007) |
| 5651 | - Fixed a small memory leak in tftp uploads discovered by curl's memory leak |
| 5652 | detector. Also changed tftp downloads to URL-unescape the downloaded |
| 5653 | file name. |
| 5654 | |
| 5655 | Daniel (14 January 2007) |
| 5656 | - David McCreedy provided libcurl changes for doing HTTP communication on |
| 5657 | non-ASCII platforms. It does add some complexity, most notably with more |
| 5658 | #ifdefs, but I want to see this supported added and I can't see how we can |
| 5659 | add it without the extra stuff added. |
| 5660 | |
| 5661 | - Setting CURLOPT_COOKIELIST to "ALL" when no cookies at all was present, |
| 5662 | libcurl would crash when trying to read a NULL pointer. |
| 5663 | |
| 5664 | Daniel (12 January 2007) |
| 5665 | - Toby Peterson found a nasty bug that prevented (lib)curl from properly |
| 5666 | downloading (most) things that were larger than 4GB on 32 bit systems. Matt |
| 5667 | Witherspoon helped as narrow down the problem. |
| 5668 | |
| 5669 | Daniel (5 January 2007) |
| 5670 | - Linus Nielsen Feltzing introduced the --ftp-ssl-ccc command line option to |
| 5671 | curl that uses the new CURLOPT_FTP_SSL_CCC option in libcurl. If enabled, it |
| 5672 | will make libcurl shutdown SSL/TLS after the authentication is done on a |
| 5673 | FTP-SSL operation. |
| 5674 | |
| 5675 | Daniel (4 January 2007) |
| 5676 | - David McCreedy made changes to allow base64 encoding/decoding to work on |
| 5677 | non-ASCII platforms. |
| 5678 | |
| 5679 | Daniel (3 January 2007) |
| 5680 | - Matt Witherspoon fixed the flaw which made libcurl 7.16.0 always store |
| 5681 | downloaded data in two buffers, just to be able to deal with a special HTTP |
| 5682 | pipelining case. That is now only activated for pipelined transfers. In |
| 5683 | Matt's case, it showed as a considerable performance difference, |
| 5684 | |
| 5685 | Daniel (2 January 2007) |
| 5686 | - Victor Snezhko helped us fix bug report #1603712 |
| 5687 | (http://curl.haxx.se/bug/view.cgi?id=1603712) (known bug #36) --limit-rate |
| 5688 | (CURLOPT_MAX_SEND_SPEED_LARGE and CURLOPT_MAX_RECV_SPEED_LARGE) are broken |
| 5689 | on Windows (since 7.16.0, but that's when they were introduced as previous |
| 5690 | to that the limiting logic was made in the application only and not in the |
| 5691 | library). It was actually also broken on select()-based systems (as apposed |
| 5692 | to poll()) but we haven't had any such reports. We now use select(), Sleep() |
| 5693 | or delay() properly to sleep a while without waiting for anything input or |
| 5694 | output when the rate limiting is activated with the easy interface. |
| 5695 | |
| 5696 | - Modified libcurl.pc.in to use Libs.private for the libs libcurl itself needs |
| 5697 | to get built static. It has been mentioned before and was again brought to |
| 5698 | our attention by Nathanael Nerode who filed debian bug report #405226 |
| 5699 | (http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=405226). |
| 5700 | |
| 5701 | Daniel (29 December 2006) |
| 5702 | - Make curl_easy_duphandle() set the magic number in the new handle. |
| 5703 | |
| 5704 | Daniel (22 December 2006) |
| 5705 | - Robert Foreman provided a prime example snippet showing how libcurl would |
| 5706 | get confused and not acknowledge the 'no_proxy' variable properly once it |
| 5707 | had used the proxy and you re-used the same easy handle. I made sure the |
| 5708 | proxy name is properly stored in the connect struct rather than the |
| 5709 | sessionhandle/easy struct. |
| 5710 | |
| 5711 | - David McCreedy fixed a bad call to getsockname() that wrongly used a size_t |
| 5712 | variable to point to when it should be a socklen_t. |
| 5713 | |
| 5714 | - When setting a proxy with environment variables and (for example) running |
| 5715 | 'curl [URL]' with a URL without a protocol prefix, curl would not send a |
| 5716 | correct request as it failed to add the protocol prefix. |
| 5717 | |
| 5718 | Daniel (21 December 2006) |
| 5719 | - Robson Braga Araujo reported bug #1618359 |
| 5720 | (http://curl.haxx.se/bug/view.cgi?id=1618359) and subsequently provided a |
| 5721 | patch for it: when downloading 2 zero byte files in a row, curl 7.16.0 |
| 5722 | enters an infinite loop, while curl 7.16.1-20061218 does one additional |
| 5723 | unnecessary request. |
| 5724 | |
| 5725 | Fix: During the "Major overhaul introducing http pipelining support and |
| 5726 | shared connection cache within the multi handle." change, headerbytecount |
| 5727 | was moved to live in the Curl_transfer_keeper structure. But that structure |
| 5728 | is reset in the Transfer method, losing the information that we had about |
| 5729 | the header size. This patch moves it back to the connectdata struct. |
| 5730 | |
| 5731 | Daniel (16 December 2006) |
| 5732 | - Brendan Jurd provided a fix that now prevents libcurl from getting a SIGPIPE |
| 5733 | during certain conditions when GnuTLS is used. |
| 5734 | |
| 5735 | Daniel (11 December 2006) |
| 5736 | - Alexey Simak found out that when doing FTP with the multi interface and |
| 5737 | something went wrong like it got a bad response code back from the server, |
| 5738 | libcurl would leak memory. Added test case 538 to verify the fix. |
| 5739 | |
| 5740 | I also noted that the connection would get cached in that case, which |
| 5741 | doesn't make sense since it cannot be re-use when the authentication has |
| 5742 | failed. I fixed that issue too at the same time, and also that the path |
| 5743 | would be "remembered" in vain for cases where the connection was about to |
| 5744 | get closed. |
| 5745 | |
| 5746 | Daniel (6 December 2006) |
| 5747 | - Sebastien Willemijns reported bug #1603712 |
| 5748 | (http://curl.haxx.se/bug/view.cgi?id=1603712) which is about connections |
| 5749 | getting cut off prematurely when --limit-rate is used. While I found no such |
| 5750 | problems in my tests nor in my reading of the code, I found that the |
| 5751 | --limit-rate code was severly flawed (since it was moved into the lib, since |
| 5752 | 7.15.5) when used with the easy interface and it didn't work as documented |
| 5753 | so I reworked it somewhat and now it works for my tests. |
| 5754 | |
| 5755 | Daniel (5 December 2006) |
| 5756 | - Stefan Krause pointed out a compiler warning with a picky MSCV compiler when |
| 5757 | passing a curl_off_t argument to the Curl_read_rewind() function which takes |
| 5758 | an size_t argument. Curl_read_rewind() also had debug code left in it and it |
| 5759 | was put in a different source file with no good reason when only used from |
| 5760 | one single spot. |
| 5761 | |
| 5762 | - Sh Diao reported that CURLOPT_CLOSEPOLICY doesn't work, and indeed, there is |
| 5763 | no code present in the library that receives the option. Since it was not |
| 5764 | possible to use, we know that no current users exist and thus we simply |
| 5765 | removed it from the docs and made the code always use the default path of |
| 5766 | the code. |
| 5767 | |
| 5768 | - Jared Lundell filed bug report #1604956 |
| 5769 | (http://curl.haxx.se/bug/view.cgi?id=1604956) which identified setting |
| 5770 | CURLOPT_MAXCONNECTS to zero caused libcurl to SIGSEGV. Starting now, libcurl |
| 5771 | will always internally use no less than 1 entry in the connection cache. |
| 5772 | |
| 5773 | - Sh Diao reported that CURLOPT_FORBID_REUSE no works, and indeed it broke in |
| 5774 | the 7.16.0 release. |
| 5775 | |
| 5776 | - Martin Skinner brought back bug report #1230118 to haunt us once again. |
| 5777 | (http://curl.haxx.se/bug/view.cgi?id=1230118) curl_getdate() did not work |
| 5778 | properly for all input dates on Windows. It was mostly seen on some TZ time |
| 5779 | zones using DST. Luckily, Martin also provided a fix. |
| 5780 | |
| 5781 | - Alexey Simak filed bug report #1600447 |
| 5782 | (http://curl.haxx.se/bug/view.cgi?id=1600447) in which he noted that active |
| 5783 | FTP connections don't work with the multi interface. The problem is here |
| 5784 | that the multi interface state machine has a state during which it can wait |
| 5785 | for the data connection to connect, but the active connection is not done in |
| 5786 | the same step in the sequence as the passive one is so it doesn't quite work |
| 5787 | for active. The active FTP code still use a blocking function to allow the |
| 5788 | remote server to connect. |
| 5789 | |
| 5790 | The fix (work-around is a better word) for this problem is to set the |
| 5791 | boolean prematurely that the data connection is completed, so that the "wait |
| 5792 | for connect" phase ends at once. |
| 5793 | |
| 5794 | The proper fix, left for the future, is of course to make the active FTP |
| 5795 | case to act in a non-blocking way too. |
| 5796 | |
| 5797 | - Matt Witherspoon fixed a problem case when the CPU load went to 100% when a |
| 5798 | HTTP upload was disconnected: |
| 5799 | |
| 5800 | "What appears to be happening is that my system (Linux 2.6.17 and 2.6.13) is |
| 5801 | setting *only* POLLHUP on poll() when the conditions in my previous mail |
| 5802 | occur. As you can see, select.c:Curl_select() does not check for POLLHUP. So |
| 5803 | basically what was happening, is poll() was returning immediately (with |
| 5804 | POLLHUP set), but when Curl_select() looked at the bits, neither POLLERR or |
| 5805 | POLLOUT was set. This still caused Curl_readwrite() to be called, which |
| 5806 | quickly returned. Then the transfer() loop kept continuing at full speed |
| 5807 | forever." |
| 5808 | |
| 5809 | Daniel (1 December 2006) |
| 5810 | - Toon Verwaest reported that there are servers that send the Content-Range: |
| 5811 | header in a third, not suppported by libcurl, format and we agreed that we |
| 5812 | could make the parser more forgiving to accept all the three found |
| 5813 | variations. |
| 5814 | |
| 5815 | Daniel (25 November 2006) |
| 5816 | - Venkat Akella found out that libcurl did not like HTTP responses that simply |
| 5817 | responded with a single status line and no headers nor body. Starting now, a |
| 5818 | HTTP response on a persistent connection (i.e not set to be closed after the |
| 5819 | response has been taken care of) must have Content-Length or chunked |
| 5820 | encoding set, or libcurl will simply assume that there is no body. |
| 5821 | |
| 5822 | To my horror I learned that we had no less than 57(!) test cases that did bad |
| 5823 | HTTP responses like this, and even the test http server (sws) responded badly |
| 5824 | when queried by the test system if it is the test system. So although the |
| 5825 | actual fix for the problem was tiny, going through all the newly failing test |
| 5826 | cases got really painful and boring. |
| 5827 | |
| 5828 | Daniel (24 November 2006) |
| 5829 | - James Housley did lots of work and introduced SFTP downloads. |
| 5830 | |
| 5831 | Daniel (13 November 2006) |
| 5832 | - Ron in bug #1595348 (http://curl.haxx.se/bug/view.cgi?id=1595348) pointed |
| 5833 | out a stack overwrite (and the corresponding fix) on 64bit Windows when |
| 5834 | dealing with HTTP chunked encoding. |
| 5835 | |
| 5836 | Daniel (9 November 2006) |
| 5837 | - Nir Soffer updated libcurl.framework.make: |
| 5838 | o fix symlinks, should link to Versions, not to ./Versions |
| 5839 | o indentation improvments |
| 5840 | |
| 5841 | - Dmitriy Sergeyev found a SIGSEGV with his test04.c example posted on 7 Nov |
| 5842 | 2006. It turned out we wrongly assumed that the connection cache was present |
| 5843 | when tearing down a connection. |
| 5844 | |
| 5845 | - Ciprian Badescu found a SIGSEGV when doing multiple TFTP transfers using the |
| 5846 | multi interface, but I could also repeat it doing multiple sequential ones |
| 5847 | with the easy interface. Using Ciprian's test case, I could fix it. |
| 5848 | |
| 5849 | Daniel (8 November 2006) |
| 5850 | - Bradford Bruce reported that when setting CURLOPT_DEBUGFUNCTION without |
| 5851 | CURLOPT_VERBOSE set to non-zero, you still got a few debug messages from the |
| 5852 | SSL handshake. This is now stopped. |
| 5853 | |
| 5854 | Daniel (7 November 2006) |
| 5855 | - Olaf fixed a leftover problem with the CONNECT fix of his that would leave a |
| 5856 | wrong error message in the error message buffer. |
| 5857 | |
| 5858 | Daniel (3 November 2006) |
| 5859 | - Olaf Stueben provided a patch that I edited slightly. It fixes the notorious |
| 5860 | KNOWN_BUGS #25, which happens when a proxy closes the connection when |
| 5861 | libcurl has sent CONNECT, as part of an authentication negotiation. Starting |
| 5862 | now, libcurl will re-connect accordingly and continue the authentication as |
| 5863 | it should. |
| 5864 | |
| 5865 | Daniel (2 November 2006) |
| 5866 | - James Housley brought support for SCP transfers, based on the libssh2 library |
| 5867 | for the actual network protocol stuff. |
| 5868 | |
| 5869 | Added these new curl_easy_setopt() options: |
| 5870 | |
| 5871 | CURLOPT_SSH_AUTH_TYPES |
| 5872 | CURLOPT_SSH_PUBLIC_KEYFILE |
| 5873 | CURLOPT_SSH_PRIVATE_KEYFILE |
| 5874 | |
| 5875 | Version 7.16.0 (30 October 2006) |
| 5876 | |
| 5877 | Daniel (25 October 2006) |
| 5878 | - Fixed CURLOPT_FAILONERROR to return CURLE_HTTP_RETURNED_ERROR even for the |
| 5879 | case when 401 or 407 are returned, *IF* no auth credentials have been given. |
| 5880 | The CURLOPT_FAILONERROR option is not possible to make fool-proof for 401 |
| 5881 | and 407 cases when auth credentials is given, but we've now covered this |
| 5882 | somewhat more. |
| 5883 | |
| 5884 | You might get some amounts of headers transferred before this situation is |
| 5885 | detected, like for when a "100-continue" is received as a response to a |
| 5886 | POST/PUT and a 401 or 407 is received immediately afterwards. |
| 5887 | |
| 5888 | Added test 281 to verify this change. |
| 5889 | |
| 5890 | Daniel (23 October 2006) |
| 5891 | - Ravi Pratap provided a major update with pipelining fixes. We also no longer |
| 5892 | re-use connections (for pipelining) before the name resolving is done. |
| 5893 | |
| 5894 | Daniel (21 October 2006) |
| 5895 | - Nir Soffer made the tests/libtest/Makefile.am use a proper variable for all |
| 5896 | the single test applications' link and dependences, so that you easier can |
| 5897 | override those from the command line when using make. |
| 5898 | |
| 5899 | - Armel Asselin separated CA cert verification problems from problems with |
| 5900 | reading the (local) CA cert file to let users easier pinpoint the actual |
| 5901 | problem. CURLE_SSL_CACERT_BADFILE (77) is the new libcurl error code. |
| 5902 | |
| 5903 | Daniel (18 October 2006) |
| 5904 | - Removed the "protocol-guessing" for URLs with host names starting with FTPS |
| 5905 | or TELNET since they are practically non-existant. This leaves us with only |
| 5906 | three different prefixes that would assume the protocol is anything but |
| 5907 | HTTP, and they are host names starting with "ftp.", "dict." or "ldap.". |
| 5908 | |
| 5909 | Daniel (17 October 2006) |
| 5910 | - Bug report #1579171 pointed out code flaws detected with "prefast", and they |
| 5911 | were 1 - a too small memory clear with memset() in the threaded resolver and |
| 5912 | 2 - a range of potentially bad uses of the ctype family of is*() functions |
| 5913 | such as isdigit(), isalnum(), isprint() and more. The latter made me switch |
| 5914 | to using our own set of these functions/macros using uppercase letters, and |
| 5915 | with some extra set of crazy typecasts to avoid mistakingly passing in |
| 5916 | negative numbers to the underlying is*() functions. |
| 5917 | |
| 5918 | - With Jeff Pohlmeyer's help, I fixed the expire timer when using |
| 5919 | curl_multi_socket() during name resolves with c-ares and the LOW_SPEED |
| 5920 | options now work fine with curl_multi_socket() as well. |
| 5921 | |
| 5922 | Daniel (16 October 2006) |
| 5923 | - Added a check in configure that simply tries to run a program (not when |
| 5924 | cross-compiling) in order to detect problems with run-time libraries that |
| 5925 | otherwise would occur when the sizeof tests for curl_off_t would run and |
| 5926 | thus be much more confusing to users. The check of course should run after |
| 5927 | all lib-checks are done and before any other test is used that would run an |
| 5928 | executable built for testing-purposes. |
| 5929 | |
| 5930 | Dan F (13 October 2006) |
| 5931 | - The tagging of application/x-www-form-urlencoded POST body data sent |
| 5932 | to the CURLOPT_DEBUGFUNCTION callback has been fixed (it was erroneously |
| 5933 | included as part of the header). A message was also added to the |
| 5934 | command line tool to show when data is being sent, enabled when |
| 5935 | --verbose is used. |
| 5936 | |
| 5937 | Daniel (12 October 2006) |
| 5938 | - Starting now, adding an easy handle to a multi stack that was already added |
| 5939 | to a multi stack will cause CURLM_BAD_EASY_HANDLE to get returned. |
| 5940 | |
| 5941 | - Jeff Pohlmeyer has been working with the hiperfifo.c example source code, |
| 5942 | and while doing so it became apparent that the current timeout system for |
| 5943 | the socket API really was a bit awkward since it become quite some work to |
| 5944 | be sure we have the correct timeout set. |
| 5945 | |
| 5946 | Jeff then provided the new CURLMOPT_TIMERFUNCTION that is yet another |
| 5947 | callback the app can set to get to know when the general timeout time |
| 5948 | changes and thus for an application like hiperfifo.c it makes everything a |
| 5949 | lot easier and nicer. There's a CURLMOPT_TIMERDATA option too of course in |
| 5950 | good old libcurl tradition. |
| 5951 | |
| 5952 | Jeff has also updated the hiperfifo.c example code to use this news. |
| 5953 | |
| 5954 | Daniel (9 October 2006) |
| 5955 | - Bogdan Nicula's second test case (posted Sun, 08 Oct 2006) converted to test |
| 5956 | case 535 and it now runs fine. Again a problem with the pipelining code not |
| 5957 | taking all possible (error) conditions into account. |
| 5958 | |
| 5959 | Daniel (6 October 2006) |
| 5960 | - Bogdan Nicula's hanging test case (posted Wed, 04 Oct 2006) was converted to |
| 5961 | test case 533 and the test now runs fine. |
| 5962 | |
| 5963 | Daniel (4 October 2006) |
| 5964 | - Dmitriy Sergeyev provided an example source code that crashed CVS libcurl |
| 5965 | but that worked nicely in 7.15.5. I converted it into test case 532 and |
| 5966 | fixed the problem. |
| 5967 | |
| 5968 | Daniel (29 September 2006) |
| 5969 | - Removed a few other no-longer present options from the header file. |
| 5970 | |
| 5971 | - Support for FTP third party transfers was removed. Here's why: |
| 5972 | |
| 5973 | o The recent multi interface changes broke it and the design of the 3rd party |
| 5974 | transfers made it very hard to fix the problems |
| 5975 | o It was still blocking and thus nasty for the multi interface |
| 5976 | o It was a lot of extra code for a very rarely used feature |
| 5977 | o It didn't use the same code as for "plain" FTP transfers, so it didn't work |
| 5978 | fine for IPv6 and it didn't properly re-use connections and more |
| 5979 | o There's nobody around who's willing to work on and improve the existing |
| 5980 | code |
| 5981 | |
| 5982 | This does not mean that third party transfers are banned forever, only that |
| 5983 | they need to be done better if they are to be re-added in the future. |
| 5984 | |
| 5985 | The CURLOPT_SOURCE_* options are removed from the lib and so are the --3p* |
| 5986 | options from the command line tool. For this reason, I also bumped the |
| 5987 | version info for the lib. |
| 5988 | |
| 5989 | Daniel (28 September 2006) |
| 5990 | - Reported in #1561470 (http://curl.haxx.se/bug/view.cgi?id=1561470), libcurl |
| 5991 | would crash if a bad function sequence was used when shutting down after |
| 5992 | using the multi interface (i.e using easy_cleanup after multi_cleanup) so |
| 5993 | precautions have been added to make sure it doesn't any more - test case 529 |
| 5994 | was added to verify. |
| 5995 | |
| 5996 | Daniel (27 September 2006) |
| 5997 | - The URL in the cookie jar file is now changed since it was giving a 404. |
| 5998 | Reported by Timothy Stone. The new URL will take the visitor to a curl web |
| 5999 | site mirror with the document. |
| 6000 | |
| 6001 | Daniel (24 September 2006) |
| 6002 | - Bernard Leak fixed configure --with-gssapi-libs. |
| 6003 | |
| 6004 | - Cory Nelson made libcurl use the WSAPoll() function if built for Windows |
| 6005 | Vista (_WIN32_WINNT >= 0x0600) |
| 6006 | |
| 6007 | Daniel (23 September 2006) |
| 6008 | - Mike Protts added --ftp-ssl-control to make curl use FTP-SSL, but only |
| 6009 | encrypt the control connection and use the data connection "plain". |
| 6010 | |
| 6011 | - Dmitriy Sergeyev provided a patch that made the SOCKS[45] code work better |
| 6012 | as it now will read the full data sent from servers. The SOCKS-related code |
| 6013 | was also moved to the new lib/socks.c source file. |
| 6014 | |
| 6015 | Daniel (21 September 2006) |
| 6016 | - Added test case 531 in an attempt to repeat bug report #1561470 |
| 6017 | (http://curl.haxx.se/bug/view.cgi?id=1561470) that is said to crash when an |
| 6018 | FTP upload fails with the multi interface. It did not, but I made a failed |
| 6019 | upload still assume the control connection to be fine. |
| 6020 | |
| 6021 | Daniel (20 September 2006) |
| 6022 | - Armel Asselin fixed problems when you gave a proxy URL with user name and |
| 6023 | empty password or no password at all. Test case 278 and 279 were added to |
| 6024 | verify. |
| 6025 | |
| 6026 | Daniel (12 September 2006) |
| 6027 | - Added docs/examples/10-at-a-time.c by Michael Wallner |
| 6028 | |
| 6029 | - Added docs/examples/hiperfifo.c by Jeff Pohlmeyer |
| 6030 | |
| 6031 | Daniel (11 September 2006) |
| 6032 | - Fixed my breakage from earlier today so that doing curl_easy_cleanup() on a |
| 6033 | handle that is part of a multi handle first removes the handle from the |
| 6034 | stack. |
| 6035 | |
| 6036 | - Added CURLOPT_SSL_SESSIONID_CACHE and --no-sessionid to disable SSL |
| 6037 | session-ID re-use on demand since there obviously are broken servers out |
| 6038 | there that misbehave with session-IDs used. |
| 6039 | |
| 6040 | - Jeff Pohlmeyer presented a *multi_socket()-using program that exposed a |
| 6041 | problem with it (SIGSEGV-style). It clearly showed that the existing |
| 6042 | socket-state and state-difference function wasn't good enough so I rewrote |
| 6043 | it and could then re-run Jeff's program without any crash. The previous |
| 6044 | version clearly could miss to tell the application when a handle changed |
| 6045 | from using one socket to using another. |
| 6046 | |
| 6047 | While I was at it (as I could use this as a means to track this problem |
| 6048 | down), I've now added a 'magic' number to the easy handle struct that is |
| 6049 | inited at curl_easy_init() time and cleared at curl_easy_cleanup() time that |
| 6050 | we can use internally to detect that an easy handle seems to be fine, or at |
| 6051 | least not closed or freed (freeing in debug builds fill the area with 0x13 |
| 6052 | bytes but in normal builds we can of course not assume any particular data |
| 6053 | in the freed areas). |
| 6054 | |
| 6055 | Daniel (9 September 2006) |
| 6056 | - Michele Bini fixed how the hostname is put in NTLM packages. As servers |
| 6057 | don't expect fully qualified names we need to cut them off at the first dot. |
| 6058 | |
| 6059 | - Peter Sylvester cleaned up and fixed the getsockname() uses in ftp.c. Some |
| 6060 | of them can be completetly removed though... |
| 6061 | |
| 6062 | Daniel (6 September 2006) |
| 6063 | - Ravi Pratap and I have implemented HTTP Pipelining support. Enable it for a |
| 6064 | multi handle using CURLMOPT_PIPELINING and all HTTP connections done on that |
| 6065 | handle will be attempted to get pipelined instead of done in parallell as |
| 6066 | they are performed otherwise. |
| 6067 | |
| 6068 | As a side-effect from this work, connections are now shared between all easy |
| 6069 | handles within a multi handle, so if you use N easy handles for transfers, |
| 6070 | each of them can pick up and re-use a connection that was previously used by |
| 6071 | any of the handles, be it the same or one of the others. |
| 6072 | |
| 6073 | This separation of the tight relationship between connections and easy |
| 6074 | handles is most noticable when you close easy handles that have been used in |
| 6075 | a multi handle and check amount of used memory or watch the debug output, as |
| 6076 | there are times when libcurl will keep the easy handle around for a while |
| 6077 | longer to be able to close it properly. Like for sending QUIT to close down |
| 6078 | an FTP connection. |
| 6079 | |
| 6080 | This is a major change. |
| 6081 | |
| 6082 | Daniel (4 September 2006) |
| 6083 | - Dmitry Rechkin (http://curl.haxx.se/bug/view.cgi?id=1551412) provided a |
| 6084 | patch that while not fixing things very nicely, it does make the SOCKS5 |
| 6085 | proxy connection slightly better as it now acknowledges the timeout for |
| 6086 | connection and it no longer segfaults in the case when SOCKS requires |
| 6087 | authentication and you did not specify username:password. |
| 6088 | |
| 6089 | Daniel (31 August 2006) |
| 6090 | - Dmitriy Sergeyev found and fixed a multi interface flaw when using asynch |
| 6091 | name resolves. It could get stuck in the wrong state. |
| 6092 | |
| 6093 | Gisle (29 August 2006) |
| 6094 | - Added support for other MS-DOS compilers (desides djgpp). All MS-DOS |
| 6095 | compiler now uses the same config.dos file (renamed to config.h by |
| 6096 | make). libcurl now builds fine using Watcom and Metaware's High-C |
| 6097 | using the Watt-32 tcp/ip-stack. |
| 6098 | |
| 6099 | Daniel (29 August 2006) |
| 6100 | - David McCreedy added CURLOPT_SOCKOPTFUNCTION and CURLOPT_SOCKOPTDATA to |
| 6101 | allow applications to set their own socket options. |
| 6102 | |
| 6103 | Daniel (25 August 2006) |
| 6104 | - Armel Asselin reported that the 'running_handles' counter wasn't updated |
| 6105 | properly if you removed a "live" handle from a multi handle with |
| 6106 | curl_multi_remove_handle(). |
| 6107 | |
| 6108 | Daniel (22 August 2006) |
| 6109 | - David McCreedy fixed a remaining mistake from the August 19 TYPE change. |
| 6110 | |
| 6111 | - Peter Sylvester pointed out a flaw in the AllowServerConnect() in the FTP |
| 6112 | code when doing pure IPv6 EPRT connections. |
| 6113 | |
| 6114 | Daniel (19 August 2006) |
| 6115 | - Based on a patch by Armel Asselin, the FTP code no longer re-issues the TYPE |
| 6116 | command on subsequent requests on a re-used connection unless it has to. |
| 6117 | |
| 6118 | - Armel Asselin fixed a crash in the FTP code when using SINGLECWD mode and |
| 6119 | files in the root directory. |
| 6120 | |
| 6121 | - Andrew Biggs pointed out a "Expect: 100-continue" flaw where libcurl didn't |
| 6122 | send the whole request at once, even though the Expect: header was disabled |
| 6123 | by the application. An effect of this change is also that small (< 1024 |
| 6124 | bytes) POSTs are now always sent without Expect: header since we deem it |
| 6125 | more costly to bother about that than the risk that we send the data in |
| 6126 | vain. |
| 6127 | |
| 6128 | Daniel (9 August 2006) |
| 6129 | - Armel Asselin made the CURLOPT_PREQUOTE option work fine even when |
| 6130 | CURLOPT_NOBODY is set true. PREQUOTE is then run roughly at the same place |
| 6131 | in the command sequence as it would have run if there would've been a |
| 6132 | transfer. |
| 6133 | |
| 6134 | Daniel (8 August 2006) |
| 6135 | - Fixed a flaw in the "Expect: 100-continue" treatment. If you did two POSTs |
| 6136 | on a persistent connection and allowed the first to use that header, you |
| 6137 | could not disable it for the second request. |
| 6138 | |
| 6139 | Daniel (7 August 2006) |
| 6140 | - Domenico Andreolfound a quick build error which happened because |
| 6141 | src/config.h.in was not a proper duplcate of lib/config.h.in which it |
| 6142 | should've been and this was due to the maketgz script not doing the cp |
| 6143 | properly. |
| 6144 | |
| 6145 | Version 7.15.5 (7 August 2006) |
| 6146 | |
| 6147 | Daniel (2 August 2006) |
| 6148 | - Mark Lentczner fixed how libcurl was not properly doing chunked encoding |
| 6149 | if the header "Transfer-Encoding: chunked" was set by the application. |
| 6150 | http://curl.haxx.se/bug/view.cgi?id=1531838 |
| 6151 | |
| 6152 | Daniel (1 August 2006) |
| 6153 | - Maciej Karpiuk fixed a crash that would occur if we passed Curl_strerror() |
| 6154 | an unknown error number on glibc systems. |
| 6155 | http://curl.haxx.se/bug/view.cgi?id=1532289 |
| 6156 | |
| 6157 | Daniel (31 July 2006) |
| 6158 | - *ALERT* curl_multi_socket() and curl_multi_socket_all() got modified |
| 6159 | prototypes: they both now provide the number of running handles back to the |
| 6160 | calling function. It makes the functions resemble the good old |
| 6161 | curl_multi_perform() more and provides a nice way to know when the multi |
| 6162 | handle goes empty. |
| 6163 | |
| 6164 | ALERT2: don't use the curl_multi_socket*() functionality in anything |
| 6165 | production-like until I say it's somewhat settled, as I suspect there might |
| 6166 | be some further API changes before I'm done... |
| 6167 | |
| 6168 | Daniel (28 July 2006) |
| 6169 | - Yves Lejeune fixed so that replacing Content-Type: when doing multipart |
| 6170 | formposts work exactly the way you want it (and the way you'd assume it |
| 6171 | works). |
| 6172 | |
| 6173 | Daniel (27 July 2006) |
| 6174 | - David McCreedy added --ftp-ssl-reqd which makes curl *require* SSL for both |
| 6175 | control and data connection, as the existing --ftp-ssl option only requests |
| 6176 | it. |
| 6177 | |
| 6178 | - [Hiper-related work] Added a function called curl_multi_assign() that will |
| 6179 | set a private pointer added to the internal libcurl hash table for the |
| 6180 | particular socket passed in to this function: |
| 6181 | |
| 6182 | CURLMcode curl_multi_assign(CURLM *multi_handle, |
| 6183 | curl_socket_t sockfd, |
| 6184 | void *sockp); |
| 6185 | |
| 6186 | 'sockp' being a custom pointer set by the application to be associated with |
| 6187 | this socket. The socket has to be already existing and in-use by libcurl, |
| 6188 | like having already called the callback telling about its existance. |
| 6189 | |
| 6190 | The set hashp pointer will then be passed on to the callback in upcoming |
| 6191 | calls when this same socket is used (in the brand new 'socketp' argument). |
| 6192 | |
| 6193 | Daniel (26 July 2006) |
| 6194 | - Dan Nelson added the CURLOPT_FTP_ALTERNATIVE_TO_USER libcurl option and curl |
| 6195 | tool option named --ftp-alternative-to-user. It provides a mean to send a |
| 6196 | particular command if the normal USER/PASS approach fails. |
| 6197 | |
| 6198 | - Michael Jerris added magic that builds lib/curllib.vcproj automatically for |
| 6199 | newer MSVC. |
| 6200 | |
| 6201 | Daniel (25 July 2006) |
| 6202 | - Georg Horn made the transfer timeout error message include more details. |
| 6203 | |
| 6204 | Daniel (20 July 2006) |
| 6205 | - David McCreedy fixed a build error when building libcurl with HTTP disabled, |
| 6206 | problem added with the curl_formget() patch. |
| 6207 | |
| 6208 | Daniel (17 July 2006) |
| 6209 | - Jari Sundell did some excellent research and bug tracking, figured out that |
| 6210 | we did wrong and patched it: When nodes were removed from the splay tree, |
| 6211 | and we didn't properly remove it from the splay tree when an easy handle was |
| 6212 | removed from a multi stack and thus we could wrongly leave a node in the |
| 6213 | splay tree pointing to (bad) memory. |
| 6214 | |
| 6215 | Daniel (14 July 2006) |
| 6216 | - David McCreedy fixed a flaw where the CRLF counter wasn't properly cleared |
| 6217 | for FTP ASCII transfers. |
| 6218 | |
| 6219 | Daniel (8 July 2006) |
| 6220 | - Ates Goral pointed out that libcurl's cookie parser did case insensitive |
| 6221 | string comparisons on the path which is incorrect and provided a patch that |
| 6222 | fixes this. I edited test case 8 to include details that test for this. |
| 6223 | |
| 6224 | - Ingmar Runge provided a source snippet that caused a crash. The reason for |
| 6225 | the crash was that libcurl internally was a bit confused about who owned the |
| 6226 | DNS cache at all times so if you created an easy handle that uses a shared |
| 6227 | DNS cache and added that to a multi handle it would crash. Now we keep more |
| 6228 | careful internal track of exactly what kind of DNS cache each easy handle |
| 6229 | uses: None, Private (allocated for and used only by this single handle), |
| 6230 | Shared (points to a cache held by a shared object), Global (points to the |
| 6231 | global cache) or Multi (points to the cache within the multi handle that is |
| 6232 | automatically shared between all easy handles that are added with private |
| 6233 | caches). |
| 6234 | |
| 6235 | Daniel (4 July 2006) |
| 6236 | - Toshiyuki Maezawa fixed a problem where you couldn't override the |
| 6237 | Proxy-Connection: header when using a proxy and not doing CONNECT. |
| 6238 | |
| 6239 | Daniel (24 June 2006) |
| 6240 | - Michael Wallner added curl_formget(), which allows an application to extract |
| 6241 | (serialise) a previously built formpost (as with curl_formadd()). |
| 6242 | |
| 6243 | Daniel (23 June 2006) |
| 6244 | - Arve Knudsen found a flaw in curl_multi_fdset() for systems where |
| 6245 | curl_socket_t is unsigned (like Windows) that could cause it to wrongly |
| 6246 | return a max fd of -1. |
| 6247 | |
| 6248 | Daniel (20 June 2006) |
| 6249 | - Peter Silva introduced CURLOPT_MAX_SEND_SPEED_LARGE and |
| 6250 | CURLOPT_MAX_RECV_SPEED_LARGE that limit tha maximum rate libcurl is allowed |
| 6251 | to send or receive data. This kind of adds the the command line tool's |
| 6252 | option --limit-rate to the library. |
| 6253 | |
| 6254 | The rate limiting logic in the curl app is now removed and is instead |
| 6255 | provided by libcurl itself. Transfer rate limiting will now also work for -d |
| 6256 | and -F, which it didn't before. |
| 6257 | |
| 6258 | Daniel (19 June 2006) |
| 6259 | - Made -K on a file that couldn't be read cause a warning to be displayed. |
| 6260 | |
| 6261 | Daniel (13 June 2006) |
| 6262 | - Dan Fandrich implemented --enable-hidden-symbols configure option to enable |
| 6263 | -fvisibility=hidden on gcc >= 4.0. This reduces the size of the libcurl |
| 6264 | binary and speeds up dynamic linking by hiding all the internal symbols from |
| 6265 | the symbol table. |
| 6266 | |
| 6267 | Version 7.15.4 (12 June 2006) |
| 6268 | |
| 6269 | Daniel (8 June 2006) |
| 6270 | - Brian Dessent fixed the code for cygwin in three distinct ways: |
| 6271 | |
| 6272 | The first modifies {lib,src}/setup.h to not include the winsock headers |
| 6273 | under Cygwin. This fixes the reported build problem. Cygwin attempts as |
| 6274 | much as possible to emulate a posix environment under Windows. This means |
| 6275 | that WIN32 is *not* #defined and (to the extent possible) everything is done |
| 6276 | as it would be on a *ix type system. Thus <sys/socket.h> is the proper |
| 6277 | include, and even though winsock2.h is present, including it just introduces |
| 6278 | a whole bunch of incompatible socket API stuff. |
| 6279 | |
| 6280 | The second is a patch I've included in the Cygwin binary packages for a |
| 6281 | while. It skips two unnecessary library checks (-lwinmm and -lgdi32). The |
| 6282 | checks are innocuous and they do succeed, but they pollute LIBS with |
| 6283 | unnecessary stuff which gets recorded as such in the libcurl.la file, which |
| 6284 | brings them into the build of any libcurl-downstream. As far as I know |
| 6285 | these libs are really only necessary for mingw, so alternatively they could |
| 6286 | be designed to only run if $host matches *-*-mingw* but I took the safer |
| 6287 | route of skipping them for *-*-cygwin*. |
| 6288 | |
| 6289 | The third patch replaces all uses of the ancient and obsolete __CYGWIN32__ |
| 6290 | with __CYGWIN__. Ref: <http://cygwin.com/ml/cygwin/2003-09/msg01520.html>. |
| 6291 | |
| 6292 | Daniel (7 June 2006) |
| 6293 | - Mikael Sennerholm provided a patch that added NTLM2 session response support |
| 6294 | to libcurl. The 21 NTLM test cases were again modified to comply... |
| 6295 | |
| 6296 | Daniel (27 May 2006) |
| 6297 | - Óscar Morales Vivó updated the libcurl.framework.make file. |
| 6298 | |
| 6299 | Daniel (26 May 2006) |
| 6300 | - Olaf Stüben fixed a bug that caused Digest authentication with md5-sess to |
| 6301 | fail. When using the md5-sess, the result was not Md5 encoded and Base64 |
| 6302 | transformed. |
| 6303 | |
| 6304 | Daniel (25 May 2006) |
| 6305 | - Michael Wallner provided a patch that allows "SESS" to be set with |
| 6306 | CURLOPT_COOKIELIST, which then makes all session cookies get cleared. |
| 6307 | |
| 6308 | Daniel (24 May 2006) |
| 6309 | - Tor Arntsen made test 271 run fine again since the TFTP path fix. |
| 6310 | |
| 6311 | Daniel (23 May 2006) |
| 6312 | - Martin Michlmayr filed debian bug report #367954, but the same error also |
| 6313 | showed up in the autobuilds. It seems a rather long-since introduced shell |
| 6314 | script flaw in the configure script suddenly was detected by the bash |
| 6315 | version in Debian Unstable. It had previously passed undetected by all |
| 6316 | shells used so far... |
| 6317 | |
| 6318 | - David McCreedy updated lib/config-tpf.h |
| 6319 | |
| 6320 | Daniel (11 May 2006) |
| 6321 | - Fixed the configure's check for old-style SSLeay headers since I fell over a |
| 6322 | case with a duplicate file name (a krb4 implementation with an err.h |
| 6323 | file). I converted the check to manually make sure three of the headers are |
| 6324 | present before considering them fine. |
| 6325 | |
| 6326 | - David McCreedy provided a fix for CURLINFO_LASTSOCKET that does extended |
| 6327 | checks on the to-be-returned socket to make sure it truly seems to be alive |
| 6328 | and well. For SSL connection it (only) uses OpenSSL functions. |
| 6329 | |
| 6330 | Daniel (10 May 2006) |
| 6331 | - Fixed DICT in two aspects: |
| 6332 | |
| 6333 | 1 - allow properly URL-escaped words, like using %20 for spaces |
| 6334 | |
| 6335 | 2 - properly escape certain letters within a word to comply to the RFC2229 |
| 6336 | |
| 6337 | Daniel (9 May 2006) |
| 6338 | - Andreas Ntaflos reported a bug in libcurl.m4: When configuring my GNU |
| 6339 | autotools project, which optionally (default=yes) uses libcurl on a system |
| 6340 | without a (usable) libcurl installation, but not specifying |
| 6341 | `--without-libcurl', configure determines correctly that no libcurl is |
| 6342 | available, however, the LIBCURL variable gets expanded to `LIBCURL = -lcurl' |
| 6343 | in the resulting Makefiles. |
| 6344 | |
| 6345 | David Shaw fixed the flaw. |
| 6346 | |
| 6347 | - Robson Braga Araujo fixed two problems in the recently added non-blocking SSL |
| 6348 | connects. The state machine was not reset properly so that subsequent |
| 6349 | connects using the same handle would fail, and there were two memory leaks. |
| 6350 | |
| 6351 | - Robson Braga Araujo fixed a memory leak when you added an easy handle to a |
| 6352 | multi stack and that easy handle had already been used to do one or more |
| 6353 | easy interface transfers, as then the code threw away the previously used |
| 6354 | DNS cache without properly freeing it. |
| 6355 | |
| 6356 | Daniel (8 May 2006) |
| 6357 | - Dan Fandrich went over the TFTP code and he pointed out and fixed numerous |
| 6358 | problems: |
| 6359 | |
| 6360 | * The received file is corrupted when a packet is lost and retransmitted |
| 6361 | (this is a serious problem!) |
| 6362 | |
| 6363 | * Transmitting a file aborts if a block is lost and retransmitted |
| 6364 | |
| 6365 | * Data is stored in the wrong location in the buffer for uploads, so uploads |
| 6366 | always fail (I don't see how it could have ever worked, but it did on x86 |
| 6367 | at least) |
| 6368 | |
| 6369 | * A number of calls are made to strerror instead of Curl_strerror, making |
| 6370 | the code not thread safe |
| 6371 | |
| 6372 | * There are references to errno instead of Curl_sockerrno(), causing |
| 6373 | incorrect error messages on Windows |
| 6374 | |
| 6375 | * The file name includes a leading / which violates RFC3617. Doing something |
| 6376 | similar to ftp, where two slashes after the host name means an absolute |
| 6377 | reference seems a reasonable extension to fix this. |
| 6378 | |
| 6379 | * Failures in EBCDIC conversion are not propagated up to the caller but are |
| 6380 | silently ignored |
| 6381 | |
| 6382 | - Fixed known bug #28. The TFTP code no longer assumes a packed struct and |
| 6383 | thus works reliably on more platforms. |
| 6384 | |
| 6385 | Daniel (5 May 2006) |
| 6386 | - Roland Blom filed bug report #1481217 |
| 6387 | (http://curl.haxx.se/bug/view.cgi?id=1481217), with follow-ups by Michele |
| 6388 | Bini and David Byron. libcurl previously wrongly used GetLastError() on |
| 6389 | windows to get error details after socket-related function calls, when it |
| 6390 | really should use WSAGetLastError() instead. |
| 6391 | |
| 6392 | When changing to this, the former function Curl_ourerrno() is now instead |
| 6393 | called Curl_sockerrno() as it is necessary to only use it to get errno from |
| 6394 | socket-related functions as otherwise it won't work as intended on Windows. |
| 6395 | |
| 6396 | Daniel (4 May 2006) |
| 6397 | - Mark Eichin submitted bug report #1480821 |
| 6398 | (http://curl.haxx.se/bug/view.cgi?id=1480821) He found and identified a |
| 6399 | problem with how libcurl dealt with GnuTLS and a case where gnutls returned |
| 6400 | GNUTLS_E_AGAIN indicating it would block. It would then return an unexpected |
| 6401 | return code, making Curl_ssl_send() confuse the upper layer - causing random |
| 6402 | 28 bytes trash data to get inserted in the transfered stream. |
| 6403 | |
| 6404 | The proper fix was to make the Curl_gtls_send() function return the proper |
| 6405 | return codes that the callers would expect. The Curl_ossl_send() function |
| 6406 | already did this. |
| 6407 | |
| 6408 | Daniel (2 May 2006) |
| 6409 | - Added a --checkfor option to curl-config to allow users to easier |
| 6410 | write for example shell scripts that test for the presence of a |
| 6411 | new-enough libcurl version. If --checkfor is given a version string |
| 6412 | newer than what is currently installed, curl-config will return a |
| 6413 | non-zero exit code and output a string about the unfulfilled |
| 6414 | requirement. |
| 6415 | |
| 6416 | Daniel (26 April 2006) |
| 6417 | - David McCreedy brought initial line end conversions when doing FTP ASCII |
| 6418 | transfers. They are done on non-windows systems and translate CRLF to LF. |
| 6419 | |
| 6420 | I modified the 15 LIST-using test cases accordingly. The downside is that now |
| 6421 | we'll have even more trouble to get the tests to run on Windows since they |
| 6422 | should get CRLF newlines left intact which the *nix versions don't. I figure |
| 6423 | the only sane thing to do is to add some kind of [newline] macro for the test |
| 6424 | case files and have them expanded to the proper native line ending when the |
| 6425 | test cases are run. This is however left to implement. |
| 6426 | |
| 6427 | Daniel (25 April 2006) |
| 6428 | - Paul Querna fixed libcurl to better deal with deflate content encoding |
| 6429 | when the stream (wrongly) lacks a proper zlib header. This seems to be the |
| 6430 | case on too many actual server implementations. |
| 6431 | |
| 6432 | Daniel (21 April 2006) |
| 6433 | - Ale Vesely fixed CURLOPT_INTERFACE when using a hostname. |
| 6434 | |
| 6435 | Daniel (19 April 2006) |
| 6436 | - Based on previous info from Tor Arntsen, I made configure detect the Intel |
| 6437 | ICC compiler to add a compiler option for it, in order for configure to |
| 6438 | properly be able to detect function prototypes. |
| 6439 | |
| 6440 | - Robson Braga Araujo provided a patch that makes libcurl less eager to close |
| 6441 | the control connection when using FTP, for example when you remove an easy |
| 6442 | handle from a multi stack. |
| 6443 | |
| 6444 | - Applied a patch by Ates Goral and Katie Wang that corrected my bad fix |
| 6445 | attempt from April 10. |
| 6446 | |
| 6447 | Daniel (11 April 2006) |
| 6448 | - #1468330 (http://curl.haxx.se/bug/view.cgi?id=1468330) pointed out a bad |
| 6449 | typecast in the curl tool leading to a crash with (64bit?) VS2005 (at least) |
| 6450 | since the struct timeval field tv_sec is an int while time_t is 64bit. |
| 6451 | |
| 6452 | Daniel (10 April 2006) |
| 6453 | - Ates Goral found out that if you specified both CURLOPT_CONNECTTIMEOUT and |
| 6454 | CURLOPT_TIMEOUT, the _longer_ time would wrongly be used for the SSL |
| 6455 | connection time-out! |
| 6456 | |
| 6457 | - I merged my hiper patch (http://curl.haxx.se/libcurl/hiper/) into the main |
| 6458 | sources. See the lib/README.multi_socket for implementation story with |
| 6459 | details. Don't expect it to work fully yet. I don't intend to blow any |
| 6460 | whistles or ring any bells about it until I'm more convinced it works at |
| 6461 | least somewhat reliably. |
| 6462 | |
| 6463 | Daniel (7 April 2006) |
| 6464 | - David McCreedy's EBCDIC and TPF changes. Three new curl_easy_setopt() |
| 6465 | options (callbacks) were added: |
| 6466 | |
| 6467 | CONV_FROM_NETWORK_FUNCTION |
| 6468 | CONV_TO_NETWORK_FUNCTION |
| 6469 | CONV_FROM_UTF8_FUNCTION |
| 6470 | |
| 6471 | Daniel (5 April 2006) |
| 6472 | - Michele Bini modified the NTLM code to work for his "weird IIS case" |
| 6473 | (http://curl.haxx.se/mail/lib-2006-02/0154.html) by adding the NTLM hash |
| 6474 | function in addition to the LM one and making some other adjustments in the |
| 6475 | order the different parts of the data block are sent in the Type-2 reply. |
| 6476 | Inspiration for this work was taken from the Firefox NTLM implementation. |
| 6477 | |
| 6478 | I edited the existing 21(!) NTLM test cases to run fine with these news. Due |
| 6479 | to the fact that we now properly include the host name in the Type-2 message |
| 6480 | the test cases now only compare parts of that chunk. |
| 6481 | |
| 6482 | Daniel (28 March 2006) |
| 6483 | - #1451929 (http://curl.haxx.se/bug/view.cgi?id=1451929) detailed a bug that |
| 6484 | occurred when asking libcurl to follow HTTP redirects and the original URL |
| 6485 | had more than one question mark (?). Added test case 276 to verify. |
| 6486 | |
| 6487 | Daniel (27 March 2006) |
| 6488 | - David Byron found a problem multiple -d options when libcurl was built with |
| 6489 | --enable-debug, as then curl used free() on memory allocated both with |
| 6490 | normal malloc() and with libcurl-provided functions, when the latter MUST be |
| 6491 | freed with curl_free() in debug builds. |
| 6492 | |
| 6493 | Daniel (26 March 2006) |
| 6494 | - Tor Arntsen figured out that TFTP was broken on a lot of systems since we |
| 6495 | called bind() with a too big argument in the 3rd parameter and at least |
| 6496 | Tru64, AIX and IRIX seem to be very picky about it. |
| 6497 | |
| 6498 | Daniel (21 March 2006) |
| 6499 | - David McCreedy added CURLINFO_FTP_ENTRY_PATH. |
| 6500 | |
| 6501 | - Xavier Bouchoux made the SSL connection non-blocking for the multi interface |
| 6502 | (when using OpenSSL). |
| 6503 | |
| 6504 | - Tor Arntsen fixed the AIX Toolbox RPM spec |
| 6505 | |
| 6506 | Daniel (20 March 2006) |
| 6507 | - David McCreedy fixed libcurl to no longer ignore AUTH failures and now it |
| 6508 | reacts properly according to the CURLOPT_FTP_SSL setting. |
| 6509 | |
| 6510 | - Dan Fandrich fixed two TFTP problems: Fixed a bug whereby a received file |
| 6511 | whose length was a multiple of 512 bytes could have random garbage |
| 6512 | appended. Also, stop processing TFTP packets which are too short to be |
| 6513 | legal. |
| 6514 | |
| 6515 | - Ilja van Sprundel reported a possible crash in the curl tool when using |
| 6516 | "curl hostwithoutslash -d data -G" |
| 6517 | |
| 6518 | Version 7.15.3 (20 March 2006) |
| 6519 | |
| 6520 | Daniel (20 March 2006) |
| 6521 | - VULNERABILITY reported to us by Ulf Harnhammar. |
| 6522 | |
| 6523 | libcurl uses the given file part of a TFTP URL in a manner that allows a |
| 6524 | malicious user to overflow a heap-based memory buffer due to the lack of |
| 6525 | boundary check. |
| 6526 | |
| 6527 | This overflow happens if you pass in a URL with a TFTP protocol prefix |
| 6528 | ("tftp://"), using a valid host and a path part that is longer than 512 |
| 6529 | bytes. |
| 6530 | |
| 6531 | The affected flaw can be triggered by a redirect, if curl/libcurl is told to |
| 6532 | follow redirects and an HTTP server points the client to a tftp URL with the |
| 6533 | characteristics described above. |
| 6534 | |
| 6535 | The Common Vulnerabilities and Exposures (CVE) project has assigned the name |
| 6536 | CVE-2006-1061 to this issue. |
| 6537 | |
| 6538 | Daniel (16 March 2006) |
| 6539 | - Tor Arntsen provided a RPM spec file for AIX Toolbox, that now is included |
| 6540 | in the release archive. |
| 6541 | |
| 6542 | Daniel (14 March 2006) |
| 6543 | - David McCreedy fixed: |
| 6544 | |
| 6545 | a bad SSL error message when OpenSSL certificates are verified fine. |
| 6546 | |
| 6547 | a missing return code assignment in the FTP code |
| 6548 | |
| 6549 | Daniel (7 March 2006) |
| 6550 | - Markus Koetter filed debian bug report #355715 which identified a problem |
| 6551 | with the multi interface and multi-part formposts. The fix from February |
| 6552 | 22nd could make the Curl_done() function get called twice on the same |
| 6553 | connection and it was not designed for that and thus tried to call free() on |
| 6554 | an already freed memory area! |
| 6555 | |
| 6556 | - Peter Heuchert made sure the CURLFTPSSL_CONTROL setting for CURLOPT_FTP_SSL |
| 6557 | is used properly. |
| 6558 | |
| 6559 | Daniel (6 March 2006) |
| 6560 | - Lots of users on Windows have reported getting the "SSL: couldn't set |
| 6561 | callback" error message so I've now made the setting of that callback not be |
| 6562 | as critical as before. The function is only used for additional loggging/ |
| 6563 | trace anyway so a failure just means slightly less data. It should still be |
| 6564 | able to proceed and connect fine to the server. |
| 6565 | |
| 6566 | Daniel (4 March 2006) |
| 6567 | - Thomas Klausner provided a patch written by Todd Vierling in bug report |
| 6568 | #1442471 that fixes a build problem on Interix. |
| 6569 | |
| 6570 | Daniel (2 March 2006) |
| 6571 | - FTP upload without a file name part in the URL now causes |
| 6572 | curl_easy_perform() to return CURLE_URL_MALFORMAT. Previously it allowed the |
| 6573 | upload but named the file "(nil)" (without the quotes). Test case 524 |
| 6574 | verifies. |
| 6575 | |
| 6576 | - Added a check for getprotobyname in configure so that it'll be used, thanks |
| 6577 | to Gisle Vanem's change the other day. |
| 6578 | |
| 6579 | Daniel (28 February 2006) |
| 6580 | - Dan Fandrich prevented curl from getting stuck in an endless loop in case we |
| 6581 | are out of file handles very early in curl's code where it makes sure that |
| 6582 | 0, 1 and 2 aren't gonna be used by the lib for transfers. |
| 6583 | |
| 6584 | Daniel (27 February 2006) |
| 6585 | - Marty Kuhrt pointed out that there were two VMS-specific files missing in |
| 6586 | the release archive. |
| 6587 | |
| 6588 | Version 7.15.2 (27 February 2006) |
| 6589 | |
| 6590 | Daniel (22 February 2006) |
| 6591 | - Lots of work and analysis by "xbx___" in bug #1431750 |
| 6592 | (http://curl.haxx.se/bug/view.cgi?id=1431750) helped me identify and fix two |
| 6593 | different but related bugs: |
| 6594 | |
| 6595 | 1) Removing an easy handle from a multi handle before the transfer is done |
| 6596 | could leave a connection in the connection cache for that handle that is |
| 6597 | in a state that isn't suitable for re-use. A subsequent re-use could then |
| 6598 | read from a NULL pointer and segfault. |
| 6599 | |
| 6600 | 2) When an easy handle was removed from the multi handle, there could be an |
| 6601 | outstanding c-ares DNS name resolve request. When the response arrived, |
| 6602 | it caused havoc since the connection struct it "belonged" to could've |
| 6603 | been freed already. |
| 6604 | |
| 6605 | Now Curl_done() is called when an easy handle is removed from a multi handle |
| 6606 | pre-maturely (that is, before the transfer was complteted). Curl_done() also |
| 6607 | makes sure to cancel all (if any) outstanding c-ares requests. |
| 6608 | |
| 6609 | Daniel (21 February 2006) |
| 6610 | - Peter Su added support for SOCKS4 proxies. Enable this by setting the proxy |
| 6611 | type to the already provided type CURLPROXY_SOCKS4. |
| 6612 | |
| 6613 | I added a --socks4 option that works like the current --socks5 option but |
| 6614 | instead use the socks4 protocol. |
| 6615 | |
| 6616 | Daniel (20 February 2006) |
| 6617 | - Shmulik Regev fixed an issue with multi-pass authentication and compressed |
| 6618 | content when libcurl didn't honor the internal ignorebody flag. |
| 6619 | |
| 6620 | Daniel (18 February 2006) |
| 6621 | - Ulf Härnhammar fixed a format string (printf style) problem in the Negotiate |
| 6622 | code. It should however not be the cause of any troubles. He also fixed a |
| 6623 | few similar problems in the HTTP test server code. |
| 6624 | |
| 6625 | Daniel (17 February 2006) |
| 6626 | - Shmulik Regev provided a fix for the DNS cache when using short life times, |
| 6627 | as previously it could be holding on to old cached entries longer than |
| 6628 | requested. |
| 6629 | |
| 6630 | Daniel (11 February 2006) |
| 6631 | - Karl Moerder added the CURLOPT_CONNECT_ONLY and CURLINFO_LASTSOCKET options |
| 6632 | that an app can use to let libcurl only connect to a remote host and then |
| 6633 | extract the socket from libcurl. libcurl will then not attempt to do any |
| 6634 | transfer at all after the connect is done. |
| 6635 | |
| 6636 | - Kent Boortz improved the configure check for GnuTLS to properly set LIBS |
| 6637 | instead of LDFLAGS. |
| 6638 | |
| 6639 | Daniel (8 February 2006) |
| 6640 | - Philippe Vaucher provided a brilliant piece of test code that show a problem |
| 6641 | with re-used FTP connections. If the second request on the same connection |
| 6642 | was set not to fetch a "body", libcurl could get confused and consider it an |
| 6643 | attempt to use a dead connection and would go acting mighty strange. |
| 6644 | |
| 6645 | Daniel (2 February 2006) |
| 6646 | - Make --limit-rate [num] mean bytes. It used to be that but it broke in my |
| 6647 | change done in November 2005. |
| 6648 | |
| 6649 | Daniel (30 January 2006) |
| 6650 | - Added CURLOPT_LOCALPORT and CURLOPT_LOCALPORTRANGE to libcurl. Set with the |
| 6651 | curl tool with --local-port. Plain and simply set the range of ports to bind |
| 6652 | the local end of connections to. Implemented on to popular demand. |
| 6653 | |
| 6654 | - Based on an error report by Philippe Vaucher, we no longer count a retried |
| 6655 | connection setup as a follow-redirect. It turns out 1) this fails when a FTP |
| 6656 | connection is re-setup and 2) it does make the max-redirs counter behave |
| 6657 | wrong. |
| 6658 | |
| 6659 | Daniel (24 January 2006) |
| 6660 | - Michal Marek provided a patch for FTP that makes libcurl continue to try |
| 6661 | PASV even after EPSV returned a positive response code, if libcurl failed to |
| 6662 | connect to the port number the EPSV response said. Obviously some people are |
| 6663 | going through protocol-sensitive firewalls (or similar) that don't |
| 6664 | understand EPSV and then they don't allow the second connection unless PASV |
| 6665 | was used. This also called for a minor fix of test case 238. |
| 6666 | |
| 6667 | Daniel (20 January 2006) |
| 6668 | - Duane Cathey was one of our friends who reported that curl -P [IP] |
| 6669 | (CURLOPT_FTPPORT) didn't work for IPv6-enabed curls if the IP wasn't a |
| 6670 | "native" IP while it works fine for IPv6-disabled builds! |
| 6671 | |
| 6672 | In the process of fixing this, I removed the support for LPRT since I can't |
| 6673 | think of many reasons to keep doing it and asking on the mailing list didn't |
| 6674 | reveal anyone else that could either. The code that sends EPRT and PORT is |
| 6675 | now also a lot simpler than before (IMHO). |
| 6676 | |
| 6677 | Daniel (19 January 2006) |
| 6678 | - Jon Turner pointed out that doing -P [hostname] (CURLOPT_FTPPORT) with curl |
| 6679 | (built IPv4-only) didn't work. |
| 6680 | |
| 6681 | Daniel (18 January 2006) |
| 6682 | - As reported in bug #1408742 (http://curl.haxx.se/bug/view.cgi?id=1408742), |
| 6683 | the configure script complained about a missing "missing" script if you ran |
| 6684 | configure within a path whose name included one or more spaces. This is due |
| 6685 | to a flaw in automake (1.9.6 and earlier). I've now worked around it by |
| 6686 | including an "overloaded" version of the AM_MISSING_HAS_RUN script that'll |
| 6687 | be used instead of the one automake ships with. This kludge needs to be |
| 6688 | removed once we get an automake version with this problem corrected. |
| 6689 | Possibly we'll then need to convert this into a kludge depending on what |
| 6690 | automake version that is used and that is gonna be painful and I don't even |
| 6691 | want to think about that now...! |
| 6692 | |
| 6693 | Daniel (17 January 2006) |
| 6694 | - David Shaw: Here is the latest libcurl.m4 autoconf tests. It is updated with |
| 6695 | the latest features and protocols that libcurl supports and has a minor fix |
| 6696 | to better deal with the obscure case where someone has more than one libcurl |
| 6697 | installed at the same time. |
| 6698 | |
| 6699 | Daniel (16 January 2006) |
| 6700 | - David Shaw finally removed all traces of Gopher and we are now officially |
| 6701 | not supporting it. It hasn't been functioning for years anyway, so this is |
| 6702 | just finally stating what already was true. And a cleanup at the same time. |
| 6703 | |
| 6704 | - Bryan Henderson turned the 'initialized' variable for curl_global_init() |
| 6705 | into a counter, and thus you can now do multiple curl_global_init() and you |
| 6706 | are then supposed to do the same amount of calls to curl_global_cleanup(). |
| 6707 | Bryan has also updated the docs accordingly. |
| 6708 | |
| 6709 | Daniel (13 January 2006) |
| 6710 | - Andrew Benham fixed a race condition in the test suite that could cause the |
| 6711 | test script to kill all processes in the current process group! |
| 6712 | |
| 6713 | Daniel (12 January 2006) |
| 6714 | - Michael Jahn: |
| 6715 | |
| 6716 | Fixed FTP_SKIP_PASV_IP and FTP_USE_EPSV to "do right" when used on FTP thru |
| 6717 | HTTP proxy. |
| 6718 | |
| 6719 | Fixed PROXYTUNNEL to work fine when you do ftp through a proxy. It would |
| 6720 | previously overwrite internal memory and cause unpredicted behaviour! |
| 6721 | |
| 6722 | Daniel (11 January 2006) |
| 6723 | - I decided to document the "secret option" here now, as I've received *NO* |
| 6724 | feedback at all on my mailing list requests from November 2005: |
| 6725 | |
| 6726 | I'm looking for feedback and comments. I added some experimental code the |
| 6727 | other day, that allows a libcurl user to select what method libcurl should |
| 6728 | use to reach a file on a FTP(S) server. |
| 6729 | |
| 6730 | This functionality is available in CVS code and in recent daily snapshots. |
| 6731 | |
| 6732 | Let me explain... |
| 6733 | |
| 6734 | The current name for the option is CURLOPT_FTP_FILEMETHOD (--ftp-method for |
| 6735 | the command line tool) and you set it to a long (there are currenly no |
| 6736 | defines for the argument values, just plain numericals). You can set three |
| 6737 | different "methods" that do this: |
| 6738 | |
| 6739 | 1 multicwd - like today, curl will do a single CWD operation for each path |
| 6740 | part in the given URL. For deep hierarchies this means very many |
| 6741 | commands. This is how RFC1738 says it should be done. This is the |
| 6742 | default. |
| 6743 | |
| 6744 | 2 nocwd - no CWD at all is done, curl will do SIZE, RETR, STOR etc and give |
| 6745 | a full path to the server. |
| 6746 | |
| 6747 | 3 singlecwd - make one CWD with the full target directory and then operate |
| 6748 | on the file "normally". |
| 6749 | |
| 6750 | (With the command line tool you do --ftp-method [METHOD], where [METHOD] is |
| 6751 | one of "multicwd", "nocwd" or "singlecwd".) |
| 6752 | |
| 6753 | What feedback I'm interested in: |
| 6754 | |
| 6755 | 1 - Do they work at all? Do you find servers where one of these don't work? |
| 6756 | |
| 6757 | 2 - What would proper names for the option and its arguments be, if we |
| 6758 | consider this feature good enough to get included and documented in |
| 6759 | upcoming releases? |
| 6760 | |
| 6761 | 3 - Should we make libcurl able to "walk through" these options in case of |
| 6762 | (path related) failures, or should it fail and let the user redo any |
| 6763 | possible retries? |
| 6764 | |
| 6765 | (This option is not documented in any man page just yet since I'm not sure |
| 6766 | these names will be used or if the functionality will end up exactly like |
| 6767 | this. And for the same reasons we have no test cases for these yet.) |
| 6768 | |
| 6769 | Daniel (10 January 2006) |
| 6770 | - When using a bad path over FTP, as in when libcurl couldn't CWD into all |
| 6771 | given subdirs, libcurl would still "remember" the full path as if it is the |
| 6772 | current directory libcurl is in so that the next curl_easy_perform() would |
| 6773 | get really confused if it tried the same path again - as it would not issue |
| 6774 | any CWD commands at all, assuming it is already in the "proper" dir. |
| 6775 | |
| 6776 | Starting now, a failed CWD command sets a flag that prevents the path to be |
| 6777 | "remembered" after returning. |
| 6778 | |
| 6779 | Daniel (7 January 2006) |
| 6780 | - Michael Jahn fixed so that the second CONNECT when doing FTP over a HTTP |
| 6781 | proxy actually used a new connection and not sent the second request on the |
| 6782 | first socket! |
| 6783 | |
| 6784 | Daniel (6 January 2006) |
| 6785 | - Alexander Lazic made the buildconf run the buildconf in the ares dir if that |
| 6786 | is present instead of trying to mimic that script in curl's buildconf |
| 6787 | script. |
| 6788 | |
| 6789 | Daniel (3 January 2006) |
| 6790 | - Andres Garcia made the TFTP test server build with mingw. |
| 6791 | Daniel (16 December 2005) |
| 6792 | - Jean Jacques Drouin pointed out that you could only have a user name or |
| 6793 | password of 127 bytes or less embedded in a URL, where actually the code |
| 6794 | uses a 255 byte buffer for it! Modified now to use the full buffer size. |
| 6795 | |
| 6796 | Daniel (12 December 2005) |
| 6797 | - Dov Murik corrected the HTTP_ONLY define to disable the TFTP support properly |
| 6798 | |
| 6799 | Version 7.15.1 (7 December 2005) |
| 6800 | |
| 6801 | Daniel (6 December 2005) |
| 6802 | - Full text here: http://curl.haxx.se/docs/adv_20051207.html Pointed out by |
| 6803 | Stefan Esser. |
| 6804 | |
| 6805 | VULNERABILITY |
| 6806 | |
| 6807 | libcurl's URL parser function can overflow a malloced buffer in two ways, if |
| 6808 | given a too long URL. |
| 6809 | |
| 6810 | These overflows happen if you |
| 6811 | |
| 6812 | 1 - pass in a URL with no protocol (like "http://") prefix, using no slash |
| 6813 | and the string is 256 bytes or longer. This leads to a single zero byte |
| 6814 | overflow of the malloced buffer. |
| 6815 | |
| 6816 | 2 - pass in a URL with only a question mark as separator (no slash) between |
| 6817 | the host and the query part of the URL. This leads to a single zero byte |
| 6818 | overflow of the malloced buffer. |
| 6819 | |
| 6820 | Both overflows can be made with the same input string, leading to two single |
| 6821 | zero byte overwrites. |
| 6822 | |
| 6823 | The affected flaw cannot be triggered by a redirect, but the long URL must |
| 6824 | be passed in "directly" to libcurl. It makes this a "local" problem. Of |
| 6825 | course, lots of programs may still pass in user-provided URLs to libcurl |
| 6826 | without doing much syntax checking of their own, allowing a user to exploit |
| 6827 | this vulnerability. |
| 6828 | |
| 6829 | There is no known exploit at the time of this writing. |
| 6830 | |
| 6831 | |
| 6832 | Daniel (2 December 2005) |
| 6833 | - Jamie Newton pointed out that libcurl's file:// code would close() a zero |
| 6834 | file descriptor if given a non-existing file. |
| 6835 | |
| 6836 | Daniel (24 November 2005) |
| 6837 | - Doug Kaufman provided a set of patches to make curl build fine on DJGPP |
| 6838 | again using configure. |
| 6839 | |
| 6840 | - Yang Tse provided a whole series of patches to clear up compiler warnings on |
| 6841 | MSVC 6. |
| 6842 | |
| 6843 | Daniel (17 November 2005) |
| 6844 | - I extended a patch from David Shaw to make libcurl _always_ provide an error |
| 6845 | string in the given error buffer to address the flaw mention on 21 sep 2005. |
| 6846 | |
| 6847 | Daniel (16 November 2005) |
| 6848 | - Applied Albert Chin's patch that makes the libcurl.pc pkgconfig file get |
| 6849 | installed on 'make install' time. |
| 6850 | |
| 6851 | Daniel (14 November 2005) |
| 6852 | - Quagmire reported that he needed to raise a NTLM buffer for SSPI to work |
| 6853 | properly for a case, and so we did. We raised it even for non-SSPI builds |
| 6854 | but it should not do any harm. http://curl.haxx.se/bug/view.cgi?id=1356715 |
| 6855 | |
| 6856 | - Jan Kunder's debian bug report |
| 6857 | http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=338680 identified a weird |
| 6858 | error message for when you try to upload a file and the requested directory |
| 6859 | doesn't exist on the target server. |
| 6860 | |
| 6861 | - Yang Tse fixed compiler warnings in lib/ssluse.c with OpenSSL 0.9.8 and in |
| 6862 | lib/memdebug.h that showed up in his msvc builds. |
| 6863 | |
| 6864 | Daniel (13 November 2005) |
| 6865 | - Debian bug report 338681 by Jan Kunder: make curl better detect and report |
| 6866 | bad limit-rate units: |
| 6867 | http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=338681 Now curl will return |
| 6868 | error if a bad unit is used. |
| 6869 | |
| 6870 | - Thanks to this nice summary of poll() implementations: |
| 6871 | http://www.greenend.org.uk/rjk/2001/06/poll.html and further tests by Eugene |
| 6872 | Kotlyarov, we now know that cygwin's poll returns only POLLHUP on remote |
| 6873 | connectin closure so we check for that case (too) and re-enable poll for |
| 6874 | cygwin builds. |
| 6875 | |
| 6876 | Daniel (12 November 2005) |
| 6877 | - Eugene Kotlyarov found out that cygwin's poll() function isn't doing things |
| 6878 | right: http://curl.haxx.se/mail/archive-2005-11/0045.html so we now disable |
| 6879 | poll() and use select() on cygwin too (we already do the same choice on Mac |
| 6880 | OS X) |
| 6881 | |
| 6882 | - Dima Barsky patched problem #1348930: the GnuTLS code completely ignored |
| 6883 | client certificates! (http://curl.haxx.se/bug/view.cgi?id=1348930). |
| 6884 | |
| 6885 | Daniel (10 November 2005) |
| 6886 | - David Lang fixed IPv6 support for TFTP! |
| 6887 | |
| 6888 | - Introducing range stepping to the curl globbing support. Now you can specify |
| 6889 | step counter by adding :[num] within the brackets when specifying a range: |
| 6890 | |
| 6891 | [1-100:10] |
| 6892 | [a-z:2] |
| 6893 | |
| 6894 | If no step counter is set, it defaults to 1 as before: |
| 6895 | |
| 6896 | [1-100] |
| 6897 | [d-h] |
| 6898 | |
| 6899 | Daniel (8 November 2005) |
| 6900 | - Removed the use of AI_CANONNAME in the IPv6-enabled resolver functions since |
| 6901 | we really have no use for reverse lookups of the address. |
| 6902 | |
| 6903 | I truly hope these are the last reverse lookups we had lingering in the |
| 6904 | code! |
| 6905 | |
| 6906 | - Dmitry Bartsevich discovered some issues in compatibilty of SSPI-enabled |
| 6907 | version of libcurl with different Windows versions. Current version of |
| 6908 | libcurl imports SSPI functions from secur32.dll. However, under Windows NT |
| 6909 | 4.0 these functions are located in security.dll, under Windows 9x - in |
| 6910 | secur32.dll and Windows 2000 and XP contains both these DLLs (security.dll |
| 6911 | just forwards calls to secur32.dll). |
| 6912 | |
| 6913 | Dmitry's patch loads proper library dynamically depending on Windows |
| 6914 | version. Function InitSecurityInterface() is used to obtain pointers to all |
| 6915 | of SSPI function in one structure. |
| 6916 | |
| 6917 | Daniel (31 October 2005) |
| 6918 | - Vilmos Nebehaj improved libcurl's LDAP abilities: |
| 6919 | |
| 6920 | The LDAP code in libcurl can't handle LDAP servers of LDAPv3 nor binary |
| 6921 | attributes in LDAP objects. So, I made a quick patch to address these |
| 6922 | problems. |
| 6923 | |
| 6924 | The solution is simple: if we connect to an LDAP server, first try LDAPv3 |
| 6925 | (which is the preferred protocol as of now) and then fall back to LDAPv2. |
| 6926 | In case of binary attributes, we first convert them to base64, just like the |
| 6927 | openldap client does. It uses ldap_get_values_len() instead of |
| 6928 | ldap_get_values() to be able to retrieve binary attributes correctly. I |
| 6929 | defined the necessary LDAP macros in lib/ldap.c to be able to compile |
| 6930 | libcurl without the presence of libldap |
| 6931 | |
| 6932 | Daniel (27 October 2005) |
| 6933 | - Nis Jorgensen filed bug report #1338648 |
| 6934 | (http://curl.haxx.se/bug/view.cgi?id=1338648) which really is more of a |
| 6935 | feature request, but anyway. It pointed out that --max-redirs did not allow |
| 6936 | it to be set to 0, which then would return an error code on the first |
| 6937 | Location: found. Based on Nis' patch, now libcurl supports CURLOPT_MAXREDIRS |
| 6938 | set to 0, or -1 for infinity. Added test case 274 to verify. |
| 6939 | |
| 6940 | - tommink[at]post.pl reported in bug report #1337723 |
| 6941 | (http://curl.haxx.se/bug/view.cgi?id=1337723) that curl could not upload |
| 6942 | binary data from stdin on Windows if the data contained control-Z (hex 1a) |
| 6943 | since that is treated as end-of-file when read in text mode. Gisle Vanem |
| 6944 | pointed out the fix, and I made both -T and --data-binary take advantage of |
| 6945 | it. |
| 6946 | |
| 6947 | - Jaz Fresh pointed out that if you used "-r [number]" as was wrongly described |
| 6948 | in the man page, curl would send an invalid HTTP Range: header. The correct |
| 6949 | way would be to use "-r [number]-" or even "-r -[number]". Starting now, |
| 6950 | curl will warn if this is discovered, and automatically append a dash to the |
| 6951 | range before passing it to libcurl. |
| 6952 | |
| 6953 | Daniel (25 October 2005) |
| 6954 | - Amol Pattekar reported a bug with great detail and a fine example in bug |
| 6955 | #1326306 (http://curl.haxx.se/bug/view.cgi?id=1326306). When using the multi |
| 6956 | interface and connecting to a host with multiple IP addresses, and one of |
| 6957 | the addresses fails to connect (the server must exist and respond, just not |
| 6958 | accept connections) libcurl leaks a socket descriptor. Thanks to the fine |
| 6959 | report, I could find and fix this. |
| 6960 | |
| 6961 | Daniel (22 October 2005) |
| 6962 | - Dima Barsky reported a problem with GnuTLS-enabled libcurl in bug report |
| 6963 | #1334338 (http://curl.haxx.se/bug/view.cgi?id=1334338). When reading an SSL |
| 6964 | stream from a server and the server requests a "rehandshake", the current |
| 6965 | code simply returns this as an error. I have no good way to test this, but |
| 6966 | I've added a crude attempt of dealing with this situation slightly better - |
| 6967 | it makes a blocking handshake if this happens. Done like this because fixing |
| 6968 | this the "proper" way (that would handshake asynchronously) will require |
| 6969 | quite some work and I really need a good way to test this to do such a |
| 6970 | change. |
| 6971 | |
| 6972 | Daniel (21 October 2005) |
| 6973 | - "Ofer" reported a problem when libcurl re-used a connection and failed to do |
| 6974 | it, it could then accidentally actually crash. Presumably, this concerns FTP |
| 6975 | connections. http://curl.haxx.se/bug/view.cgi?id=1330310 |
| 6976 | |
| 6977 | - Temprimus improved the MSVC makefile so that the static debug SSL libs are |
| 6978 | linked to the executable and not to the libcurld.lib |
| 6979 | http://curl.haxx.se/bug/view.cgi?id=1326676 |
| 6980 | |
| 6981 | - Bradford Bruce made the windows resolver code properly return |
| 6982 | CURLE_COULDNT_RESOLVE_PROXY and CURLE_COULDNT_RESOLVE_HOST on resolving |
| 6983 | errors (as documented). |
| 6984 | |
| 6985 | Daniel (20 October 2005) |
| 6986 | - Dave Dribin made libcurl understand and handle cases when the server |
| 6987 | (wrongly) sends *two* WWW-Authenticate headers for Digest. While this should |
| 6988 | never happen in a sane world, libcurl previously got into an infinite loop |
| 6989 | when this occurred. Dave added test 273 to verify this. |
| 6990 | |
| 6991 | - Temprimus improved the MSVC makefile: "makes a build option available so if |
| 6992 | you set rtlibcfg=static for the make, then it would build with /MT. The |
| 6993 | default behaviour is /MD (the original)." |
| 6994 | http://curl.haxx.se/bug/view.cgi?id=1326665 |
| 6995 | |
| 6996 | Daniel (14 October 2005) |
| 6997 | - Reverted the LIBCURL_VERSION_NUM change from October 6. As Dave Dribin |
| 6998 | reported, the define is used by the configure script and is assumed to use |
| 6999 | the 0xYYXXZZ format. This made "curl-config --vernum" fail in the 7.15.0 |
| 7000 | release version. |
| 7001 | |
| 7002 | Version 7.15.0 (13 October 2005) |
| 7003 | |
| 7004 | Daniel (12 October 2005) |
| 7005 | - Michael Sutton of iDEFENSE reported and I fixed a securitfy flaw in the NTLM |
| 7006 | code that would overflow a buffer if given a too long user name or domain |
| 7007 | name. This would happen if you enable NTLM authentication and either |
| 7008 | |
| 7009 | A - pass in a user name and domain name to libcurl that together are longer |
| 7010 | than 192 bytes |
| 7011 | |
| 7012 | B - allow (lib)curl to follow HTTP "redirects" (Location: and the |
| 7013 | appropriate HTTP 30x response code) and the new URL contains a URL with |
| 7014 | a user name and domain name that together are longer than 192 bytes |
| 7015 | |
| 7016 | See http://curl.haxx.se/docs/security.html for further details and updates |
| 7017 | |
| 7018 | Daniel (5 October 2005) |
| 7019 | - Darryl House reported a problem with using -z to download files from FTP. |
| 7020 | It turned out that if the given time stamp was exact the same as the remote |
| 7021 | time stamp, the file would still wrongly be downloaded. Added test case 272 |
| 7022 | to verify. |
| 7023 | |
| 7024 | Daniel (4 October 2005) |
| 7025 | - Domenico Andreoli fixed a man page malformat and removed odd (0xa0) bytes |
| 7026 | from the configure script. |
| 7027 | |
| 7028 | - Michael Wallner reported that the date parser had wrong offset stored for |
| 7029 | the MEST and CEST time zones. |
| 7030 | |
| 7031 | Daniel (27 September 2005) |
| 7032 | - David Yan filed bug #1299181 (http://curl.haxx.se/bug/view.cgi?id=1299181) |
| 7033 | that identified a silly problem with Content-Range: headers with the 'bytes' |
| 7034 | keyword written in a different case than all lowercase! It would cause a |
| 7035 | segfault! |
| 7036 | |
| 7037 | - TJ Saunders of the proftpd project identified and pointed out problems with |
| 7038 | the modified FTPS negotiation change of August 19 2005. Thus, we revert the |
| 7039 | change back to pre-7.14.1 status. |
| 7040 | |
| 7041 | Daniel (21 September 2005) |
| 7042 | - Fixed "cut off" sentence in the libcurl-tutorial man page: |
| 7043 | http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=329305 |
| 7044 | |
| 7045 | - Clarified in the curl_easy_setopt man page what the default |
| 7046 | CURLOPT_WRITEFUNCTION and CURLOPT_WRITEDATA mean: |
| 7047 | http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=329311 |
| 7048 | |
| 7049 | - Clarified in the curl_easy_setopt man page that CURLOPT_ERRORBUFFER |
| 7050 | sometimes doesn't fill in the buffer even though it is supposed to: |
| 7051 | http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=329313 |
| 7052 | |
| 7053 | - When CURLE_URL_MALFORMAT is returned due to a missing URL, it now has an |
| 7054 | error string set. |
| 7055 | |
| 7056 | Daniel (19 September 2005) |
| 7057 | - Dmitry Bartsevich made the SSPI support work on Windows 9x as well. |
| 7058 | |
| 7059 | Daniel (15 September 2005) |
| 7060 | - Added a TFTP server to the test suite and made the test suite capable of |
| 7061 | using it. |
| 7062 | |
| 7063 | Daniel (7 September 2005) |
| 7064 | - Ben Madsen's detailed reports that funnily enough only occurred with certain |
| 7065 | glibc versions turned out to be curl using an already closed file handle |
| 7066 | during certain conditions (like when saving FTP server "headers"). |
| 7067 | |
| 7068 | - Scott Davis helped me track down a problem in the test HTTP server that made |
| 7069 | test case 56 wrongly fail at times. It turned out it was due to the server |
| 7070 | finding the end of a chunked-encoded POST too early. |
| 7071 | |
| 7072 | Daniel (6 September 2005) |
| 7073 | - Now curl warns if an unknown variable is used in the -w/--writeout argument. |
| 7074 | |
| 7075 | Daniel (4 September 2005) |
| 7076 | - I applied Nicolas François' man page patch he posted to the Debian bug |
| 7077 | tracker. It corrected two lines that started with apostrophes, which isn't |
| 7078 | legal nroff format. http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=326511 |
| 7079 | |
| 7080 | - Added --ftp-skip-pasv-ip to the command line tool, that sets the new |
| 7081 | CURLOPT_FTP_SKIP_PASV_IP option. It makes libcurl re-use the control |
| 7082 | connection's IP address when setting up the data connection instead of |
| 7083 | extractting the IP address from the PASV response. It has turned out this |
| 7084 | feature is frequently needed by people to circumvent silly servers and silly |
| 7085 | firewalls, especially when FTPS is used and the PASV command-response is |
| 7086 | sent encrtyped. |
| 7087 | |
| 7088 | Sponsored by CU*Answers |
| 7089 | |
| 7090 | Daniel (1 September 2005) |
| 7091 | - John Kelly added TFTP support to libcurl. A bunch of new error codes was |
| 7092 | added. TODO: add them to docs. add TFTP server to test suite. add TFTP to |
| 7093 | list of protocols whereever those are mentioned. |
| 7094 | |
| 7095 | Version 7.14.1 (1 September 2005) |
| 7096 | |
| 7097 | Daniel (29 August 2005) |
| 7098 | - Kevin Lussier pointed out a problem with curllib.dsp and how to fix it. |
| 7099 | |
| 7100 | - Igor Polyakov fixed a rather nasty problem with the threaded name resolver |
| 7101 | for Windows, that could lead to an Access Violation when the multi interface |
| 7102 | was used due to an issue with how the resolver thread was and was not |
| 7103 | terminated. |
| 7104 | |
| 7105 | - Simon Josefsson brought a patch that allows curl to get built to use GNU GSS |
| 7106 | instead of MIT/Heimdal for GSS capabilities. |
| 7107 | |
| 7108 | Daniel (24 August 2005) |
| 7109 | - Toby Peterson added CURLOPT_IGNORE_CONTENT_LENGTH to the library, accessible |
| 7110 | from the command line tool with --ignore-content-length. This will make it |
| 7111 | easier to download files from Apache 1.x (and similar) servers that are |
| 7112 | still having problems serving files larger than 2 or 4 GB. When this option |
| 7113 | is enabled, curl will simply have to wait for the server to close the |
| 7114 | connection to signal end of transfer. I wrote test case 269 that runs a |
| 7115 | simple test to verify that this works. |
| 7116 | |
| 7117 | - (Trying hard to exclude emotions now.) valgrind version 3 suddenly renamed |
| 7118 | the --logfile command line option to --log-file, and thus the test script |
| 7119 | valgrind autodetection now has yet another version check to do and then it |
| 7120 | alters the valgrind command line accordingly. |
| 7121 | |
| 7122 | - Fixed CA cert verification using GnuTLS with the default bundle, which |
| 7123 | previously failed due to GnuTLS not allowing x509 v1 CA certs by default. |
| 7124 | Ralph Mitchell reported. |
| 7125 | |
| 7126 | Daniel (19 August 2005) |
| 7127 | - Norbert Novotny had problems with FTPS and he helped me work out a patch |
| 7128 | that made curl run fine in his end. The key was to make sure we do the |
| 7129 | SSL/TLS negotiation immediately after the TCP connect is done and not after |
| 7130 | a few other commands have been sent like we did previously. I don't consider |
| 7131 | this change necessary to obey the standards, I think this server is pickier |
| 7132 | than what the specs allow it to be, but I can't see how this modified |
| 7133 | libcurl code can add any problems to those who are interpreting the |
| 7134 | standards more liberally. |
| 7135 | |
| 7136 | Daniel (17 August 2005) |
| 7137 | - Jeff Pohlmeyer found out that if you ask libcurl to load a cookiefile (with |
| 7138 | CURLOPT_COOKIEFILE), add a cookie (with CURLOPT_COOKIELIST), tell it to |
| 7139 | write the result to a given cookie jar and then never actually call |
| 7140 | curl_easy_perform() - the given file(s) to read was never read but the |
| 7141 | output file was written and thus it caused a "funny" result. |
| 7142 | |
| 7143 | - While doing some tests for the bug above, I noticed that Firefox generates |
| 7144 | large numbers (for the expire time) in the cookies.txt file and libcurl |
| 7145 | didn't treat them properly. Now it does. |
| 7146 | |
| 7147 | Daniel (15 August 2005) |
| 7148 | - Added more verbose "warning" messages to the curl client for cases where it |
| 7149 | fails to open/read files etc to help users diagnose why it doesn't do what |
| 7150 | you'd expect it to. Converted lots of old messages to use the new generic |
| 7151 | function I wrote for this purpose. |
| 7152 | |
| 7153 | Daniel (13 August 2005) |
| 7154 | - James Bursa identified a libcurl HTTP bug and a good way to repeat it. If a |
| 7155 | site responds with bad HTTP response that doesn't contain any header at all, |
| 7156 | only a response body, and the write callback returns 0 to abort the |
| 7157 | transfer, it didn't have any real effect but the write callback would be |
| 7158 | called once more anyway. |
| 7159 | |
| 7160 | Daniel (12 August 2005) |
| 7161 | - Based on Richard Clayton's reports, I found out that using curl -d @filename |
| 7162 | when 'filename' was not possible to access made curl use a GET request |
| 7163 | instead. |
| 7164 | |
| 7165 | - The time condition illegal syntax warning is now inhibited if -s is used. |
| 7166 | |
| 7167 | Daniel (10 August 2005) |
| 7168 | - Mario Schroeder found out that one of the debug callbacks calls that regards |
| 7169 | SSL data with the CURLINFO_TEXT type claimed that the data was one byte |
| 7170 | larger than it actually is, thus falsely telling the application that the |
| 7171 | terminating zero was part of the data. |
| 7172 | |
| 7173 | Daniel (9 August 2005) |
| 7174 | - Christopher R. Palmer fixed the offsets used for date parsings when the time |
| 7175 | zone name of a daylight savings time was used. For example, PDT vs PDS. This |
| 7176 | flaw was introduced with the new date parser (11 sep 2004 - 7.12.2). |
| 7177 | Fortunately, no web server or cookie string etc should be using such time |
| 7178 | zone names thus limiting the effect of this bug. |
| 7179 | |
| 7180 | Daniel (8 August 2005) |
| 7181 | - Jon Grubbs filed bug report #1249962 |
| 7182 | (http://curl.haxx.se/bug/view.cgi?id=1249962) which identified a problem |
| 7183 | with NTLM on a HTTP proxy if an FTP URL was given. libcurl now properly |
| 7184 | switches to pure HTTP internally when an HTTP proxy is used, even for FTP |
| 7185 | URLs. The problem would also occur with other multi-pass auth methods. |
| 7186 | |
| 7187 | Daniel (7 August 2005) |
| 7188 | - When curl is built with GnuTLS, curl-config didn't include "SSL" when |
| 7189 | --features was used. |
| 7190 | |
| 7191 | Daniel (28 July 2005) |
| 7192 | - If any of the options CURLOPT_HTTPGET, CURLOPT_POST and CURLOPT_HTTPPOST is |
| 7193 | set to 1, CURLOPT_NOBODY will now automatically be set to 0. |
| 7194 | |
| 7195 | Daniel (27 July 2005) |
| 7196 | - Dan Fandrich changes over the last week: fixed numerous minor configure |
| 7197 | option parsing flaws: --without-gnutls, --without-spnego --without-gssapi |
| 7198 | and --without-krb4. Spellfixed several error messages. |
| 7199 | |
| 7200 | - Peteris Krumins added CURLOPT_COOKIELIST and CURLINFO_COOKIELIST, which is a |
| 7201 | simple interface to extracting and setting cookies in libcurl's internal |
| 7202 | "cookie jar". See the new cookie_interface.c example code. |
| 7203 | |
| 7204 | Daniel (13 July 2005) |
| 7205 | - Diego Casorran provided patches to make curl build fine on Amiga again. |
| 7206 | |
| 7207 | Daniel (12 July 2005) |
| 7208 | - Adrian Schuur added trailer support in the chunked encoding stream. The |
| 7209 | trailer is then sent to the normal header callback/stream. I wrote up test |
| 7210 | case 266 to verify the basic functionality. Do note that test case 34 |
| 7211 | contains a flawed chunked encoding stream that still works the same. |
| 7212 | |
| 7213 | Daniel (5 July 2005) |
| 7214 | - Gisle Vanem came up with a nice little work-around for bug #1230118 |
| 7215 | (http://curl.haxx.se/bug/view.cgi?id=1230118). It seems the Windows (MSVC) |
| 7216 | libc time functions may return data one hour off if TZ is not set and |
| 7217 | automatic DST adjustment is enabled. This made curl_getdate() return wrong |
| 7218 | value, and it also concerned internal cookie expirations etc. |
| 7219 | |
| 7220 | Daniel (4 July 2005) |
| 7221 | - Andrew Bushnell provided enough info for me to tell that we badly needed to |
| 7222 | fix the CONNECT authentication code with multi-pass auth methods (such as |
| 7223 | NTLM) as it didn't previously properly ignore response-bodies - in fact it |
| 7224 | stopped reading after all response headers had been received. This could |
| 7225 | lead to libcurl sending the next request and reading the body from the first |
| 7226 | request as response to the second request. (I also renamed the function, |
| 7227 | which wasn't strictly necessary but...) |
| 7228 | |
| 7229 | The best fix would to once and for all make the CONNECT code use the |
| 7230 | ordinary request sending/receiving code, treating it as any ordinary request |
| 7231 | instead of the special-purpose function we have now. It should make it |
| 7232 | better for multi-interface too. And possibly lead to less code... |
| 7233 | |
| 7234 | Added test case 265 for this. It doesn't work as a _really_ good test case |
| 7235 | since the test proxy is too stupid, but the test case helps when running the |
| 7236 | debugger to verify. |
| 7237 | |
| 7238 | Daniel (30 June 2005) |
| 7239 | - Dan Fandrich improved the configure script's ability to figure out what kind |
| 7240 | of strerror_r() API that is used when cross-compiling. If __GLIB__ is |
| 7241 | defined, it assumes the glibc API. If not, it issues a notice as before that |
| 7242 | the user needs to manually edit lib/config.h for this. |
| 7243 | |
| 7244 | Daniel (23 June 2005) |
| 7245 | - David Shaw's fix that unifies proxy string treatment so that a proxy given |
| 7246 | with CURLOPT_PROXY can use a http:// prefix and user + password. The user |
| 7247 | and password fields are now also URL decoded properly. Test case 264 added |
| 7248 | to verify. |
| 7249 | |
| 7250 | Daniel (22 June 2005) |
| 7251 | - David Shaw updated libcurl.m4 |
| 7252 | |
| 7253 | Daniel (14 June 2005) |
| 7254 | - Gisle Vanem fixed a potential thread handle leak. Bug report #1216500 |
| 7255 | (http://curl.haxx.se/bug/view.cgi?id=1216500). Comment in |
| 7256 | http://curl.haxx.se/mail/lib-2005-06/0059.html |
| 7257 | |
| 7258 | Daniel (13 June 2005) |
| 7259 | - Made buildconf run libtoolize in the ares dir too (inspired by Tupone's |
| 7260 | reverted patch). |
| 7261 | |
| 7262 | Daniel (9 June 2005) |
| 7263 | - Incorporated Tupone's findtool fix in buildconf (slightly edited) |
| 7264 | |
| 7265 | - Incorporated Tupone's head -n fix in buildconf. |
| 7266 | |
| 7267 | Daniel (8 June 2005) |
| 7268 | - Reverted Tupone's patch again, it broke numerous autobuilds. Let's apply it |
| 7269 | in pieces, one by one and see what we need to adjust to work all over. |
| 7270 | |
| 7271 | Daniel (6 June 2005) |
| 7272 | - Tupone Alfredo fixed three problems in buildconf: |
| 7273 | |
| 7274 | 1) findtool does look per tool in PATH and think ./perl is the perl |
| 7275 | executable, while is just a local directory (I have . in the PATH) |
| 7276 | |
| 7277 | 2) I got several warning for head -1 deprecated in favour of head -n 1 |
| 7278 | |
| 7279 | 3) ares directory is missing some file (missing is missing :-) ) because |
| 7280 | automake and friends is not run. |
| 7281 | |
| 7282 | Daniel (3 June 2005) |
| 7283 | - Added docs/libcurl/getinfo-times, based on feedback from 'Edi': |
| 7284 | http://curl.haxx.se/feedback/display.cgi?id=11178325798299&support=yes |
| 7285 | |
| 7286 | - Andres Garcia provided yet another text mode patch for several test cases so |
| 7287 | that they do text comparisions better on Windows (newline-wise). |
| 7288 | |
| 7289 | Daniel (1 June 2005) |
| 7290 | - The configure check for c-ares now adds the cares lib before the other libs, |
| 7291 | to make it build fine with mingw. Inspired by Tupone Alfredo's bug report |
| 7292 | and patch: http://curl.haxx.se/bug/view.cgi?id=1212940 |
| 7293 | |
| 7294 | Daniel (31 May 2005) |
| 7295 | - Todd Kulesza reported a flaw in the proxy option, since a numerical IPv6 |
| 7296 | address was not possible to use. It is now, but requires it written |
| 7297 | RFC2732-style, within brackets - which incidently is how you enter numerical |
| 7298 | IPv6 addresses in URLs. Test case 263 added to verify. |
| 7299 | |
| 7300 | Daniel (30 May 2005) |
| 7301 | - Eric Cooper reported about a problem with HTTP servers that responds with |
| 7302 | binary zeroes within the headers. They confused libcurl to do wrong so the |
| 7303 | downloaded headers become incomplete. The fix is now verified with test case |
| 7304 | 262. http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=310948 |
| 7305 | |
| 7306 | Daniel (25 May 2005) |
| 7307 | - Fixed problems with the test suite, and in particular the FTP test cases |
| 7308 | since it previously was failing every now and then in a nonsense manner. |
| 7309 | |
| 7310 | - --trace-time now outputs the full microsecond, all 6 digits. |
| 7311 | |
| 7312 | Daniel (24 May 2005) |
| 7313 | - Andres Garcia provided a text mode patch for several test cases so that they |
| 7314 | do text comparisions better on Windows (newline-wise). |
| 7315 | |
| 7316 | - Any 2xx response (and not just 200) is now considered a fine response to |
| 7317 | TYPE, as some servers obviously sends a 226 there. Added test case 261 to |
| 7318 | verify. Based on a question/report by Georg Wicherski. |
| 7319 | |
| 7320 | Daniel (20 May 2005) |
| 7321 | - Improved runtests.pl to allow stdout tests to be mode=text as well, just |
| 7322 | as file comparisons already supports. Added this info to the FILEFORMAT |
| 7323 | docs. |
| 7324 | |
| 7325 | Daniel (18 May 2005) |
| 7326 | - John McGowan identified a problem in bug report #1204435 |
| 7327 | (http://curl.haxx.se/bug/view.cgi?id=1204435) with malformed URLs like |
| 7328 | "http://somehost?data" as it added a slash too much in the request ("GET |
| 7329 | /?data/"...). Added test case 260 to verify. |
| 7330 | |
| 7331 | - The configure check for strerror_r() failed to detect the proper API at |
| 7332 | times, like on HP-UX 10.20. Then lib/strerror.c badly assumed the glibc |
| 7333 | version if the posix define wasn't set (since it _had_ found a strerror_r). |
| 7334 | |
| 7335 | Daniel (16 May 2005) |
| 7336 | - The gmtime_r() function in HP-UX 10.20 is broken. About 13 test cases fail |
| 7337 | due to this. There's now a configure check that attempts to detect the bad |
| 7338 | function and not use it on such systems. |
| 7339 | |
| 7340 | Version 7.14.0 (16 May 2005) |
| 7341 | |
| 7342 | Daniel (13 May 2005) |
| 7343 | - Grigory Entin reported that curl's configure detects a fine poll() for Mac |
| 7344 | OS X 10.4 (while 10.3 or later detected a "bad" one), but the executable |
| 7345 | doesn't work as good as if built without poll(). I've adjusted the configure |
| 7346 | to always skip the fine-poll() test on Mac OS X (darwin). |
| 7347 | |
| 7348 | Daniel (12 May 2005) |
| 7349 | - When doing a second request (after a disconnect) using the same easy handle, |
| 7350 | over a proxy that uses NTLM authentication, libcurl failed to use NTLM again |
| 7351 | properly (the auth method was accidentally reset to the same as had been set |
| 7352 | for host auth, which defaults to Basic). Bug report #1200661 |
| 7353 | (http://curl.haxx.se/bug/view.cgi?id=1200661) identified the the problem and |
| 7354 | the fix. |
| 7355 | |
| 7356 | - If -z/--time-cond is used with an invalid date syntax, this is no longer |
| 7357 | silently discarded. Instead a proper warning message is diplayed that |
| 7358 | informs about it. But it still continues without the condition. |
| 7359 | |
| 7360 | Version 7.14.0-pre2 (11 May 2005) |
| 7361 | |
| 7362 | Daniel (11 May 2005) |
| 7363 | - Starting now, libcurl sends a little different set of headers in its default |
| 7364 | HTTP requests: |
| 7365 | |
| 7366 | A) Normal non-proxy HTTP: |
| 7367 | - no more "Pragma: no-cache" (this only makes sense to proxies) |
| 7368 | |
| 7369 | B) Non-CONNECT HTTP request over proxy: |
| 7370 | - "Pragma: no-cache" is used (like before) |
| 7371 | - "Proxy-Connection: Keep-alive" (for older style 1.0-proxies) |
| 7372 | |
| 7373 | C) CONNECT HTTP request over proxy: |
| 7374 | - "Host: [name]:[port]" |
| 7375 | - "Proxy-Connection: Keep-alive" |
| 7376 | |
| 7377 | The A) case is mostly to reduce the default header size and remove a |
| 7378 | pointless header. |
| 7379 | |
| 7380 | The B) is to address (rare) problems with HTTP 1.0 proxies |
| 7381 | |
| 7382 | The C) headers are both to address (rare) problems with some proxies. The |
| 7383 | code in libcurl that deals with CONNECT requests need a rewrite, but it |
| 7384 | feels like a too big a job for me to do now. Details are added in the code |
| 7385 | comments for now. |
| 7386 | |
| 7387 | Updated a large amount of test cases to reflect the news. |
| 7388 | |
| 7389 | Daniel (10 May 2005) |
| 7390 | - Half-baked attempt to bail out if select() returns _only_ errorfds when the |
| 7391 | transfer is in progress. An attempt to fix Allan's problem. See |
| 7392 | http://curl.haxx.se/mail/lib-2005-05/0073.html and the rest of that thread |
| 7393 | for details. |
| 7394 | |
| 7395 | I'm still not sure this is the right fix, but... |
| 7396 | |
| 7397 | Version 7.14.0-pre1 (9 May 2005) |
| 7398 | |
| 7399 | Daniel (2 May 2005) |
| 7400 | - Sort of "fixed" KNOWN_BUGS #4: curl now builds IPv6 enabled on AIX 4.3. At |
| 7401 | least it should no longer cause a compiler error. However, it does not have |
| 7402 | AI_NUMERICHOST so we cannot getaddrinfo() any numerical addresses with it |
| 7403 | (we use that for FTP PORT/EPRT)! So, I modified the configure check that |
| 7404 | checks if the getaddrinfo() is working, to use AI_NUMERICHOST since then |
| 7405 | it'll fail on AIX 4.3 and it will automatically build with IPv6 support |
| 7406 | disabled. |
| 7407 | |
| 7408 | - Added --trace-time that when used adds a time stamp to each trace line that |
| 7409 | --trace, --trace-ascii and --verbose output. I also made the '>' display |
| 7410 | separate each line on the linefeed so that HTTP requests etc look nicer in |
| 7411 | the -v output. |
| 7412 | |
| 7413 | - Made curl recognize the environment variables Lynx (and others?) support for |
| 7414 | pointing out the CA cert path/file: SSL_CERT_DIR and SSL_CERT_FILE. If |
| 7415 | CURL_CA_BUNDLE is not set, they are checked afterwards. |
| 7416 | |
| 7417 | Like before: on windows if none of these are set, it checks for the ca cert |
| 7418 | file like this: |
| 7419 | |
| 7420 | 1. application's directory |
| 7421 | 2. current working directory |
| 7422 | 3. Windows System directory (e.g. C:\windows\system32) |
| 7423 | 4. Windows Directory (e.g. C:\windows) |
| 7424 | 5. all directories along %PATH% |
| 7425 | |
| 7426 | Daniel (1 May 2005) |
| 7427 | - The runtests.pl script now starts test servers by doing fork() and exec() |
| 7428 | instead of the previous approach. This is less complicated and should |
| 7429 | hopefully lead to less "leaked" servers (servers that aren't stopped |
| 7430 | properly when the tests are stopped). |
| 7431 | |
| 7432 | - Alexander Zhuravlev found a case when you did "curl -I [URL]" and it |
| 7433 | complained on the chunked encoding, even though a HEAD should never return a |
| 7434 | body and thus it cannot be a chunked-encoding problem! |
| 7435 | |
| 7436 | Daniel (30 April 2005) |
| 7437 | - Alexander Zhuravlev found out that (lib)curl SIGSEGVed when using |
| 7438 | --interface on an address that can't be bound. |
| 7439 | |
| 7440 | Daniel (28 April 2005) |
| 7441 | - Working on fixing up test cases to mark sections as 'mode=text' for things |
| 7442 | that curl writes as text files, since then they can get different line |
| 7443 | endings depending on OS. Andrés GarcÃa helps me work this out. |
| 7444 | |
| 7445 | Did lots of other minor tweaks on the test scripts to work better and more |
| 7446 | reliably find test servers and also kill test servers. |
| 7447 | |
| 7448 | - Dan Fandrich pointed out how the runtests.pl script killed the HTTP server |
| 7449 | instead of the HTTPS server when closing it down. |
| 7450 | |
| 7451 | Daniel (27 April 2005) |
| 7452 | - Paul Moore made curl check for the .curlrc file (_curlrc on windows) on two |
| 7453 | more places. First, CURL_HOME is a new environment variable that is used |
| 7454 | instead of HOME if it is set, to point out where the default config file |
| 7455 | lives. If there's no config file in the dir pointed out by one of the |
| 7456 | environment variables, the Windows version will instead check the same |
| 7457 | directory the executable curl is located in. |
| 7458 | |
| 7459 | Daniel (26 April 2005) |
| 7460 | - Cory Nelson's work on nuking compiler warnings when building on x64 with |
| 7461 | VS2005. |
| 7462 | |
| 7463 | Daniel (25 April 2005) |
| 7464 | - Fred New reported a bug where we used Basic auth and user name and password |
| 7465 | in .netrc, and when following a Location: the subsequent requests didn't |
| 7466 | properly use the auth as found in the netrc file. Added test case 257 to |
| 7467 | verify my fix. |
| 7468 | |
| 7469 | - Based on feedback from Cory Nelson, I added some preprocessor magic in |
| 7470 | */setup.h and */config-win32.h to build fine with VS2005 on x64. |
| 7471 | |
| 7472 | Daniel (23 April 2005) |
| 7473 | - Alex Suykov made the curl tool now assume that uploads using HTTP:// or |
| 7474 | HTTPS:// are the only ones that show output and thus motivates a switched |
| 7475 | off progress meter if the output is sent to the terminal. This makes FTP |
| 7476 | uploads without '>', -o or -O show the progress meter. |
| 7477 | |
| 7478 | Daniel (22 April 2005) |
| 7479 | - Dave Dribin's MSVC makefile fix: set CURL_STATICLIB when it builds static |
| 7480 | library variants. |
| 7481 | |
| 7482 | - Andres Garcia fixed configure to set the proper define when building static |
| 7483 | libcurl on windows. |
| 7484 | |
| 7485 | - --retry-delay didn't work. |
| 7486 | |
| 7487 | Daniel (18 April 2005) |
| 7488 | - Olivier reported that even though he used CURLOPT_PORT, libcurl clearly |
| 7489 | still used the default port. He was right. I fixed the problem and added the |
| 7490 | test cases 521, 522 and 523 to verify the fix. |
| 7491 | |
| 7492 | - Toshiyuki Maezawa reported that when doing a POST with a read callback, |
| 7493 | libcurl didn't properly send an Expect: 100-continue header. It does now. |
| 7494 | |
| 7495 | - I committed by mig change in the test suite's FTP server that moves out all |
| 7496 | socket/TCP code to a separate C program named sockfilt. And added 4 new |
| 7497 | test cases for FTP over IPv6. |
| 7498 | |
| 7499 | Daniel (8 April 2005) |
| 7500 | - Cory Nelson reported a problem with a HTTP server that responded with a 304 |
| 7501 | response containing an "illegal" Content-Length: header, which was not |
| 7502 | properly ignored by libcurl. Now it is. Test case 249 verifies. |
| 7503 | |
| 7504 | Daniel (7 April 2005) |
| 7505 | - Added ability to build and run with GnuTLS as an alternative to OpenSSL for |
| 7506 | the secure layer. configure --with-gnutls enables with. Note that the |
| 7507 | previous OpenSSL check still has preference and if it first detects OpenSSL, |
| 7508 | it will not check for GnuTLS. You may need to explictly diable OpenSSL with |
| 7509 | --without-ssl. |
| 7510 | |
| 7511 | This work has been sponsored by The Written Word. |
| 7512 | |
| 7513 | Daniel (5 April 2005) |
| 7514 | - Christophe Legry fixed the post-upload check for FTP to not complain if the |
| 7515 | upload was skipped due to a time-condition as set with |
| 7516 | CURLOPT_TIMECONDITION. I added test case 247 and 248 to verify. |
| 7517 | |
| 7518 | Version 7.13.2 (5 April 2005) |
| 7519 | |
| 7520 | Daniel (4 April 2005) |
| 7521 | - Marcelo Juchem fixed the MSVC makefile for libcurl |
| 7522 | |
| 7523 | - Gisle Vanem fixed a crash in libcurl, that could happen if the easy handle |
| 7524 | was killed before the threading resolver (windows only) still hadn't |
| 7525 | completed. |
| 7526 | |
| 7527 | - Hardeep Singh reported a problem doing HTTP POST with Digest. (It was |
| 7528 | actually also affecting NTLM and Negotiate.) It turned out that if the |
| 7529 | server responded with 100 Continue before the initial 401 response, libcurl |
| 7530 | didn't take care of the response properly. Test case 245 and 246 added to |
| 7531 | verify this. |
| 7532 | |
| 7533 | Daniel (30 March 2005) |
| 7534 | - Andres Garcia modified the configure script to check for libgdi32 before |
| 7535 | libcrypto, to make the SSL check work fine on msys/mingw. |
| 7536 | |
| 7537 | Daniel (29 March 2005) |
| 7538 | - Tom Moers identified a flaw when you sent a POST with Digest authentication, |
| 7539 | as in the first request when curl sends a POST with Content-Length: 0, it |
| 7540 | still forcibly closed the connection before doing the next step in the auth |
| 7541 | negotiation. |
| 7542 | |
| 7543 | - Jesper Jensen found out that FTP-SSL didn't work since my FTP |
| 7544 | rewrite. Fixing that was easy, but it also revealed a much worse problem: |
| 7545 | the FTP server response reader function didn't properly deal with reading |
| 7546 | responses in multiple tiny chunks properly! I modified the FTP server to |
| 7547 | allow it to produce such split-up responses to make sure curl deals with |
| 7548 | them as it should. |
| 7549 | |
| 7550 | - Based on Augustus Saunders' comments and findings, the HTTP output auth |
| 7551 | function was fixed to use the proper proxy authentication when multiple ones |
| 7552 | are accepted. test 239 and test 243 were added to repeat the problems and |
| 7553 | verify the fixes. |
| 7554 | |
| 7555 | --proxy-anyauth was added to the curl tool |
| 7556 | |
| 7557 | Daniel (16 March 2005) |
| 7558 | - Tru64 and some IRIX boxes seem to not like test 237 as it is. Their |
| 7559 | inet_addr() functions seems to use &255 on all numericals in a ipv4 dotted |
| 7560 | address which makes a different failure... Now I've modified the IPv4 |
| 7561 | resolve code to use inet_pton() instead in an attempt to make these systems |
| 7562 | better detect this as a bad IP address rather than creating a toally bogus |
| 7563 | address that is then passed on and used. |
| 7564 | |
| 7565 | Daniel (15 March 2005) |
| 7566 | - Dan Fandrich made the code properly use the uClibc's version of |
| 7567 | inet_ntoa_r() when built with it. |
| 7568 | |
| 7569 | - Added test 237 and 238: test EPSV and PASV response handling when they get |
| 7570 | well- formated data back but using illegal values. In 237 PASV gets an IP |
| 7571 | address that is way bad. In 238 EPSV gets a port that is way out of range. |
| 7572 | |
| 7573 | Daniel (14 March 2005) |
| 7574 | - Added a few missing features to the curl-config --features list |
| 7575 | |
| 7576 | - Modified testcurl.pl to now offer |
| 7577 | 1 - command line options for all info it previously only read from |
| 7578 | file: --name, --email, --desc and --configure |
| 7579 | 2 - --nocvsup makes it not attempt to do cvs update |
| 7580 | 3 - --crosscompile informs it and makes it not attempt things it can't do |
| 7581 | |
| 7582 | - Fixed numerous win32 compiler warnings. |
| 7583 | |
| 7584 | - Removed the lib/security.h file since it shadowed the mingw/win32 header |
| 7585 | with the same name which is needed for SSPI builds. The contents of the |
| 7586 | former security.h is now i krb4.h |
| 7587 | |
| 7588 | - configure --enable-sspi now enables SSPI in the build. It only works for |
| 7589 | windows builds (including cross-compiles for windows). |
| 7590 | |
| 7591 | Daniel (12 March 2005) |
| 7592 | - David Houlder added --form-string that adds that string to a multipart |
| 7593 | formpost part, without special characters having special meanings etc like |
| 7594 | --form features. |
| 7595 | |
| 7596 | Daniel (11 March 2005) |
| 7597 | - curl_version_info() returns the feature bit CURL_VERSION_SSPI if it was |
| 7598 | built with SSPI support. |
| 7599 | |
| 7600 | - Christopher R. Palmer made it possible to build libcurl with the |
| 7601 | USE_WINDOWS_SSPI on Windows, and then libcurl will be built to use the |
| 7602 | native way to do NTLM. SSPI also allows libcurl to pass on the current user |
| 7603 | and its password in the request. |
| 7604 | |
| 7605 | Daniel (9 March 2005) |
| 7606 | - Dan F improved the SSL lib setup in configure. |
| 7607 | |
| 7608 | - Nodak Sodak reported a crash when using a SOCKS4 proxy. |
| 7609 | |
| 7610 | - Jean-Marc Ranger pointed out an embarassing debug printf() leftover in the |
| 7611 | multi interface code. |
| 7612 | |
| 7613 | - Adjusted the man page for the curl_getdate() return value for dates after |
| 7614 | year 2038. For 32 bit time_t it returns 0x7fffffff but for 64bit time_t it |
| 7615 | returns either the correct value or even -1 on some systems that still seem |
| 7616 | to not deal with this properly. Tor Arntsen found a 64bit AIX system for us |
| 7617 | that did the latter. Gwenole Beauchesne's Mandrake patch put the lights on |
| 7618 | this problem in the first place. |
| 7619 | |
| 7620 | Daniel (8 March 2005) |
| 7621 | - Dominick Meglio reported that using CURLOPT_FILETIME when transferring a FTP |
| 7622 | file got a Last-Modified: header written to the data stream, corrupting the |
| 7623 | actual data. This was because some conditions from the previous FTP code was |
| 7624 | not properly brought into the new FTP code. I fixed and I added test case |
| 7625 | 520 to verify. (This bug was introduced in 7.13.1) |
| 7626 | |
| 7627 | - Dan Fandrich fixed the configure --with-zlib option to always consider the |
| 7628 | given path before any standard paths. |
| 7629 | |
| 7630 | Daniel (6 March 2005) |
| 7631 | - Randy McMurchy was the first to report that valgrind.pm was missing from the |
| 7632 | release archive and thus 'make test' fails. |
| 7633 | |
| 7634 | Daniel (5 March 2005) |
| 7635 | - Dan Fandrich added HAVE_FTRUNCATE to several config-*.h files. |
| 7636 | |
| 7637 | - Added test case 235 that makes a resumed upload of a file that isn't present |
| 7638 | on the remote side. This then converts the operation to an ordinary STOR |
| 7639 | upload. This was requested/pointed out by Ignacio Vazquez-Abrams. |
| 7640 | |
| 7641 | It also proved (and I fixed) a bug in the newly rewritten ftp code (and |
| 7642 | present in the 7.13.1 release) when trying to resume an upload and the |
| 7643 | servers returns an error to the SIZE command. libcurl then loops and sends |
| 7644 | SIZE commands infinitely. |
| 7645 | |
| 7646 | - Dan Fandrich fixed a SSL problem introduced on February 9th that made |
| 7647 | libcurl attempt to load the whole random file to seed the PRNG. This is |
| 7648 | really bad since this turns out to be using /dev/urandom at times... |
| 7649 | |
| 7650 | Version 7.13.1 (4 March 2005) |
| 7651 | |
| 7652 | Daniel (4 March 2005) |
| 7653 | - Dave Dribin made it possible to set CURLOPT_COOKIEFILE to "" to activate |
| 7654 | the cookie "engine" without having to provide an empty or non-existing file. |
| 7655 | |
| 7656 | - Rene Rebe fixed a -# crash when more data than expected was retrieved. |
| 7657 | |
| 7658 | Daniel (22 February 2005) |
| 7659 | - NTLM and ftp-krb4 buffer overflow fixed, as reported here: |
| 7660 | http://www.securityfocus.com/archive/1/391042 and the CAN report here: |
| 7661 | http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2005-0490 |
| 7662 | |
| 7663 | If these security guys were serious, we'd been notified in advance and we |
| 7664 | could've saved a few of you a little surprise, but now we weren't. |
| 7665 | |
| 7666 | Daniel (19 February 2005) |
| 7667 | - Ralph Mitchell reported a flaw when you used a proxy with auth, and you |
| 7668 | requested data from a host and then followed a redirect to another |
| 7669 | host. libcurl then didn't use the proxy-auth properly in the second request, |
| 7670 | due to the host-only check for original host name wrongly being extended to |
| 7671 | the proxy auth as well. Added test case 233 to verify the flaw and that the |
| 7672 | fix removed the problem. |
| 7673 | |
| 7674 | Daniel (18 February 2005) |
| 7675 | - Mike Dobbs reported a mingw build failure due to the lack of |
| 7676 | BUILDING_LIBCURL being defined when libcurl is built. Now this is defined by |
| 7677 | configure when mingw is used. |
| 7678 | |
| 7679 | Daniel (17 February 2005) |
| 7680 | - David in bug report #1124588 found and fixed a socket leak when libcurl |
| 7681 | didn't close the socket properly when returning error due to failing |
| 7682 | localbind |
| 7683 | |
| 7684 | Daniel (16 February 2005) |
| 7685 | - Christopher R. Palmer reported a problem with HTTP-POSTing using "anyauth" |
| 7686 | that picks NTLM. Thanks to David Byron letting me test NTLM against his |
| 7687 | servers, I could quickly repeat and fix the problem. It turned out to be: |
| 7688 | |
| 7689 | When libcurl POSTs without knowing/using an authentication and it gets back |
| 7690 | a list of types from which it picks NTLM, it needs to either continue |
| 7691 | sending its data if it keeps the connection alive, or not send the data but |
| 7692 | close the connection. Then do the first step in the NTLM auth. libcurl |
| 7693 | didn't send the data nor close the connection but simply read the |
| 7694 | response-body and then sent the first negotiation step. Which then failed |
| 7695 | miserably of course. The fixed version forces a connection if there is more |
| 7696 | than 2000 bytes left to send. |
| 7697 | |
| 7698 | Daniel (14 February 2005) |
| 7699 | - The configure script didn't check for ENGINE_load_builtin_engines() so it |
| 7700 | was never used. |
| 7701 | |
| 7702 | Daniel (11 February 2005) |
| 7703 | - Removed all uses of strftime() since it uses the localised version of the |
| 7704 | week day names and month names and servers don't like that. |
| 7705 | |
| 7706 | Daniel (10 February 2005) |
| 7707 | - Now the test script disables valgrind-testing when the test suite runs if |
| 7708 | libcurl is built shared. Otherwise valgrind only tests the shell that runs |
| 7709 | the wrapper-script named 'curl' that is a front-end to curl in this case. |
| 7710 | This should also fix the huge amount of reports of false positives when |
| 7711 | valgrind has identified leaks in (ba)sh and not in curl and people report |
| 7712 | that as curl bugs. Bug report #1116672 is one example. |
| 7713 | |
| 7714 | Also, the valgrind report parser has been adapted to check that at least one |
| 7715 | of the sources in a stack strace is one of (lib)curl's source files or |
| 7716 | otherwise it will not consider the problem to concern (lib)curl. |
| 7717 | |
| 7718 | - Marty Kuhrt streamlined the VMS build. |
| 7719 | |
| 7720 | Daniel (9 February 2005) |
| 7721 | - David Byron fixed his SSL problems, initially mentioned here: |
| 7722 | http://curl.haxx.se/mail/lib-2005-01/0240.html. It turned out we didn't use |
| 7723 | SSL_pending() as we should. |
| 7724 | |
| 7725 | - Converted lots of FTP code to a statemachine, so that the multi interface |
| 7726 | doesn't block while communicating commands-responses with an FTP server. |
| 7727 | |
| 7728 | I've added a comment like BLOCKING in the code on all spots I could find |
| 7729 | where we still have blocking operations. When we change curl_easy_perform() |
| 7730 | to use the multi interface, we'll also be able to simplify the code since |
| 7731 | there will only be one "internal interface". |
| 7732 | |
| 7733 | While doing this, I've now made CURLE_FTP_ACCESS_DENIED separate from the |
| 7734 | new CURLE_LOGIN_DENIED. The first one is now access denied to a function, |
| 7735 | like changing directory or retrieving a file, while the second means that we |
| 7736 | were denied login. |
| 7737 | |
| 7738 | The CVS tag 'before_ftp_statemachine' was set just before this went in, in |
| 7739 | case of future need. |
| 7740 | |
| 7741 | - Gisle made the DICT code send CRLF and not just LF as the spec says so. |
| 7742 | |
| 7743 | Daniel (8 February 2005) |
| 7744 | - Gisle fixed problems when libcurl runs out of memory, and worked on making |
| 7745 | sure the proper error code is returned for those occations. |
| 7746 | |
| 7747 | Daniel (7 February 2005) |
| 7748 | - Maruko pointed out a problem with inflate decompressing exactly 64K |
| 7749 | contents. |
| 7750 | |
| 7751 | Daniel (5 February 2005) |
| 7752 | - Eric Vergnaud found a use of an uninitialised variable in the ftp when doing |
| 7753 | PORT on IPv6-enabled hosts. |
| 7754 | |
| 7755 | - David Byron pointed out we could use BUFSIZE to read data (in |
| 7756 | lib/transfer.c) instead of using BUFSIZE -1. |
| 7757 | |
| 7758 | Version 7.13.0 (1 February 2005) |
| 7759 | |
| 7760 | Daniel (31 January 2005) |
| 7761 | - Added Lars Nilsson's htmltitle.cc example |
| 7762 | |
| 7763 | Daniel (30 January 2005) |
| 7764 | - Fixed a memory leak when using the multi interface and the DO operation |
| 7765 | failed (as in test case 205). |
| 7766 | |
| 7767 | - Fixed a valgrind warning for file:// operations. |
| 7768 | |
| 7769 | - Fixed a valgrind report in the url globbing code for the curl command line |
| 7770 | tool. |
| 7771 | |
| 7772 | - Bugfixed the parser that scans the valgrind report outputs (in runtests.pl). |
| 7773 | I noticed that it previously didn't detect and report the "Conditional jump |
| 7774 | or move depends on uninitialised value(s)" error. When I fixed this, I |
| 7775 | caught a few curl bugs with it. And then I had to spend time to make the |
| 7776 | test suite IGNORE these errors when OpenSSL is used since it produce massive |
| 7777 | amounts of valgrind warnings (but only of the "Conditional..." kind it |
| 7778 | seems). So, if a test that requires SSL is run, it ignores the |
| 7779 | "Conditional..." errors, and you'll get a "valgrind PARTIAL" output instead |
| 7780 | of "valgrind OK". |
| 7781 | |
| 7782 | Daniel (29 January 2005) |
| 7783 | - Using the multi interface, and doing a requsted a re-used connection that |
| 7784 | gets closed just after the request has been sent failed and did not re-issue |
| 7785 | a request on a fresh reconnect like the easy interface did. Now it does! |
| 7786 | |
| 7787 | - Define CURL_MULTIEASY when building libcurl (lib/easy.c to be exact), to use |
| 7788 | my new curl_easy_perform() that uses the multi interface to run the |
| 7789 | request. It is a great testbed for the multi interface and I believe we |
| 7790 | shall do it this way for real in the future when we have a successor to |
| 7791 | curl_multi_fdset(). I've used this approach to detect and fix several of the |
| 7792 | recent multi-interfaces issues. |
| 7793 | |
| 7794 | - Adjusted the KNOWN_BUGS #17 fix a bit more since the FTP code also did some |
| 7795 | bad assumptions. |
| 7796 | |
| 7797 | - multi interface: when a request is denied due to "Maximum redirects |
| 7798 | followed" libcurl leaked the last Location: URL. |
| 7799 | |
| 7800 | - Connect failures with the multi interface was often returned as "connect() |
| 7801 | timed out" even though the reason was different. |
| 7802 | |
| 7803 | Daniel (28 January 2005) |
| 7804 | - KNOWN_BUGS #17 fixed. A DNS cache entry may not remain locked between two |
| 7805 | curl_easy_perform() invokes. It was previously unlocked at disconnect, which |
| 7806 | could mean that it remained locked between multiple transfers. The DNS cache |
| 7807 | may not live as long as the connection cache does, as they are separate. |
| 7808 | |
| 7809 | To deal with the lack of DNS (host address) data availability in re-used |
| 7810 | connections, libcurl now keeps a copy of the IP adress as a string, to be |
| 7811 | able to show it even on subsequent requests on the same connection. |
| 7812 | |
| 7813 | The problem could be made to appear with this stunt: |
| 7814 | |
| 7815 | 1. create a multi handle |
| 7816 | 2. add an easy handle |
| 7817 | 3. fetch a URL that is persistent (leaves the connection alive) |
| 7818 | 4. remove the easy handle from the multi |
| 7819 | 5. kill the multi handle |
| 7820 | 6. create a multi handle |
| 7821 | 7. add the same easy handle to the new multi handle |
| 7822 | 8. fetch a URL from the same server as before (re-using the connection) |
| 7823 | |
| 7824 | - Stephen More pointed out that CURLOPT_FTPPORT and the -P option didn't work |
| 7825 | when built IPv6-enabled. I've now made a fix for it. Writing test cases for |
| 7826 | custom port hosts turned too tricky so unfortunately there's none. |
| 7827 | |
| 7828 | Daniel (25 January 2005) |
| 7829 | - Ian Ford asked about support for the FTP command ACCT, and I discovered it |
| 7830 | is present in RFC959... so now (lib)curl supports it as well. --ftp-account |
| 7831 | and CURLOPT_FTP_ACCOUNT set the account string. (The server may ask for an |
| 7832 | account string after PASS have been sent away. The client responds |
| 7833 | with "ACCT [account string]".) Added test case 228 and 229 to verify the |
| 7834 | functionality. Updated the test FTP server to support ACCT somewhat. |
| 7835 | |
| 7836 | - David Shaw contributed a fairly complete and detailed autoconf test you can |
| 7837 | use to detect libcurl and setup variables for the protocols the installed |
| 7838 | libcurl supports: docs/libcurl/libcurl.m4 |
| 7839 | |
| 7840 | Daniel (21 January 2005) |
| 7841 | - Major FTP third party transfer overhaul. |
| 7842 | |
| 7843 | These four options are now obsolete: CURLOPT_SOURCE_HOST, |
| 7844 | CURLOPT_SOURCE_PATH, CURLOPT_SOURCE_PORT (this option didn't work before) |
| 7845 | and CURLOPT_PASV_HOST. |
| 7846 | |
| 7847 | These two options are added: CURLOPT_SOURCE_URL and CURLOPT_SOURCE_QUOTE. |
| 7848 | |
| 7849 | The target-side didn't use the proper path with RETR, and thus this only |
| 7850 | worked correctly in the login path (i.e without doing any CWD). The source- |
| 7851 | side still uses a wrong path, but the fix for this will need to wait. Verify |
| 7852 | the flaw by using a source URL with included %XX-codes. |
| 7853 | |
| 7854 | Made CURLOPT_FTPPORT control weather the target operation should use PORT |
| 7855 | (or not). The other side thus uses passive (PASV) mode. |
| 7856 | |
| 7857 | Updated the ftp3rdparty.c example source to use the updated options. |
| 7858 | |
| 7859 | Added support for a second FTP server in the test suite. Named... ftp2. |
| 7860 | Added test cases 230, 231 and 232 as a few first basic tests of very simple |
| 7861 | 3rd party transfers. |
| 7862 | |
| 7863 | Changed the debug output to include 'target' and 'source' when a 3rd party |
| 7864 | is being made, to make it clearer what commands/responses came on what |
| 7865 | connection. |
| 7866 | |
| 7867 | Added three new command line options: --3p-url, --3p-user and --3p-quote. |
| 7868 | |
| 7869 | Documented the command line options and the curl_easy_setopt options related |
| 7870 | to third party transfers. |
| 7871 | |
| 7872 | (Temporarily) disabled the ability to re-use an existing connection for the |
| 7873 | source connection. This is because it needs to force a new in case the |
| 7874 | source and target is the same host, and the host name check is trickier now |
| 7875 | when the source is identified with a full URL instead of a plain host name |
| 7876 | like before. |
| 7877 | |
| 7878 | TODO (short-term) for 3rd party transfers: quote support. The options are |
| 7879 | there, we need to add test cases to verify their functionality. |
| 7880 | |
| 7881 | TODO (long-term) for 3rd party transfers: IPv6 support (EPRT and EPSV etc) |
| 7882 | and SSL/TSL support. |
| 7883 | |
| 7884 | Daniel (20 January 2005) |
| 7885 | - Philippe Hameau found out that -Q "+[command]" didn't work, although some |
| 7886 | code was written for it. I fixed and added test case 227 to verify it. |
| 7887 | The curl.1 man page didn't mention the '+' so I added it. |
| 7888 | |
| 7889 | Daniel (19 January 2005) |
| 7890 | - Stephan Bergmann made libcurl return CURLE_URL_MALFORMAT if an FTP URL |
| 7891 | contains %0a or %0d in the user, password or CWD parts. (A future fix would |
| 7892 | include doing it for %00 as well - see KNOWN_BUGS for details.) Test case |
| 7893 | 225 and 226 were added to verify this |
| 7894 | |
| 7895 | - Stephan Bergmann pointed out two flaws in libcurl built with HTTP disabled: |
| 7896 | |
| 7897 | 1) the proxy environment variables are still read and used to set HTTP proxy |
| 7898 | |
| 7899 | 2) you couldn't disable http proxy with CURLOPT_PROXY (since the option was |
| 7900 | disabled). This is important since apps may want to disable HTTP proxy |
| 7901 | without actually knowing if libcurl was built to disable HTTP or not. |
| 7902 | |
| 7903 | Based on Stephan's patch, both these issues should now be fixed. |
| 7904 | |
| 7905 | Daniel (18 January 2005) |
| 7906 | - Cody Jones' enhanced version of Samuel DÃaz GarcÃa's MSVC makefile patch was |
| 7907 | applied. |
| 7908 | |
| 7909 | Daniel (16 January 2005) |
| 7910 | - Alex aka WindEagle pointed out that when doing "curl -v dictionary.com", curl |
| 7911 | assumed this used the DICT protocol. While guessing protocols will remain |
| 7912 | fuzzy, I've now made sure that the host names must start with "[protocol]." |
| 7913 | for them to be a valid guessable name. I also removed "https" as a prefix |
| 7914 | that indicates HTTPS, since we hardly ever see any host names using that. |
| 7915 | |
| 7916 | Daniel (13 January 2005) |
| 7917 | - Inspired by Martijn Koster's patch and example source at |
| 7918 | http://www.greenhills.co.uk/mak/gentoo/curl-eintr-bug.c, I now made the |
| 7919 | select() and poll() calls properly loop if they return -1 and errno is |
| 7920 | EINTR. glibc docs for this is found here: |
| 7921 | http://www.gnu.org/software/libc/manual/html_node/Interrupted-Primitives.html |
| 7922 | |
| 7923 | This last link says BSD doesn't have this "effect". Will there be a problem |
| 7924 | if we do this unconditionally? |
| 7925 | |
| 7926 | Daniel (11 January 2005) |
| 7927 | - Dan Torop cleaned up a few no longer used variables from David Phillips' |
| 7928 | select() overhaul fix. |
| 7929 | |
| 7930 | - Cyrill Osterwalder posted a detailed analysis about a bug that occurs when |
| 7931 | using a custom Host: header and curl fails to send a request on a re-used |
| 7932 | persistent connection and thus creates a new connection and resends it. It |
| 7933 | then sent two Host: headers. Cyrill's analysis was posted here: |
| 7934 | http://curl.haxx.se/mail/archive-2005-01/0022.html |
| 7935 | |
| 7936 | - Bruce Mitchener identified (bug report #1099640) the never-ending SOCKS5 |
| 7937 | problem with the version byte and the check for bad versions. Bruce has lots |
| 7938 | of clues on this, and based on his suggestion I've now removed the check of |
| 7939 | that byte since it seems to be able to contain 1 or 5. |
| 7940 | |
| 7941 | Daniel (10 January 2005) |
| 7942 | - Pavel Orehov reported memory problems with the multi interface in bug report |
| 7943 | #1098843. In short, a shared DNS cache was setup for a multi handle and when |
| 7944 | the shared cache was deleted before the individual easy handles, the latter |
| 7945 | cleanups caused read/writes to already freed memory. |
| 7946 | |
| 7947 | - Hzhijun reported a memory leak in the SSL certificate code, that leaked the |
| 7948 | remote certificate name when it didn't match the used host name. |
| 7949 | |
| 7950 | Gisle (8 January 2005) |
| 7951 | - Added Makefile.Watcom files (src/lib). Updated Makefile.dist. |
| 7952 | |
| 7953 | Daniel (7 January 2005) |
| 7954 | - Improved the test script's valgrind log parser to actually work! Also added |
| 7955 | the ability to disable the log scanner for specific test cases. Test case |
| 7956 | 509 results in numerous problems and leaks in OpenSSL and has to get it |
| 7957 | disabled. |
| 7958 | |
| 7959 | Daniel (6 January 2005) |
| 7960 | - Fixed a single-byte read out of bounds in test case 39 in the curl tool code |
| 7961 | (i.e not in the library). |
| 7962 | |
| 7963 | - Bug report #1097019 identified a problem when doing -d "data" with -G and |
| 7964 | sending it to two URLs with {}. Added test 199 to verify the fix. |
| 7965 | |
| 7966 | Daniel (4 January 2005) |
| 7967 | - Marty Kuhrt adjusted a VMS build script slightly |
| 7968 | |
| 7969 | - Kai Sommerfeld and Gisle Vanem fixed libcurl to build with IPv6 support on |
| 7970 | Win2000. |
| 7971 | |
| 7972 | Daniel (2 January 2005) |
| 7973 | - Alex Neblett updated the MSVC makefiles slightly. |
| 7974 | Daniel (25 December 2004) |
| 7975 | - Removed src/config.h.in from CVS, it is now copied from the (generated) |
| 7976 | lib/config.h.in instead, as they can very well be the same. This removes a |
| 7977 | "manual hassle". You may want to re-run buildconf now. |
| 7978 | |
| 7979 | - Werner Koch filed Debian bug report #286794, mentioning that curl contained |
| 7980 | non-free (by Debian's view) source code. This was Angus Mackay's |
| 7981 | src/getpass.c source code. I tried to contact him about it to quickly solve |
| 7982 | this issue, but his email addresses bounce and I got some time "over" and |
| 7983 | reimplemented the functionality once brought by Angus. We no longer use any |
| 7984 | of Angus' original code and the new function is much simpler (IMO). Issue |
| 7985 | solved. |
| 7986 | |
| 7987 | Daniel (24 December 2004) |
| 7988 | - David Shaw added --protocols to curl-config, so that it now lists all |
| 7989 | protocols libcurl was built to support. --feature no longer lists disabled |
| 7990 | protocols. |
| 7991 | |
| 7992 | Daniel (23 December 2004) |
| 7993 | - David Shaw fixed the configure --disable-[protocol] variables so that |
| 7994 | curl-config --feature now works correctly! |
| 7995 | |
| 7996 | Daniel (22 December 2004) |
| 7997 | - Rune Kleveland fixed a minor memory leak for received cookies with the |
| 7998 | (rare) version attribute set. |
| 7999 | |
| 8000 | - Marcin Konicki provided two configure fixes and a source fix to make curl |
| 8001 | build out-of-the-box on BeOS. |
| 8002 | |
| 8003 | Daniel (21 December 2004) |
| 8004 | - Added test case 217 that verified CURLINFO_HTTP_CONNECTCODE, and I made the |
| 8005 | -w option support 'http_connect' to make it easier to verify! |
| 8006 | |
| 8007 | - Fixed lib/select.c include order to build fine on FreeBSD |
| 8008 | |
| 8009 | - Fixed failf()'s reuse of the va_list variable that crashed on FreeBSD. |
| 8010 | Pointed out by Peter Pentchev. |
| 8011 | |
| 8012 | Version 7.12.3 (20 December 2004) |
| 8013 | |
| 8014 | Daniel (19 December 2004) |
| 8015 | - I investigated our PKCS12 build problem on Solaris 2.7 with OpenSSL 0.9.7e, |
| 8016 | and it turned out to be the fault of the zlib 1.1.4 headers doing a typedef |
| 8017 | named 'free_func' and the OpenSSL headers have a prototype that uses |
| 8018 | 'free_func' in one of its arguments. This is why the compile errors out. |
| 8019 | |
| 8020 | In other words, we need to include the openssl/pkcs12.h header before the |
| 8021 | zlib.h header and it builds fine. The configure script now checks for this |
| 8022 | file and it then gets included early in lib/urldata.h. |
| 8023 | |
| 8024 | Daniel (18 December 2004) |
| 8025 | - Samuel Listopad added support for PKCS12 formatted certificates. |
| 8026 | |
| 8027 | - Samuel Listopad fixed -E to support "C:/path" (with forward slash) as well. |
| 8028 | |
| 8029 | Daniel (16 December 2004) |
| 8030 | - Gisle found and fixed a problem in the directory re-use for FTP. |
| 8031 | |
| 8032 | I added test case 215 and 216 to better verify the functionality. |
| 8033 | |
| 8034 | - Dinar in bug report #1086121, found a file handle leak when a multipart |
| 8035 | formpost (including a file upload part) was aborted before the whole file |
| 8036 | was sent. |
| 8037 | |
| 8038 | Daniel (15 December 2004) |
| 8039 | - Tom Lee found out that globbing of strings with backslashes didn't work as |
| 8040 | you'd expect. Backslashes are such a central part of windows file names that |
| 8041 | forcing backslashes to have to be escaped with backslashes is a bit too |
| 8042 | awkward to users. Starting now, you only need to escape globbing characters |
| 8043 | such as the five letters: "[]{},". Added test case 214 to verify this. |
| 8044 | |
| 8045 | Daniel (14 December 2004) |
| 8046 | - Harshal Pradhan patched a HTTP persistent connection flaw: if the user name |
| 8047 | and/or password were modified between two requests on a persistent |
| 8048 | connection, the second request were still made with the first setup! |
| 8049 | |
| 8050 | I added test case 519 to verify the fix. |
| 8051 | |
| 8052 | Daniel (13 December 2004) |
| 8053 | - Gisle added CURLINFO_SSL_ENGINES to curl_easy_getinfo() to allow an app |
| 8054 | to list all available crypto ENGINES. |
| 8055 | |
| 8056 | - Gisle fixed bug report #1083542, which pointed out a problem with resuming |
| 8057 | large file (>4GB) file:// transfers on windows. |
| 8058 | |
| 8059 | Daniel (11 December 2004) |
| 8060 | - Made the test suite HTTP server (sws) capable of using IPv6, and then |
| 8061 | extended the test environment to support that and also added three test |
| 8062 | cases (240, 241, 242) that run tests using IPv6. Test 242 uses a URL that |
| 8063 | didn't work before the 10 dec fix by Kai Sommerfeld. |
| 8064 | |
| 8065 | - Made a failed file:// resume output an error message |
| 8066 | |
| 8067 | - Corrected the CURLE_BAD_DOWNLOAD_RESUME error message in lib/strerror.c |
| 8068 | |
| 8069 | - Dan Fandrich: |
| 8070 | |
| 8071 | simplified and consolidated the SSL checks in configure and the usage of the |
| 8072 | defines in lib/setup.h |
| 8073 | |
| 8074 | provided a first libcurl.pc.in file for pkg-config (but the result is not |
| 8075 | installed anywhere at this point) |
| 8076 | |
| 8077 | extended the cross compile section in the docs/INSTALL file |
| 8078 | |
| 8079 | Daniel (10 December 2004) |
| 8080 | - When providing user name in the URL and a IPv6-style IP-address (like in |
| 8081 | "ftp://user@[::1]/tmp"), the URL parser didn't get the host extracted |
| 8082 | properly. Reported and fixed by Kai Sommerfeld. |
| 8083 | |
| 8084 | Daniel (9 December 2004) |
| 8085 | - Ton Voon provided a configure fix that should fix the notorious (mostly |
| 8086 | reported on Solaris) problem where the size_t check fails due to the SSL |
| 8087 | libs being found in a dir not searched through by the run-time linker. |
| 8088 | patch-tracker entry #1081707. |
| 8089 | |
| 8090 | - Bryan Henderson pointed out in bug report #1081788 that the curl-config |
| 8091 | --vernum output wasn't zero prefixed properly (as claimed in documentation). |
| 8092 | This is fixed in maketgz now. |
| 8093 | |
| 8094 | Daniel (8 December 2004) |
| 8095 | - Matt Veenstra updated the mach-O framework files for Mac OS X. |
| 8096 | |
| 8097 | - Rene Bernhardt found and fixed a buffer overrun in the NTLM code, where |
| 8098 | libcurl always and unconditionally overwrote a stack-based array with 3 zero |
| 8099 | bytes. This is not an exploitable buffer overflow. No need to get alarmed. |
| 8100 | |
| 8101 | Daniel (7 December 2004) |
| 8102 | - Fixed so that the final error message is sent to the verbose info "stream" |
| 8103 | even if no errorbuffer is set. |
| 8104 | |
| 8105 | Daniel (6 December 2004) |
| 8106 | - Dan Fandrich added the --disable-cookies option to configure to build |
| 8107 | libcurl without cookie support. This is mainly useful if you want to build a |
| 8108 | minimalistic libcurl with no cookies support at all. Like for embedded |
| 8109 | systems or similar. |
| 8110 | |
| 8111 | - Richard Atterer fixed libcurl's way of dealing with the EPSV |
| 8112 | response. Previously, libcurl would re-resolve the host name with the new |
| 8113 | port number and attempt to connect to that, while it should use the IP from |
| 8114 | the control channel. This bug made it hard to EPSV from an FTP server with |
| 8115 | multiple IP addresses! |
| 8116 | |
| 8117 | Daniel (3 December 2004) |
| 8118 | - Bug report #1078066: when a chunked transfer was pre-maturely closed exactly |
| 8119 | at a chunk boundary it was not considered an error and thus went unnoticed. |
| 8120 | Fixed by Maurice Barnum. |
| 8121 | |
| 8122 | Added test case 207 to verify. |
| 8123 | |
| 8124 | Daniel (2 December 2004) |
| 8125 | - Fixed the CONNECT loop to default timeout to 3600 seconds. |
| 8126 | |
| 8127 | Added test case 206 that makes CONNECT with Digest. |
| 8128 | |
| 8129 | Fixed a flaw that prepended "(nil)" to the initial CONNECT rqeuest's user- |
| 8130 | agent field. |
| 8131 | |
| 8132 | Daniel (30 November 2004) |
| 8133 | - Dan Fandrich's fix for libz 1.1 and "extra field" usage in a gzip stream |
| 8134 | |
| 8135 | - Dan also helped me with input data to create three more test cases for the |
| 8136 | --compressed option. |
| 8137 | |
| 8138 | Daniel (29 November 2004) |
| 8139 | - I improved the test suite to enable binary contents in the tests (by proving |
| 8140 | it base64 encoded), like for testing decompress etc. Added test 220 and 221 |
| 8141 | for this purpose. Tests can now also depend on libz to run. |
| 8142 | |
| 8143 | - As reported by Reinout van Schouwen in Mandrake's bug tracker bug 12285 |
| 8144 | (http://qa.mandrakesoft.com/show_bug.cgi?id=12285), when connecting to an |
| 8145 | IPv6 host with FTP, --disable-epsv (or --disable-eprt) effectively disables |
| 8146 | the ability to transfer a file. Now, when connected to an FTP server with |
| 8147 | IPv6, these FTP commands can't be disabled even if asked to with the |
| 8148 | available libcurl options. |
| 8149 | |
| 8150 | Daniel (26 November 2004) |
| 8151 | - As reported in Mandrake's bug tracker bug 12289 |
| 8152 | (http://qa.mandrakesoft.com/show_bug.cgi?id=12289), curl would print a |
| 8153 | newline to "finish" the progress meter after each redirect and not only |
| 8154 | after a completed transfer. |
| 8155 | |
| 8156 | Daniel (25 November 2004) |
| 8157 | - FTP improvements: |
| 8158 | |
| 8159 | If EPSV, EPRT or LPRT is tried and doesn't work, it will not be retried on |
| 8160 | the same server again even if a following request is made using a persistent |
| 8161 | connection. |
| 8162 | |
| 8163 | If a second request is made to a server, requesting a file from the same |
| 8164 | directory as the previous request operated on, libcurl will no longer make |
| 8165 | that long series of CWD commands just to end up on the same spot. Note that |
| 8166 | this is only for *exactly* the same dir. There is still room for improvements |
| 8167 | to optimize the CWD-sending when the dirs are only slightly different. |
| 8168 | |
| 8169 | Added test 210, 211 and 212 to verify these changes. Had to improve the |
| 8170 | test script too and added a new primitive to the test file format. |
| 8171 | |
| 8172 | Daniel (24 November 2004) |
| 8173 | - Andrés GarcÃa fixed the configure script to detect select properly when run |
| 8174 | with Msys/Mingw on Windows. |
| 8175 | |
| 8176 | Daniel (22 November 2004) |
| 8177 | - Made HTTP PUT and POST requests no longer use HEAD when doing multi-pass |
| 8178 | auth negotiation (NTLM, Digest and Negotiate), but instead use the request |
| 8179 | keyword "properly". Details in lib/README.httpauth. This also introduces |
| 8180 | CURLOPT_IOCTLFUNCTION and CURLOPT_IOCTLDATA, to be used by apps that use the |
| 8181 | "any" auth alternative as then libcurl may need to send the PUT/POST data |
| 8182 | more than once and thus may need to ask the app to "rewind" the read data |
| 8183 | stream to start. |
| 8184 | |
| 8185 | See also the new example using this: docs/examples/anyauthput.c |
| 8186 | |
| 8187 | - David Phillips enhanced test 518. I made it depend on a "feature" so that |
| 8188 | systems without getrlimit() won't attempt to test 518. configure now checks |
| 8189 | for getrlimit() and setrlimit() for this test case. |
| 8190 | |
| 8191 | Daniel (18 November 2004) |
| 8192 | - David Phillips fixed libcurl to not crash anymore when more than FD_SETSIZE |
| 8193 | file descriptors are in use. Test case 518 added to verify. |
| 8194 | |
| 8195 | Daniel (15 November 2004) |
| 8196 | - To test my fix for the CURLINFO_REDIRECT_TIME bug, I added time_redirect and |
| 8197 | num_redirects support to the -w writeout option for the command line tool. |
| 8198 | |
| 8199 | - Wojciech Zwiefka found out that CURLINFO_REDIRECT_TIME didn't work as |
| 8200 | documented. |
| 8201 | |
| 8202 | Daniel (12 November 2004) |
| 8203 | - Gisle Vanem modigied the MSVC and Netware makefiles to build without |
| 8204 | libcurl.def |
| 8205 | |
| 8206 | - Dan Fandrich added the --disable-crypto-auth option to configure to allow |
| 8207 | libcurl to build without Digest support. (I figure it should also explicitly |
| 8208 | disable Negotiate and NTLM.) |
| 8209 | |
| 8210 | - *** Modified Behaviour Alert *** |
| 8211 | |
| 8212 | Setting CURLOPT_POSTFIELDS to NULL will no longer do a GET. |
| 8213 | |
| 8214 | Setting CURLOPT_POSTFIELDS to "" will send a zero byte POST and setting |
| 8215 | CURLOPT_POSTFIELDS to NULL and CURLOPT_POSTFIELDSIZE to zero will also make |
| 8216 | a zero byte POST. Added test case 515 to verify this. |
| 8217 | |
| 8218 | Setting CURLOPT_HTTPPOST to NULL makes a zero byte post. Added test case 516 |
| 8219 | to verify this. |
| 8220 | |
| 8221 | CURLOPT_POSTFIELDSIZE must now be set to -1 to signal "we don't know". |
| 8222 | Setting it to zero simply says this is a zero byte POST. |
| 8223 | |
| 8224 | When providing POST data with a read callback, setting the size up front |
| 8225 | is now made with CURLOPT_POSTFIELDSIZE and not with CURLOPT_INFILESIZE. |
| 8226 | |
| 8227 | Daniel (11 November 2004) |
| 8228 | - Dan Fandrich added --disable-verbose to the configure script to allow builds |
| 8229 | without verbose strings in the code, to save some 12KB space. Makes sense |
| 8230 | only for systems with very little memory resources. |
| 8231 | |
| 8232 | - Jeff Phillips found out that a date string with a year beyond 2038 could |
| 8233 | crash the new date parser on systems with 32bit time_t. We now check for |
| 8234 | this case and deal with it. |
| 8235 | |
| 8236 | Daniel (10 November 2004) |
| 8237 | - I installed Heimdal on my Debian box (using the debian package) and noticed |
| 8238 | that configure --with-gssapi failed to create a nice build. Fixed now. |
| 8239 | |
| 8240 | Daniel (9 November 2004) |
| 8241 | - Gisle Vanem marked all external function calls with CURL_EXTERN so that now |
| 8242 | the Windows, Netware and other builds no longer need libcurl.def or similar |
| 8243 | files. |
| 8244 | |
| 8245 | Daniel (8 November 2004) |
| 8246 | - Made the configure script check for tld.h if libidn was detected, since |
| 8247 | libidn 0.3.X didn't have such a header and we don't work with anything |
| 8248 | before libidn 0.4.1 anyway! Suse 9.1 apparently ships with a 0.3.X version |
| 8249 | of libidn which makes the curl 7.12.2 build fail. Jean-Philippe |
| 8250 | Barrette-LaPierre helped pointing this out. |
| 8251 | |
| 8252 | - Ian Gulliver reported in debian bug report #278691: if curl is invoked in an |
| 8253 | environment where stderr is closed the -v output will still be sent to file |
| 8254 | descriptor 2 which then might be the network socket handle! Now we have a |
| 8255 | weird hack instead that attempts to make sure that file descriptor 2 is |
| 8256 | opened (with a call to pipe()) before libcurl is called to do the transfer. |
| 8257 | configure now checks for pipe() and systems without pipe don't get the weird |
| 8258 | hack done. |
| 8259 | |
| 8260 | Daniel (5 November 2004) |
| 8261 | - Tim Sneddon made libcurl send no more than 64K in a single first chunk when |
| 8262 | doing a huge POST on VMS, as this is a system limitation. Default on general |
| 8263 | systems is 100K. |
| 8264 | |
| 8265 | Daniel (4 November 2004) |
| 8266 | - Andres Garcia made it build on mingw againa, my --retry code broke the build. |
| 8267 | |
| 8268 | Daniel (2 November 2004) |
| 8269 | - Added --retry-max-time that allows a maximum time that may not have been |
| 8270 | reached for a retry to be made. If not set there is no maximum time, only |
| 8271 | the amount of retries set with --retry. |
| 8272 | |
| 8273 | - Paul Nolan provided a patch to make libcurl build nicely on Windows CE. |
| 8274 | |
| 8275 | Daniel (1 November 2004) |
| 8276 | - When cross-compiling, the configure script no longer attempts to use |
| 8277 | pkg-config on the build host in order to detect OpenSSL compiler options. |
| 8278 | |
| 8279 | Daniel (27 October 2004) |
| 8280 | - Dan Fandrich: |
| 8281 | |
| 8282 | An improvement to the gzip handling of libcurl. There were two problems with |
| 8283 | the old version: it was possible for a malicious gzip file to cause libcurl |
| 8284 | to leak memory, as a buffer was malloced to hold the header and never freed |
| 8285 | if the header ended with no file contents. The second problem is that the |
| 8286 | 64 KiB decompression buffer was allocated on the stack, which caused |
| 8287 | unexpectedly high stack usage and overflowed the stack on some systems |
| 8288 | (someone complained about that in the mailing list about a year ago). |
| 8289 | |
| 8290 | Both problems are fixed by this patch. The first one is fixed when a recent |
| 8291 | (1.2) version of zlib is used, as it takes care of gzip header parsing |
| 8292 | itself. A check for the version number is done at run-time and libcurl uses |
| 8293 | that feature if it's present. I've created a define OLD_ZLIB_SUPPORT that |
| 8294 | can be commented out to save some code space if libcurl is guaranteed to be |
| 8295 | using a 1.2 version of zlib. |
| 8296 | |
| 8297 | The second problem is solved by dynamically allocating the memory buffer |
| 8298 | instead of storing it on the stack. The allocation/free is done for every |
| 8299 | incoming packet, which is suboptimal, but should be dwarfed by the actual |
| 8300 | decompression computation. |
| 8301 | |
| 8302 | I've also factored out some common code between deflate and gzip to reduce |
| 8303 | the code footprint somewhat. I've tested the gzip code on a few test files |
| 8304 | and I tried deflate using the freshmeat.net server, and it all looks OK. I |
| 8305 | didn't try running it with valgrind, however. |
| 8306 | |
| 8307 | - Added a --retry option to curl that takes a numerical option for the number |
| 8308 | of times the operation should be retried. It is retried if a transient error |
| 8309 | is detected or if a timeout occurred. By default, it will first wait one |
| 8310 | second between the retries and then double the delay time between each retry |
| 8311 | until the delay time is ten minutes which then will be the delay time |
| 8312 | between all forthcoming retries. You can set a static delay time with |
| 8313 | "--retry-delay [num]" where [num] is the number of seconds to wait between |
| 8314 | each retry. |
| 8315 | |
| 8316 | Daniel (25 October 2004) |
| 8317 | - Tomas Pospisek filed bug report #1053287 that proved -C - and --fail on a |
| 8318 | file that was already completely downloaded caused an error, while it |
| 8319 | doesn't if you don't use --fail! I added test case 194 to verify the fix. |
| 8320 | Grrr. CURLOPT_FAILONERROR is now added to the list stuff to remove in |
| 8321 | libcurl v8 due to all the kludges needed to support it. |
| 8322 | |
| 8323 | - Mohun Biswas found out that formposting a zero-byte file didn't work very |
| 8324 | good. I fixed. |
| 8325 | |
| 8326 | Daniel (19 October 2004) |
| 8327 | - Alexander Krasnostavsky made it possible to make FTP 3rd party transfers |
| 8328 | with both source and destination being the same host. It can be useful if |
| 8329 | you want to move a file on a server or similar. |
| 8330 | |
| 8331 | - Guillaume Arluison added CURLINFO_NUM_CONNECTS to allow an app to figure |
| 8332 | out how many new connects a previous transfer required. |
| 8333 | |
| 8334 | I added %{num_connects} to the curl tool and added test case 192 and 193 |
| 8335 | to verify the new code. |
| 8336 | |
| 8337 | Daniel (18 October 2004) |
| 8338 | - Peter Wullinger pointed out that curl should call setlocale() properly to |
| 8339 | initiate the specific language operations, to make the IDN stuff work |
| 8340 | better. |
| 8341 | |
| 8342 | Version 7.12.2 (18 October 2004) |
| 8343 | |
| 8344 | Daniel (16 October 2004) |
| 8345 | - Alexander Krasnostavsky made the CURLOPT_FTP_CREATE_MISSING_DIRS option work |
| 8346 | fine even for third party transfers. |
| 8347 | |
| 8348 | - runekl at opoint.com found out (and provided a fix) that libcurl leaked |
| 8349 | memory for cookies with the "max-age" field set. |
| 8350 | |
| 8351 | Gisle (16 October 2004) |
| 8352 | - Issue 50 in TODO-RELEASE; Added Traian Nicolescu's patches for threaded |
| 8353 | resolver on Windows. Plugged some potential handle and memory leaks. |
| 8354 | |
| 8355 | Daniel (14 October 2004) |
| 8356 | - Eric Vergnaud pointed out that libcurl didn't treat ?-letters in the user |
| 8357 | name and password fields properly in URLs, like |
| 8358 | ftp://us?er:pass?word@site.com/. Added test 191 to verify the fix. |
| 8359 | |
| 8360 | Daniel (11 October 2004) |
| 8361 | - libcurl now uses SO_NOSIGPIPE for systems that support it (Mac OS X 10.2 or |
| 8362 | later is one) to inhibit the SIGPIPE signal when writing to a socket while |
| 8363 | the peer dies. The same effect is provide by the MSG_NOSIGNAL parameter to |
| 8364 | send() on other systems. Alan Pinstein verified the fix. |
| 8365 | |
| 8366 | Daniel (10 October 2004) |
| 8367 | - Systems with 64bit longs no longer use strtoll() or our strtoll- replacement |
| 8368 | to parse 64 bit numbers. strtol() works fine. Added a configure check to |
| 8369 | detect if [constant]LL works and if so, use that in the strtoll replacement |
| 8370 | code to work around compiler warnings reported by Andy Cedilnik. |
| 8371 | |
| 8372 | Gisle (6 October 2004) |
| 8373 | - For USE_LIBIDN builds: Added Top-Level-Domain (TLD) check of host-name |
| 8374 | used in fix_hostname(). Checks if characters in 'host->name' (indirectly |
| 8375 | via 'ace_hostname') are legal according to the TLD tables in libidn. |
| 8376 | |
| 8377 | Daniel (6 October 2004) |
| 8378 | - Chih-Chung Chang reported that if you use CURLOPT_RESUME_FROM and enabled |
| 8379 | CURLOPT_FOLLOWLOCATION, libcurl reported error if a redirect happened even |
| 8380 | if the new URL would provide the resumed file. Test case 188 added to verify |
| 8381 | the fix (together with existing test 99). |
| 8382 | |
| 8383 | - Dan Fandrich fixed a configure flaw for systems that need both nsl and socket |
| 8384 | libs to use gethostbyname(). |
| 8385 | |
| 8386 | - Removed tabs and trailing whitespace from lots of source files. |
| 8387 | |
| 8388 | Daniel (5 October 2004) |
| 8389 | - Made configure --with-libidn=PATH try the given PATH before the default |
| 8390 | paths to make it possible to override. |
| 8391 | |
| 8392 | - If idna_strerror() is present in libidn, we can use that instead of our |
| 8393 | internal replacement. This function was added by Simon in libidn 0.5.6 and |
| 8394 | is detected by configure. |
| 8395 | |
| 8396 | - It seems basename() on IRIX is in the libgen library and since we don't use |
| 8397 | that, configure finds libgen.h but not basename and then we get a compiler |
| 8398 | error because our basename() replacement doesn't match the proto in |
| 8399 | libgen.h. Starting now, we don't include the file if basename wasn't found |
| 8400 | as well. |
| 8401 | |
| 8402 | Daniel (4 October 2004) |
| 8403 | - Chris found a race condition resulting in CURLE_COULDNT_RESOLVE_HOST and |
| 8404 | potential crash, in the windows threaded name resolver code. |
| 8405 | |
| 8406 | Daniel (3 October 2004) |
| 8407 | - Replaced the use of isspace() in cookie.c with our own version instead since |
| 8408 | we have most data as 'char *' and that makes us pass in negative values if |
| 8409 | there is 8bit data in the string. Changing to unsigned causes too much |
| 8410 | warnings or too many required typecasts to the normal string functions. |
| 8411 | Harshal Pradhan identified this problem. |
| 8412 | |
| 8413 | Daniel (2 October 2004) |
| 8414 | - Bertrand Demiddelaer found a case where libcurl could read already freed |
| 8415 | data when CURLOPT_VERBOSE is used and a (very) persistent connection. It |
| 8416 | happened when the dns cache entry for the connection was pruned while the |
| 8417 | connection was still alive and then again re-used. We worked together on |
| 8418 | this fix. |
| 8419 | |
| 8420 | - Gisle Vanem provided code that displays an error message when the (libidn |
| 8421 | based) IDN conversion fails. This is really due to a missing suitable |
| 8422 | function in the libidn API that I hope we can remove once libidn gets a |
| 8423 | function like this. |
| 8424 | |
| 8425 | Daniel (1 October 2004) |
| 8426 | - Aleksandar Milivojevic reported a problem in the Redhat bugzilla (see |
| 8427 | https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=134133) and not to |
| 8428 | anyone involved in the curl project! This happens when you try to curl a |
| 8429 | file from a proftpd site using SSL. It seems proftpd sends a somewhat |
| 8430 | unorthodox response code (232 instead of 230). I relaxed the response code |
| 8431 | check to deal with this and similar cases. |
| 8432 | |
| 8433 | - Based on Fedor Karpelevitch's formpost path basename patch, file parts in |
| 8434 | formposts no longer include the path part. If you _really_ want them, you |
| 8435 | must provide your preferred full file name with CURLFORM_FILENAME. |
| 8436 | |
| 8437 | Added detection for libgen.h and basename() to configure. My custom |
| 8438 | basename() replacement function for systems without it, might be a bit too |
| 8439 | naive... |
| 8440 | |
| 8441 | Updated 6 test cases to make them work with the stripped paths. |
| 8442 | |
| 8443 | Daniel (30 September 2004) |
| 8444 | - Larry Campbell added CURLINFO_OS_ERRNO to curl_easy_getinfo() that allows an |
| 8445 | app to retrieve the errno variable after a (connect) failure. It will make |
| 8446 | sense to provide this for more failures in a more generic way, but let's |
| 8447 | start like this. |
| 8448 | |
| 8449 | - Günter Knauf and Casey O'Donnell worked out an extra #if condition for the |
| 8450 | curl/multi.h header to work better in winsock-using apps. |
| 8451 | |
| 8452 | - Jean-Philippe Barrette-LaPierre made buildconf run better on Mac OS X by |
| 8453 | properly using glibtoolize instead of plain libtoolize. (This is made if |
| 8454 | glibtool was found and used instead of plain libtool.) |
| 8455 | |
| 8456 | Daniel (29 September 2004) |
| 8457 | - Bertrand Demiddelaer fixed curl_easy_reset() so that it doesn't mistakingly |
| 8458 | enable the progress meter. |
| 8459 | |
| 8460 | Daniel (28 September 2004) |
| 8461 | - "Mekonikum" found out that if you built curl without SSL support, although |
| 8462 | your current SSL installation supports Engine, the compile fails. |
| 8463 | |
| 8464 | Daniel (27 September 2004) |
| 8465 | - When --with-ssl=PATH is used to the configure script, it no longer uses |
| 8466 | pkg-config to figure out extra details. That is now only done if no PATH is |
| 8467 | included or if SSL is checked for by default without the --with-ssl option. |
| 8468 | |
| 8469 | Daniel (25 September 2004) |
| 8470 | - Peter Sylvester pointed out that CURLOPT_SSLENGINE couldn't even be set to |
| 8471 | NULL when no engine was supported. It can now. |
| 8472 | |
| 8473 | Daniel (22 September 2004) |
| 8474 | - Dan Fandrich fixed three test cases to no longer use "localhost" but instead |
| 8475 | use "127.0.0.1" to avoid requiring that localhost resolves nicely. |
| 8476 | |
| 8477 | - Jean-Claude Chauve fixed an LDAP crash when more than one record was |
| 8478 | retrieved. |
| 8479 | |
| 8480 | Daniel (19 September 2004) |
| 8481 | - Andreas Rieke pointed out that when attempting to connect to a host without |
| 8482 | a service on the specified port, curl_easy_perform() didn't properly provide |
| 8483 | an error message in the CURLOPT_ERRORBUFFER buffer. |
| 8484 | |
| 8485 | Daniel (16 September 2004) |
| 8486 | - Daniel at touchtunes uses the FTP+SSL server "BSDFTPD-SSL from |
| 8487 | http://bsdftpd-ssl.sc.ru/" which accordingly doesn't properly work with curl |
| 8488 | when "AUTH SSL" is issued (although the server responds fine and everything) |
| 8489 | but requires that curl issues "AUTH TLS" instead. See |
| 8490 | http://curl.haxx.se/feedback/display.cgi?id=10951944937603&support=yes |
| 8491 | |
| 8492 | Introducing CURLOPT_FTPSSLAUTH that allows the application to select which |
| 8493 | of the AUTH strings to attempt first. |
| 8494 | |
| 8495 | - Anonymous filed bug report #1029478 which identified a bug when you 1) used |
| 8496 | a URL without properly seperating the host name and the parameters with a |
| 8497 | slash. 2) the URL had parameters to the right of a ? that contains a slash |
| 8498 | 3) curl was told to follow Location:s 4) the request got a response that |
| 8499 | contained a Location: to redirect to "/dir". curl then appended the new path |
| 8500 | on the wrong position of the original URL. |
| 8501 | |
| 8502 | Test case 187 was added to verify that this was fixed properly. |
| 8503 | |
| 8504 | Daniel (11 September 2004) |
| 8505 | - Added parsedate.c that contains a rewrite of the date parser currently |
| 8506 | provided by getdate.y. The new one is MUCH smaller and will allow us to run |
| 8507 | away from the yacc/bison jungle. It is also slightly lacking in features |
| 8508 | compared to the old one, but it supports parsing of all date formats HTTP |
| 8509 | involves (and a fair bunch of others). |
| 8510 | |
| 8511 | Daniel (10 September 2004) |
| 8512 | - As found out by Jonas Forsman, curl didn't allow -F to set Content-Type on |
| 8513 | text-parts. Starting now, we can do -F "name=daniel;type=text/extra". Added |
| 8514 | test case 186 to verify. |
| 8515 | |
| 8516 | - Bug report #1025986. When following a Location: with a custom Host: header |
| 8517 | replacement, curl only replaced the Host: header on the initial request |
| 8518 | and didn't replace it on the following ones. This resulted in requests with |
| 8519 | two Host: headers. |
| 8520 | |
| 8521 | Now, curl checks if the location is on the same host as the initial request |
| 8522 | and then continues to replace the Host: header. And when it moves to another |
| 8523 | host, it doesn't replace the Host: header but it also doesn't make the |
| 8524 | second Host: header get used in the request. |
| 8525 | |
| 8526 | This change is verified by the two new test cases 184 and 185. |
| 8527 | |
| 8528 | Daniel (8 September 2004) |
| 8529 | - Modified the test suite to be able to use and run with customized port |
| 8530 | numbers. This was always intended but never before possible. Now a simple |
| 8531 | change in the runtests.pl script can make all tests use different ports. |
| 8532 | The default ports in use from now on are 8990 to 8993. |
| 8533 | |
| 8534 | Daniel (2 September 2004) |
| 8535 | - Minor modification of an SSL-related error message. |
| 8536 | |
| 8537 | Daniel (31 August 2004) |
| 8538 | - David Tarendash found out that curl_multi_add_handle() returned |
| 8539 | CURLM_CALL_MULTI_PERFORM instead of CURLM_OK. |
| 8540 | |
| 8541 | Daniel (30 August 2004) |
| 8542 | - Make "Proxy-Connection: close" close the current proxy connection, as Roman |
| 8543 | Koifman found out. |
| 8544 | |
| 8545 | Daniel (24 August 2004) |
| 8546 | - Fixed a getdate problem by post-replacing the getdate.c file after the |
| 8547 | bison/yacc process to add the fix Harshal Pradhan suggested. The problem |
| 8548 | caused a crash on Windows when parsing some dates. |
| 8549 | |
| 8550 | Daniel (23 August 2004) |
| 8551 | - Roman Koifman pointed out that libcurl send Expect: 100-continue on POSTs |
| 8552 | even when told to use HTTP 1.0, which is not correct. Test case 180 and |
| 8553 | 181 verify this. |
| 8554 | |
| 8555 | - Added test case 182 to verify that zero byte transfers call the callback |
| 8556 | properly. |
| 8557 | |
| 8558 | Daniel (20 August 2004) |
| 8559 | - Alexander Krasnostavsky made the write callback get called even when a zero |
| 8560 | byte file is downloaded. |
| 8561 | |
| 8562 | Daniel (18 August 2004) |
| 8563 | - Ling Thio pointed out that when libcurl is built IPv6-enabled, it still did |
| 8564 | reverse DNS lookups when fed with a numerical IP-address (like |
| 8565 | http://127.0.0.1/), although it doesn't when built IPv6-disabled. libcurl |
| 8566 | should never do reverse lookups. |
| 8567 | |
| 8568 | Daniel (17 August 2004) |
| 8569 | - Kjetil Jacobsen noticed that when transferring a file:// URL pointing to an |
| 8570 | empty file, libcurl would return with the file still open. |
| 8571 | |
| 8572 | - Alexander Krasnostavsky pointed out that the configure script needs to define |
| 8573 | _THREAD_SAFE for AIX systems to make libcurl built really thread-safe. |
| 8574 | |
| 8575 | Also added a check for the xlc compiler on AIX, and if that is detect we use |
| 8576 | the -qthreaded compiler option |
| 8577 | |
| 8578 | Daniel (16 August 2004) |
| 8579 | - libcurl now allows a custom "Accept-Encoding:" header override the |
| 8580 | internally set one that gets set with CURLOPT_ENCODING. Pointed out by Alex. |
| 8581 | |
| 8582 | - Roland Krikava found and fixed a cookie problem when using a proxy (the |
| 8583 | path matching was wrong). I added test case 179 to verify that we now do |
| 8584 | right. |
| 8585 | |
| 8586 | Daniel (15 August 2004) |
| 8587 | - Casey O'Donnell fixed some MSVC makefile targets to link properly. |
| 8588 | |
| 8589 | Daniel (11 August 2004) |
| 8590 | - configure now defines _XOPEN_SOURCE to 500 on systems that need it to build |
| 8591 | warning-free (the only known one so far is non-gcc builds on 64bit SGI |
| 8592 | IRIX). (Reverted this change later as it caused compiler errors.) |
| 8593 | |
| 8594 | - the FTP code now includes the server response in the error message when the |
| 8595 | server gives back a 530 after the password is provided, as it isn't |
| 8596 | necessary because of a bad user name or password. |
| 8597 | |
| 8598 | Version 7.12.1 (10 August 2004) |
| 8599 | |
| 8600 | Daniel (10 August 2004) |
| 8601 | - In OpenSSL 0.9.7d and earlier, ASN1_STRING_to_UTF8 fails if the input is |
| 8602 | already UTF-8 encoded. This made the certificate verification fail if the |
| 8603 | remote server used a certificate with the name UTF-8 encoded. |
| 8604 | |
| 8605 | Work-around brought by Alexis S. L. Carvalho. |
| 8606 | |
| 8607 | Daniel (9 August 2004) |
| 8608 | - I fixed the configure script for krb4 to use -lcom_err as well, as I started |
| 8609 | to get link problems with it unless I did that on my Solaris 2.7 box. I |
| 8610 | don't understand why I started to get problems with this now! |
| 8611 | |
| 8612 | Daniel (5 August 2004) |
| 8613 | - Enrico Scholz fixed the HTTP-Negotiate service name to be uppercase as |
| 8614 | reported in bug report #1004105 |
| 8615 | |
| 8616 | Daniel (4 August 2004) |
| 8617 | - Gisle Vanem provided a fix for the multi interface and connecting to a host |
| 8618 | using multiple IP (bad) addresses. |
| 8619 | |
| 8620 | - Dylan Salisbury made libcurl no longer accept cookies set to a TLD only (it |
| 8621 | previously allowed that on the seven three-letter domains). |
| 8622 | |
| 8623 | Daniel (31 July 2004) |
| 8624 | - Joel Chen reported that the digest code assumed quotes around the contents a |
| 8625 | bit too much. |
| 8626 | |
| 8627 | Daniel (28 July 2004) |
| 8628 | - Bertrand Demiddelaer fixed the host name to get setup properly even when a |
| 8629 | connection is re-used, when a proxy is in use. Previously the wrong Host: |
| 8630 | header could get sent when re-using a proxy connection to a different target |
| 8631 | host. |
| 8632 | |
| 8633 | - Fixed Brian Akins' reported problems with duplicate Host: headers on re-used |
| 8634 | connections. If you attempted to replace the Host: header in the second |
| 8635 | request, you got two such headers! |
| 8636 | |
| 8637 | - src/Makefile.am now includes the Makefile.inc file to get info about files |
| 8638 | |
| 8639 | Daniel (26 July 2004) |
| 8640 | - Made "curl [URL] -o name#2" work as expected. If there's no globbing for the |
| 8641 | #-number, it will simply be used as #2 in the file name. |
| 8642 | |
| 8643 | - Bertrand Demiddelaer fixed testing with valgrind 2.1.x and added two missing |
| 8644 | newlines in the cookie informationals. |
| 8645 | |
| 8646 | Daniel (24 July 2004) |
| 8647 | - I fixed the autobuilds with ares, since they now need to have buildconf run |
| 8648 | in the ares dir before the configure script is run. |
| 8649 | |
| 8650 | - Added Casey O'Donnell's curl_easy_reset() function. It has a proto in |
| 8651 | curl/curl.h but we have no man page yet. |
| 8652 | |
| 8653 | Daniel (20 July 2004) |
| 8654 | - Added buildconf and buildconf.bat to the release archives, since they are |
| 8655 | handy for rebuilding curl when using a daily snapshot (and not a pure CVS |
| 8656 | checkout). |
| 8657 | |
| 8658 | Daniel (16 July 2004) |
| 8659 | - As suggested by Toby Peterson, libcurl now ignores Content-Length data if the |
| 8660 | given size is a negative number. Test case 178 verifies this. |
| 8661 | |
| 8662 | Daniel (14 July 2004) |
| 8663 | - Günter Knauf has made the Netware builds do without the config-netware.h |
| 8664 | files, so they are now removed from the dist packages. |
| 8665 | |
| 8666 | - Günter Knauf made curl and libcurl build with Borland again. |
| 8667 | |
| 8668 | - Andres Garcia fixed the common test 505 failures on windows. |
| 8669 | |
| 8670 | Daniel (6 July 2004) |
| 8671 | - Andrés GarcÃa found out why the windows tests failed on file:// "uploads". |
| 8672 | |
| 8673 | Daniel (2 July 2004) |
| 8674 | - Andrés GarcÃa reported a curl_share_cleanup() crash that occurs when no |
| 8675 | lock/unlock callbacks have been set and the share is cleaned up. |
| 8676 | |
| 8677 | Daniel (1 July 2004) |
| 8678 | - When using curl --trace or --trace-ascii, no trace messages that were sent |
| 8679 | by curl_easy_cleanup() were included in the trace file. This made the |
| 8680 | message "Closing connection #0" never appear in trace dumps. |
| 8681 | |
| 8682 | Daniel (30 June 2004) |
| 8683 | - Niels van Tongeren found that setting CURLOPT_NOBODY to TRUE doesn't disable |
| 8684 | a previously set POST request, making a very odd request get sent (unless |
| 8685 | you disabled the POST) a HEAD request with a POST request-body. I've now |
| 8686 | made CURLOPT_NOBODY enforce a proper HEAD. Added test case 514 for this. |
| 8687 | |
| 8688 | Daniel (29 June 2004) |
| 8689 | - Günter Knauf made the testcurl.pl script capable of using a custom setup |
| 8690 | file to easier run multiple autobuilds on the same source tree. |
| 8691 | |
| 8692 | - Gisle fixed the djgpp build and fixed a memory problem in some of the |
| 8693 | reorged name resolved code. |
| 8694 | |
| 8695 | - Fixed code to allow connects done using the multi interface to attempt the |
| 8696 | next IP when connecting to a host that resolves to multiple IPs and a |
| 8697 | connect attempt fails. |
| 8698 | |
| 8699 | Daniel (27 June 2004) |
| 8700 | - Based on Rob Stanzel's bug report #979480, I wrote a configure check that |
| 8701 | checks if poll() can be used to wait on NULL as otherwise select() should be |
| 8702 | used to do it. The select() usage was also fixed according to his report. |
| 8703 | |
| 8704 | Mac OS X 10.3 says "poll() functionality for Mac OS X is implemented via an |
| 8705 | emulation layer on top of select(), not in the kernel directly. It is |
| 8706 | recommended that programs running under OS X 10.3 prefer select() over |
| 8707 | poll(). Configure scripts should look for the _POLL_EMUL_H_ define (instead |
| 8708 | of _POLL_H_ or _SYS_POLL_H_) and avoid implementations where poll is not |
| 8709 | implemented in the kernel." |
| 8710 | |
| 8711 | Yes, we can probably use select() on most platforms but today I prefered to |
| 8712 | leave the code unaltered. |
| 8713 | |
| 8714 | Daniel (24 June 2004) |
| 8715 | - The standard curl_version() string now only includes version info about |
| 8716 | involved libraries and not about particular features. Thus it will no longer |
| 8717 | include info about IPv6 nor GSS. That info is of course still available in |
| 8718 | the feature bitmask curl_version_info() offers. |
| 8719 | |
| 8720 | - Replaced all occurances of sprintf() with snprintf(). This is mostly because |
| 8721 | it is "A Good Thing" rather than actually fixing any known problem. This |
| 8722 | will help preventing future possible mistakes to cause buffer overflows. |
| 8723 | |
| 8724 | - Major reorganization in the host resolve code (again). This time, I've |
| 8725 | modified the code to now always use a linked list of Curl_addrinfo structs |
| 8726 | to return resolved info in, no matter what resolver method or support that |
| 8727 | is available on the platform. It makes it a lot easier to write code that |
| 8728 | uses or depends on resolved data. |
| 8729 | |
| 8730 | Internally, this means amongst other things that we can stop doing the weird |
| 8731 | "increase buffer size until it works" trick when resolving hosts on |
| 8732 | IPv4-only with gethostbyname_r(), we support socks even on libcurls built |
| 8733 | with IPv6 enabled (but only to socks servers that resolve to an IPv4 |
| 8734 | address) and we no longer deep-copy or relocate hostent structs (we create |
| 8735 | Curl_addrinfo chains instead). |
| 8736 | |
| 8737 | The new "hostent to Curl_addrinfo" converter function is named Curl_he2ai() |
| 8738 | and is slightly naive and simple, yet I believe it is functional enough to |
| 8739 | work for libcurl. |
| 8740 | |
| 8741 | Daniel (22 June 2004) |
| 8742 | - David Cohen pointed out that RFC2109 says clients should allow cookies to |
| 8743 | contain least 4096 bytes while libcurl only allowed 2047. I raised the limit |
| 8744 | to 4999 now and made the used buffer get malloc()ed instead of simply |
| 8745 | allocated on stack as before. Extended test case 46 to include a cookie with |
| 8746 | very huge content to verify the fix. |
| 8747 | |
| 8748 | - Günter Knauf fixed getdate.y to remove a few warnings. I removed the |
| 8749 | ifdef'ed test we never ever use anyway. |
| 8750 | |
| 8751 | - Gisle Vanem fixed the certificate wildcard checks to support a '*'-letter |
| 8752 | anywhere in the wildcard string, support multiple '*'-letters in the |
| 8753 | wildcard and to allow the '*'-letter to match a string that includes a dot. |
| 8754 | |
| 8755 | Daniel (21 June 2004) |
| 8756 | - testcurl.sh is now removed completely, tests/testcurl.pl is the script to |
| 8757 | use when autobuilding curl! |
| 8758 | |
| 8759 | - Kjetil Jacobsen brought my attention to the fact that you cannot properly |
| 8760 | abort an upload with the readfunction callback, since returning 0 or -1 only |
| 8761 | stops the upload and libcurl will continue waiting for downloaded data and |
| 8762 | the server often waits for the rest of the upload data to arrive. |
| 8763 | |
| 8764 | Thus, I've now added the ability for read callbacks to return |
| 8765 | CURL_READFUNC_ABORT to abort an upload from a read callback. This will stop |
| 8766 | the transfer immediately with a CURLE_ABORTED_BY_CALLBACK return code. |
| 8767 | |
| 8768 | Test case 513 was added to verify that it works. I had to improve the test |
| 8769 | HTTP server too to dump the request to a file even when the client |
| 8770 | disconnects prematurely. |
| 8771 | |
| 8772 | Daniel (19 June 2004) |
| 8773 | - Luca Alteas provided a test case with a failing curl operation: when we POST |
| 8774 | to a site with --digest (or similar) set, and the server responded with a 302 |
| 8775 | Location: to the "authprobe" request, it was not treated correctly. We still |
| 8776 | will behave badly if FOLLOWLOCATION is enabled for this case, but I'm not |
| 8777 | in the mood to dive into this right now and will leave it as-is for now. |
| 8778 | Verified my fix with test case 177. |
| 8779 | |
| 8780 | Daniel (18 June 2004) |
| 8781 | - Gisle Vanem's patch that provides more details from the SSL layers (if you |
| 8782 | use an OpenSSL version that supports it). It also introduces two new types |
| 8783 | of data that can be sent to the debug callback: CURLINFO_SSL_DATA_IN and |
| 8784 | CURLINFO_SSL_DATA_OUT. |
| 8785 | |
| 8786 | - With David Byron's test server I could repeat his problem and make sure that |
| 8787 | POSTing over HTTPS:// with NTLM works fine now. There was a general problem |
| 8788 | with multi-pass authentication with non-GET operations with CONNECT. |
| 8789 | |
| 8790 | Daniel (16 June 2004) |
| 8791 | - Modified to keep the upload byte counter in an curl_off_t, not an int as |
| 8792 | before. 32bits is not enough. This is most likely the bug Jean-Louis Lemaire |
| 8793 | reported that makes 2GB FTP uploads to report error ("unaligned file sizes") |
| 8794 | when completed. |
| 8795 | |
| 8796 | Daniel (15 June 2004) |
| 8797 | - Luca Alteas reported a problem that I fixed: if you did a POST with |
| 8798 | CURLAUTH_DIGEST set but the server didn't require any authentication, |
| 8799 | libcurl would repeatedly send HEAD lots of times until it gives up. This was |
| 8800 | actually the case for all multi-pass authentications. Added test case 174, |
| 8801 | 175 and 176 to verify this. |
| 8802 | |
| 8803 | Daniel (14 June 2004) |
| 8804 | - Multipart formposts uploading files no longer inserts the files themselves |
| 8805 | into the huge prebuilt chunk. This enables libcurl to formpost files that is |
| 8806 | larger than the amount of system memory. When the file given is passed on |
| 8807 | stdin, libcurl still uses the old method of reading the full fill before the |
| 8808 | upload takes place. This approach was selected in order to not alter the |
| 8809 | behavior for existing applications, as when using stdin libcurl can't know |
| 8810 | the size of the upload and chunked transfer-encoding can only be used on |
| 8811 | HTTP 1.1 servers. |
| 8812 | |
| 8813 | Daniel (13 June 2004) |
| 8814 | - Gisle found out that we did wildcard cert name checks wrong, so that parts |
| 8815 | of the check wrongly was case sensitive. |
| 8816 | |
| 8817 | Daniel (11 June 2004) |
| 8818 | - Tim Sneddon brought a minor VMS fix to make curl build properly on his VMS |
| 8819 | machine. He also had some interesting libcurl patches... they might be able |
| 8820 | to do in a slightly nicer way. Discussions are in progress. |
| 8821 | |
| 8822 | Daniel (10 June 2004) |
| 8823 | - Gisle Vanem brought code cleanupsm better verbose output and better connect |
| 8824 | timeout handling when attempting to connect to a host that resolves to |
| 8825 | multiple IP addresses. |
| 8826 | |
| 8827 | - Steven Bazyl and Seshubabu Pasam pointed out a bug on win32 when freeing the |
| 8828 | path after a file:// transfer. |
| 8829 | |
| 8830 | Daniel (9 June 2004) |
| 8831 | - Alexander Krasnostavsky made 'configure --disable-http' work to build libcurl |
| 8832 | without HTTP support. I added a new return code for curl_formadd() in case |
| 8833 | libcurl is built with HTTP disable: CURL_FORMADD_DISABLED. |
| 8834 | |
| 8835 | - Alexander Krasnostavsky pointed out a missing file in the generated |
| 8836 | curllib.dsp file, and now people building with this should get a libcurl.lib |
| 8837 | file generated as it used to do before we generated this file. |
| 8838 | |
| 8839 | Daniel (8 June 2004) |
| 8840 | - Marty Kuhrt fixed a minor build problem for VMS. |
| 8841 | |
| 8842 | Daniel (7 June 2004) |
| 8843 | - Reverted the configure check from the 4th since it obviously didn't work. |
| 8844 | Remade it in a different manner that hopefully works better. |
| 8845 | |
| 8846 | Daniel (4 June 2004) |
| 8847 | - Günter Knauf brought patches to make curl build fine on NetWare again. |
| 8848 | |
| 8849 | - Made the configure checks for strerror_r() not exit the configure script |
| 8850 | when built for cross-compiling. |
| 8851 | |
| 8852 | Daniel (3 June 2004) |
| 8853 | - Chris Gaukroger pointed out that 'make test' attempts to run the tests even |
| 8854 | if curl is built cross-compiled. I've now made it output a short message |
| 8855 | instead, saying it isn't possible to do. |
| 8856 | |
| 8857 | - Alexander Krasnostavsky brought FTP 3rd party transfer support to libcurl. |
| 8858 | You can now use libcurl to transfer files between two remote hosts using |
| 8859 | FTP. There are a bunch of new options to control this with: |
| 8860 | CURLOPT_SOURCE_HOST |
| 8861 | CURLOPT_SOURCE_USERPWD |
| 8862 | CURLOPT_SOURCE_PATH |
| 8863 | CURLOPT_SOURCE_PORT |
| 8864 | CURLOPT_PASV_HOST |
| 8865 | CURLOPT_SOURCE_PREQUOTE |
| 8866 | CURLOPT_SOURCE_POSTQUOTE |
| 8867 | |
| 8868 | (They still remain to be documented properly in the curl_easy_setopt man |
| 8869 | page.) |
| 8870 | |
| 8871 | When using this, the ordinary CURLOPT_URL specifies the target URL, and you |
| 8872 | specify the source data with these additional options. ftp3rdparty.c is a |
| 8873 | new example source code showing how to use this. |
| 8874 | |
| 8875 | - Vincent Bronner fixed the HTTP Digest code to use the proxy user name and |
| 8876 | password when doing proxy authentication, it previously always used the host |
| 8877 | user name and password! |
| 8878 | |
| 8879 | Daniel (2 June 2004) |
| 8880 | - CURLOPT_UPLOAD and CURLOPT_PUT now do the exact same thing internally, which |
| 8881 | fixes some old confusions on when which of these should be used and what the |
| 8882 | differences are. |
| 8883 | |
| 8884 | - Applied Gisle's fixes to make curl build fine with lcc-win32 |
| 8885 | |
| 8886 | Version 7.12.0 (2 June 2004) |
| 8887 | |
| 8888 | Daniel (1 June 2004) |
| 8889 | - I clarified the --create-dirs option somewhat in the curl man page. |
| 8890 | |
| 8891 | - Renaud Duhaut corrected the curl_unescape man page. |
| 8892 | |
| 8893 | - David Byron modified one of Massimiliano Ziccardi's recent MSVC makefile |
| 8894 | changes to now again use the mm lib by default. |
| 8895 | |
| 8896 | Daniel (26 May 2004) |
| 8897 | - Mohun Biswas added release-zlib and debug-zlib targets to the MSVC libcurl |
| 8898 | Makefile |
| 8899 | |
| 8900 | - David Byron reported a problem with proxy authentication when doing CONNECT, |
| 8901 | like when accessing HTTPS sites wiht a proxy. This probably broke when I |
| 8902 | rewrote the auth stuff recently. |
| 8903 | |
| 8904 | - I added fileupload.c in the examples directory, showing how an upload to a |
| 8905 | file:// URL is made. |
| 8906 | |
| 8907 | Daniel (25 May 2004) |
| 8908 | - Massimiliano Ziccardi updated the MSVC makefiles. |
| 8909 | |
| 8910 | Daniel (24 May 2004) |
| 8911 | - libcurl now supports "uploading" to file:// URLs. Test 204 and 205 were |
| 8912 | added to verify. |
| 8913 | |
| 8914 | - Simon Josefsson added a idn_free() function in libidn 0.4.5 as a reaction to |
| 8915 | Gisle's previous mail. We now use this function, and thus we require libidn |
| 8916 | 0.4.5 or later. No earlier version will do. |
| 8917 | |
| 8918 | - Robert D. Young reported that CURLOPT_COOKIEFILE and CURLOPT_COOKIE could |
| 8919 | not be used both in one request. Fixed it and added test case 172 to verify. |
| 8920 | |
| 8921 | Daniel (21 May 2004) |
| 8922 | - While talking to host a.b.c, libcurl did wrongly not accept cookies that |
| 8923 | were set to the domain .a.b.c (that is with a dot prefix). This is now fixed |
| 8924 | and test case 171 verifies it. |
| 8925 | |
| 8926 | Daniel (20 May 2004) |
| 8927 | - Jesse Noller reported that the upload speed info reported by libcurl was |
| 8928 | wrong. The same was true for the download speed. Fixed now. |
| 8929 | |
| 8930 | Daniel (19 May 2004) |
| 8931 | - David Byron added test case 170 - this used to crash the previous version of |
| 8932 | curl. |
| 8933 | |
| 8934 | Daniel (17 May 2004) |
| 8935 | - Peter Sylvester's patch that addresses two flaws in the peer certificate |
| 8936 | name verification: |
| 8937 | o when multiple common names are used (as in the curl tests), the last name |
| 8938 | needs to be selected. |
| 8939 | o allow comparing with encoded values, at least with BMP and ISO latin1 |
| 8940 | encoded T61strings. |
| 8941 | |
| 8942 | - All 191 test cases run through the torture test OK! 'make test-torture' is |
| 8943 | now available in the root makefile (on configure-based environments). |
| 8944 | |
| 8945 | Daniel (14 May 2004) |
| 8946 | - With a slightly modified ftpserver.pl I've now run almost all tests through |
| 8947 | with runtests.pl -t. This is goodness! |
| 8948 | |
| 8949 | - Since I have been unable to contact the CVS admins for several months, I've |
| 8950 | decided that the current CVS hosting was not good enough. I've now moved the |
| 8951 | CVS repo once again, see README for updated cvs checkout instructions. |
| 8952 | |
| 8953 | Daniel (13 May 2004) |
| 8954 | - runtests.pl -t now runs fine all the way to test 100. I believe test case |
| 8955 | 100 fails because of an FTP server problem. |
| 8956 | |
| 8957 | Daniel (12 May 2004) |
| 8958 | - General cleanups all over to make libcurl survive and do well when a memory |
| 8959 | function returns NULL. runtests.pl -t now works fine for the first 26 test |
| 8960 | cases. |
| 8961 | |
| 8962 | Daniel (11 May 2004) |
| 8963 | - Seshubabu Pasam provided a patch that introduces curl_global_init_mem() - |
| 8964 | like normal curl_global_init() but allows the app to replace all memory |
| 8965 | functions with its own set. I modified it slightly. |
| 8966 | |
| 8967 | - Based on Luca Alteas' comments, I modified the curllib.dsp generation code. |
| 8968 | |
| 8969 | Daniel (10 May 2004) |
| 8970 | - Gisle mailed Simon Josefsson (of libidn fame) about the benefits of a |
| 8971 | separate free()-function by that lib to make sure the memory is freed by the |
| 8972 | same memory subsystem that allocated it. He responded positively and this |
| 8973 | will likely cause us to require a newer version of libidn as soon as Simon |
| 8974 | releases one with such a libidn_free() function. |
| 8975 | |
| 8976 | - James Bursa made runtests.pl's -t option work for any given test case, and I |
| 8977 | edited to allow -g too. Not even test case 1 worked... |
| 8978 | |
| 8979 | - Luca Altea made the nc= field not use quotes in outgoing HTTP Digest headers. |
| 8980 | |
| 8981 | - Andrés GarcÃa fixed a problem in the test script that made it fail to |
| 8982 | recognize our own running HTTP server. |
| 8983 | |
| 8984 | Daniel (7 May 2004) |
| 8985 | - James Bursa fixed the memanalyze.pl script to conder malloc(0) areas OK to |
| 8986 | free() and he made two failed-resolve error messages use the new display- |
| 8987 | name instead of the internally-used name. |
| 8988 | |
| 8989 | - Gisle Vanem tried curl with |
| 8990 | www.etdomenenavnkanmaksimaltinneholdesekstitrebokstaversliksomdette.com |
| 8991 | which caused problems, and I fixed the single zero byte buffer overwrite |
| 8992 | that occurred (due to a stupid protocol buffer size and parser). |
| 8993 | |
| 8994 | - Made the lib/curllib.dsp file get generated automaticly when a distribution |
| 8995 | package is made, with the msvcproj.* files as templates and all |
| 8996 | win32-sources added. I think this can be made to work better than the always |
| 8997 | lagging-behind previous approach. I'm not sure this builds a working project |
| 8998 | file right now though! |
| 8999 | |
| 9000 | Daniel (6 May 2004) |
| 9001 | - Michael Benedict brought a fix that fills in the errorbuffer properly when |
| 9002 | ares fails to resolve a name for a case not previously dealt with like this. |
| 9003 | |
| 9004 | Daniel (5 May 2004) |
| 9005 | - Joe Halpin fixed the annoying typecast warning in lib/ldap.c |
| 9006 | |
| 9007 | - Gisle Vanem fixes: |
| 9008 | o memdebug to not access NULL on several places |
| 9009 | o libcurl.def; curl_formparse is gone. |
| 9010 | o progress.c; fixed the percent values being trunced to 0. |
| 9011 | o if2ip.*; constified the 'interface' argument. |
| 9012 | |
| 9013 | - Tor Arntsen reported that many of his autobuilds froze and I found and fixed |
| 9014 | a problem introduced with the HTTP auth overhaul that could lead to a |
| 9015 | never-ending internal request-loop due to un-initialized variables! |
| 9016 | |
| 9017 | - Removed several compiler warnings on various compilers/platforms. |
| 9018 | |
| 9019 | Daniel (4 May 2004) |
| 9020 | - curl_formparse() has been removed from the library. It has been marked and |
| 9021 | mentioned as deprecated for several years. |
| 9022 | |
| 9023 | Daniel (3 May 2004) |
| 9024 | - Rewritten HTTP authentication code. The previous code could not properly |
| 9025 | deal with the added test cases 167, 168 and 169. I've now rewritten the code |
| 9026 | to better separate host and proxy authentication and not re-use the same |
| 9027 | variables as much as before as it proved non working in the more involved |
| 9028 | cases. All the current tests run OK now, and so do the new ones. The curl |
| 9029 | tool got a new option named --proxy-digest to enable HTTP Digest |
| 9030 | authentication with the proxy. I also made the library support it. |
| 9031 | |
| 9032 | - Gisle Vanem made the LDAP code work with wldap32.dll as supplied with |
| 9033 | Win-98/ME/2000/XP, so no extra .dlls are required when curl/libcurl is used |
| 9034 | on these Windows versions. |
| 9035 | |
| 9036 | Daniel (30 April 2004) |
| 9037 | - runtests.pl now scans the valgrind log for valgrind-detected memory leaks |
| 9038 | after each test case if valgrind was found and used. |
| 9039 | |
| 9040 | - I modified the app-code in curl to include the new lib/curlx.h and only |
| 9041 | access those functions using the curlx_-prefix in preparation for the future |
| 9042 | removal of several curl_-functions from the public libcurl API. |
| 9043 | |
| 9044 | - Introduced lib/curlx.h as a single header to provide the curlx_-functions |
| 9045 | to apps. |
| 9046 | |
| 9047 | - Added notices in the man pages for curl_getenv, curl_mprintf, curl_strequal |
| 9048 | and curl_strnequal that they are subject for removal in a future release. |
| 9049 | STOP USING THESE FUNCTIONS. |
| 9050 | |
| 9051 | - Mihai Ionescu noticed he couldn't do formposts with whitespace in the file |
| 9052 | names and yes, I broke that on April 23. Sigh. I fixed it now and added |
| 9053 | test case 166 to verify it. |
| 9054 | |
| 9055 | - Luca Altea pointed out a mistake left from the Digest patch of yesterday. |
| 9056 | |
| 9057 | Daniel (29 April 2004) |
| 9058 | - Made IDN domains work when sending requsts over HTTP proxy as well. Added |
| 9059 | test case 165 to verify the functionality. |
| 9060 | |
| 9061 | - Fixed a bug in the new internal host name setup when re-using connections. |
| 9062 | |
| 9063 | - James Bursa found out that curl_easy_duphandle() with ares-built libcurl |
| 9064 | created a bad handle that would crash in the first name resolve attempt. This |
| 9065 | is now fixed and test case 512 was added to verify it. |
| 9066 | |
| 9067 | - Luca Altea provided a major HTTP Digest code fix and cleanup. We now follow |
| 9068 | the Digest RFC a lot better. |
| 9069 | |
| 9070 | - Gisle Vanem made the SSL code use ERR_error_string_n() where applicable. |
| 9071 | |
| 9072 | Daniel (27 April 2004) |
| 9073 | - I remodeled Gisle's IDN code slightly and now we convert both the host name |
| 9074 | and proxy name to the ACE encoded version to use internally for resolves and |
| 9075 | cookies etc. They are now using one 'struct hostname' each that keep both |
| 9076 | the original name and the possibly encoded name. IDN resolves work for me |
| 9077 | now using IPv6, IPv4 and ares resolving. Even cookies on IDN sites seem to |
| 9078 | do right. I got some failures at first when CHARSET wasn't set at all which |
| 9079 | confused libidn completely and it decided by encoding of choice was |
| 9080 | 'ANSI_X3.4-1968'... |
| 9081 | |
| 9082 | - made 'configure --without-libidn' work |
| 9083 | |
| 9084 | Daniel (25 April 2004) |
| 9085 | - Fixed the src/hugehelp.c file to include "setup.h" instead of "config.h" to |
| 9086 | make the problems with USE_MANUAL on windows go away. |
| 9087 | |
| 9088 | - configure --without-ssl could still wrongly include some OpenSSL info in the |
| 9089 | Makefiles if pkg-config had info about OpenSSL. Bug #941762 reported by |
| 9090 | Martin. |
| 9091 | |
| 9092 | - Since we can now build and use quite a large set of 3rd party libraries, I |
| 9093 | decided I would make configure produce a summary at the end showing what |
| 9094 | libraries it uses and if not, what option to use to make it use that. I also |
| 9095 | added some other random info that is nice in a "configure summary" output. |
| 9096 | |
| 9097 | - Applied TommyTam's patch that now make curl work with telnet and stdin |
| 9098 | properly on Windows. |
| 9099 | |
| 9100 | - The changes for today below were made by me and Gisle Vanem. |
| 9101 | |
| 9102 | The file previously known as hostip.c has now undergone a huge cleanup and |
| 9103 | split: |
| 9104 | |
| 9105 | hostip.c explained |
| 9106 | ================== |
| 9107 | |
| 9108 | The main COMPILE-TIME DEFINES to keep in mind when reading the host*.c |
| 9109 | source file are these: |
| 9110 | |
| 9111 | CURLRES_IPV6 - this host has getaddrinfo() and family, and thus we use |
| 9112 | that. The host may not be able to resolve IPv6, but we don't really have to |
| 9113 | take that into account. Hosts that aren't IPv6-enabled have CURLRES_IPV4 |
| 9114 | defined. |
| 9115 | |
| 9116 | CURLRES_ARES - is defined if libcurl is built to use c-ares for asynchronous |
| 9117 | name resolves. It cannot have ENABLE_IPV6 defined at the same time, as |
| 9118 | c-ares has no IPv6 support. This can be Windows or *nix. |
| 9119 | |
| 9120 | CURLRES_THREADED - is defined if libcurl is built to run under (native) |
| 9121 | Windows, and then the name resolve will be done in a new thread, and the |
| 9122 | supported asynch API will be the same as for ares-builds. |
| 9123 | |
| 9124 | If any of the two previous are defined, CURLRES_ASYNCH is defined too. If |
| 9125 | libcurl is not built to use an asynchronous resolver, CURLRES_SYNCH is |
| 9126 | defined. |
| 9127 | |
| 9128 | The host*.c sources files are split up like this: |
| 9129 | |
| 9130 | hostip.c - method-independent resolver functions and utility functions |
| 9131 | hostasyn.c - functions for asynchronous name resolves |
| 9132 | hostsyn.c - functions for synchronous name resolves |
| 9133 | hostares.c - functions for ares-using name resolves |
| 9134 | hostthre.c - functions for threaded name resolves |
| 9135 | hostip4.c - IPv4 specific functions |
| 9136 | hostip6.c - IPv6 specific functions |
| 9137 | |
| 9138 | The hostip.h is the single united header file for all this. It defines the |
| 9139 | CURLRES_* defines based on the config*.h and setup.h defines. |
| 9140 | |
| 9141 | - Added function header comments to many functions in an attempt to better |
| 9142 | explain the purpose of them all. |
| 9143 | |
| 9144 | - configure --with-libidn is now supported. It makes the configure script |
| 9145 | check for libidn libs and include files in the prefix path given. If you |
| 9146 | say --with-libidn=/usr/local, it will check for the lib in /usr/local/lib |
| 9147 | and the includes in /usr/local/include etc. |
| 9148 | |
| 9149 | - curl_version_info() now returns a struct aged CURLVERSION_THIRD including |
| 9150 | libidn version info. The string curl_version() returns also includes libidn |
| 9151 | version info, if available. |
| 9152 | |
| 9153 | Version 7.11.2 (26 April 2004) |
| 9154 | |
| 9155 | Daniel (25 April 2004) |
| 9156 | - Erwin Authried pointed out that configure --disable-manual didn't do right |
| 9157 | if you already had a src/hugehelp.c source file present (which most people |
| 9158 | do I guess). It now uses the USE_MANUAL define properly. |
| 9159 | |
| 9160 | Daniel (23 April 2004) |
| 9161 | - Gisle Vanem found and fixed a memory leak when doing (failing) Windows |
| 9162 | threaded name resolves. |
| 9163 | |
| 9164 | - I also added test case 163 just to make sure -F "var=<file" works fine and |
| 9165 | can pass on characters such as newlines, carriage-return and tabs. |
| 9166 | |
| 9167 | - When we added test case 162 without adding the necessary requirement field |
| 9168 | in the test meta data we could see that curl didn't complain if you used |
| 9169 | --proxy-ntlm even if the underlying libcurl it uses has no NTLM support! I |
| 9170 | now made it check this first, and it now exists with a "the installed |
| 9171 | libcurl version doesn't support this" message if it happens again. |
| 9172 | |
| 9173 | Daniel (22 April 2004) |
| 9174 | - David Byron found and fixed a small bug with the --fail and authentication |
| 9175 | stuff added a few weeks ago. Turns out that if you specify --proxy-ntlm and |
| 9176 | communicate with a proxy that requires basic authentication, the proxy |
| 9177 | properly returns a 407, but the failure detection code doesn't realize it |
| 9178 | should give up, so curl returns with exit code 0. Test case 162 added to |
| 9179 | verify the functionality. |
| 9180 | |
| 9181 | - allow newlines in the contents when doing -F "var=[contents]" |
| 9182 | Robert Marlow reported. |
| 9183 | |
| 9184 | - If a transfer is found out to be only partial, libcurl will now treat that |
| 9185 | as a problem serious enough to skip the final QUIT command before closing |
| 9186 | the control connection. To avoid the risk that it will "hang" waiting for |
| 9187 | the QUIT response. Added test case 161 to verify this. |
| 9188 | |
| 9189 | Daniel (21 April 2004) |
| 9190 | - Modified the heuristics for dealing with the test 160 scenario. When a |
| 9191 | connection is re-used and nothing at all is received from it (because the |
| 9192 | server closes the connection), we will now retry the request on a fresh new |
| 9193 | connection. The previous ECONNRESET stuff from January 30 was removed again |
| 9194 | as it didn't detect the situation good enough. |
| 9195 | |
| 9196 | Daniel (20 April 2004) |
| 9197 | - Added test case 160 to verify that curl works correctly when it gets a |
| 9198 | connection reset when trying to re-use a connection. It should then simply |
| 9199 | create a new connection and resend the request. |
| 9200 | |
| 9201 | Daniel (19 April 2004) |
| 9202 | - No more 512 byte limit for host name (inclusing name + password) in libcurl. |
| 9203 | An added bonus is that we use less memory for the typical (shorter URL) |
| 9204 | case. |
| 9205 | |
| 9206 | - Cleaned up the sources to better use the terms 'hostname' and 'path' |
| 9207 | internally when referring to that data. The buffers used for keep that info |
| 9208 | is called 'namebuffer' and 'pathbuffer'. Much easier to read and understand |
| 9209 | than the previous mess. |
| 9210 | |
| 9211 | Daniel (15 April 2004) |
| 9212 | - Modified runtests.pl again to remove all log files in the log/ dir between |
| 9213 | each test, and then made -p display all non-zero byte files in the log dir. |
| 9214 | It should make that data more usable and contain less rubbish. |
| 9215 | |
| 9216 | - ftpserver.pl now produces log files more similar to how the sws ones look |
| 9217 | and they now also contains a bit more details to help debugging ftp |
| 9218 | problems. |
| 9219 | |
| 9220 | - Removed the fixed maximum amount of dir levels the FTP code supported. |
| 9221 | Previously we had a fixed array for 100 levels, now we save space in each |
| 9222 | handle by allocating only for a few level by default and then enlarging that |
| 9223 | in case of need (with no maximum depth). Adjusted test case 142 to verify |
| 9224 | that 150 dir levels work fine. An added bonus is that we use less memory |
| 9225 | for the typical (not very deep) case. |
| 9226 | |
| 9227 | Daniel (14 April 2004) |
| 9228 | - Asking for CURL_IPRESOLVE_V6 when IPv6 addresses can't be resolved will |
| 9229 | now cause the resolve function to return NULL immediately. This flaw was |
| 9230 | pointed out by Gisle Vanem. |
| 9231 | |
| 9232 | - Gisle Vanem made curl -4/-6 actually set the desired option to libcurl. |
| 9233 | |
| 9234 | - runtests.pl now has a new option (-p) that will display "interesting" log |
| 9235 | files to stdout in case of a test failure. This is primarily intended to be |
| 9236 | used in the 'full-test' make target that is used by the autobuild tests, as |
| 9237 | we then get a much better chance to understand (remote) test failures based |
| 9238 | on autobuild logs alone. |
| 9239 | |
| 9240 | Daniel (13 April 2004) |
| 9241 | - Gisle Vanem made the multi interface work again on Windows even when built |
| 9242 | without ares. Before this, select() would return -1 during the name resolve |
| 9243 | phase since curl_multi_fdset() didn't return any fd_set at all which wasn't |
| 9244 | appreciated! |
| 9245 | |
| 9246 | - curl_easy_duphandle() now duplicates the tcp_nodelay info as well. |
| 9247 | |
| 9248 | Daniel (11 April 2004) |
| 9249 | - Applied David Byron's patch for the MSVC libcurl makefile for builds with |
| 9250 | zlib. |
| 9251 | |
| 9252 | Daniel (9 April 2004) |
| 9253 | - Dirk Manske improved the timer resolution for CURLINFO_*_TIME, it can now |
| 9254 | be down to usec if the system sypports it. |
| 9255 | |
| 9256 | Daniel (7 April 2004) |
| 9257 | - A request that sends "Expect: 100-continue" and gets nothing but a single |
| 9258 | 100 response back will now return a CURLE_GOT_NOTHING. Test 158 verifies. |
| 9259 | |
| 9260 | - The strtoofft() macro is now named curlx_strtoofft() to use the curlx_* |
| 9261 | approach fully. |
| 9262 | |
| 9263 | Daniel (6 April 2004) |
| 9264 | - Gisle Vanem's fixed bug #927979 reported by Nathan O'Sullivan. The problem |
| 9265 | made libcurl on Windows leak a small amount of memory in each name resolve |
| 9266 | when not used as a DLL. |
| 9267 | |
| 9268 | - New authentication code added, particularly noticable when doing POST or PUT |
| 9269 | with Digest or NTLM. libcurl will now use HEAD to negotiate the |
| 9270 | authentication and when done perform the requested POST. Previously libcurl |
| 9271 | sent POST immediately and expected the server to reply a final status code |
| 9272 | with an error and then libcurl would not send the request-body but instead |
| 9273 | send then next request in the sequence. |
| 9274 | |
| 9275 | The reason for this change is due to IIS6 barfing on libcurl when we attempt |
| 9276 | to POST with NTLM authentication. The reason for the problems is found in |
| 9277 | RFC2616 section 8.2.3 regarding how servers should deal with the 100 |
| 9278 | continue request-header: |
| 9279 | |
| 9280 | If it responds with a final status code, it MAY close the transport |
| 9281 | connection or it MAY continue to read and discard the rest of the |
| 9282 | request. |
| 9283 | |
| 9284 | Previous versions of IIS clearly did close the connection in this case, |
| 9285 | while this newer version decided it should "read and discard". That would've |
| 9286 | forced us to send the whole POST (or PUT) data only to have it discarded and |
| 9287 | then be forced to send it again. To avoid that huge penality, we switch to |
| 9288 | using HEAD until we are authenticated and then send the POST. |
| 9289 | |
| 9290 | The only actual drawback I can think of (except for the odd sites that might |
| 9291 | treat HEAD differently than they would treat POST/PUT when given the same |
| 9292 | URL) is that if you do POST with CURLAUTH_ANY set and the site requires NO |
| 9293 | authentication, libcurl will still use a HEAD in a first round and then do a |
| 9294 | POST. |
| 9295 | |
| 9296 | If you do a HEAD or a GET on a site using CURLAUTH_ANY, libcurl will send |
| 9297 | an un-authenticated request at once, which then is the only request if the |
| 9298 | site requires no auth. |
| 9299 | |
| 9300 | Alan Pinstein helped me work out the protocol details by figuring out why |
| 9301 | libcurl failed and what IIS6 expects. |
| 9302 | |
| 9303 | - The --limit-rate logic was corrected and now it works a lot better for |
| 9304 | higher speeds, such as '10m' or similar. Reported in bug report #930249. |
| 9305 | |
| 9306 | - Introducing curlx_tvnow() and curlx_tvdiff() using the new curlx_* fashion. |
| 9307 | #include "timeval.h" from the lib dir to get the protos etc. Note that |
| 9308 | these are NOT part of the libcurl API. The curl app simply uses the same |
| 9309 | source files as the library does and therefore the file needs to be compiled |
| 9310 | and linked with curl too, not just when creating libcurl. |
| 9311 | |
| 9312 | - lib/strerror.c no longer uses sys_nerr on non-windows platforms since it |
| 9313 | isn't portable enough |
| 9314 | |
| 9315 | Daniel (2 April 2004) |
| 9316 | - In the curl_strnqual.3 man page, we now prepend the man3 dir to the file |
| 9317 | name to work better. As pointed out by Robin Kay. |
| 9318 | |
| 9319 | - Andrés GarcÃa updated the mingw makefiles. |
| 9320 | |
| 9321 | - Dirk Manske fixed a problem I recently added in the progress meter code that |
| 9322 | broke subsecond resolution for CURLINFO_TOTAL_TIME. He also pointed out a |
| 9323 | mistake in the code that produces the final update of the progress meter |
| 9324 | that would often prevent it from actually being updated that final time. |
| 9325 | |
| 9326 | Daniel (1 April 2004) |
| 9327 | - Dirk Manske fixed a memory leak that happened when we use ares for name |
| 9328 | resolves and decides to time-out before ares does it. This fix uses the |
| 9329 | brand new ares_cancel() function which is not present in c-ares 1.1.0. |
| 9330 | |
| 9331 | When told to enable ares, the configure script now checks for presence of |
| 9332 | the ares_cancel function to alert users if they attempt to use a too old |
| 9333 | c-ares library. |
| 9334 | |
| 9335 | Daniel (31 March 2004) |
| 9336 | - Roy Shan fixed a flaw that prevented ares name resolve timeouts to occur! |
| 9337 | |
| 9338 | - Dirk Manske found out that libcurl timed out waiting for resolves far too |
| 9339 | easy when libcurl was built to use (c-)ares for name resolving. |
| 9340 | |
| 9341 | - Further Digest fixing and a successful test case 153 now makes me believe |
| 9342 | Mitz Wark's problems are fixed. |
| 9343 | |
| 9344 | - Andres Garcia figured out that test case 63, while working, only proved a |
| 9345 | flaw in libcurl's 'http_proxy' parser when a user name and password is |
| 9346 | provided. The user name was not extracted properly (and 'http' was always |
| 9347 | used as user name). |
| 9348 | |
| 9349 | - Andrés GarcÃa fixed compiler warnings in our ioctlsocket() usage. |
| 9350 | |
| 9351 | Daniel (30 March 2004) |
| 9352 | - Joe Halpin faced problems with the getnameinfo() argument ai_flags and the |
| 9353 | particular bit named 'NI_WITHSCOPEID' on Solaris 9 for Intel. I've now |
| 9354 | written a configure test that checks for a working NI_WITHSCOPEID |
| 9355 | implemenation. No code uses the result from this test yet, it is still |
| 9356 | experimental. James Carlson wrote in comp.unix.solaris: "It's a bug |
| 9357 | (5006623) -- it's not supported and shouldn't be in the header file." |
| 9358 | |
| 9359 | - I provided Mitz Wark with a first patch in order to fix libcurl's problems |
| 9360 | to re-negotiate Digest authentication (when 'stale=true' is included in the |
| 9361 | response header). |
| 9362 | |
| 9363 | - Roy Shan discovered that the multi interface didn't properly timeout name |
| 9364 | lookups which could make handles get stuck in that state and thus never get |
| 9365 | completed. I've produced a first test patch that attempts to correct this. |
| 9366 | |
| 9367 | - David Byron's patch was appplied to make CURLOPT_FAILONERROR work nicely |
| 9368 | even with authentcations such as NTLM or Digest enabled. Test cases 150, 151 |
| 9369 | and 152 were added to verify the functionality. |
| 9370 | |
| 9371 | Daniel (29 March 2004) |
| 9372 | - Gisle Vanem updated files for the djgpp/MS-DOS build. |
| 9373 | |
| 9374 | - Andrés GarcÃa helped me work out a fix for the runtests.pl script to make |
| 9375 | the file:// tests run fine when tested with the mingw-built version of curl. |
| 9376 | |
| 9377 | - Fixed an include issue with netinet/tcp.h on AIX, based on input by Tor. |
| 9378 | This also required a minor fix of the configure script. |
| 9379 | |
| 9380 | - The postit2.c source example used the wrong struct name for the post data. |
| 9381 | |
| 9382 | Daniel (26 March 2004) |
| 9383 | - Gisle Vanem improved IPv6 support on Windows by making the curl build use |
| 9384 | the correct getaddrinfo() function. |
| 9385 | |
| 9386 | Daniel (25 March 2004) |
| 9387 | - It turned out that AIX, despite having a "thread-safe libc", doesn't offer |
| 9388 | all traditional functions thread-safe. This URL is informative on this |
| 9389 | subject: |
| 9390 | |
| 9391 | http://publibn.boulder.ibm.com/doc_link/en_US/a_doc_lib/aixprggd/ \ |
| 9392 | genprogc/thread_quick_ref.htm |
| 9393 | |
| 9394 | As a result of this, we now check for three *_r() functions on recent AIX |
| 9395 | versions as well that the URL mentions aren't thread-safe in AIX 5.1. |
| 9396 | |
| 9397 | - renamed curl_strerror.[ch] to strerror.[ch] |
| 9398 | |
| 9399 | - Joe Halpin added CURLOPT_TCP_NODELAY and --tcp-nodelay to make it possible |
| 9400 | for users to disable the Nagle algorthim-usage. |
| 9401 | |
| 9402 | - Tor Arntsen provided some interesting strerror_r() knowledge. glibc has its |
| 9403 | own API which differs from the POSIX one. Daniel adjusted the configure |
| 9404 | script to detect the version in use, and the code now uses the new defines |
| 9405 | accordingly. |
| 9406 | |
| 9407 | - Fixed some build flaws with the new lib/curl_strerror.c source file. |
| 9408 | |
| 9409 | Daniel (24 March 2004) |
| 9410 | - Gisle Vanem's fix to replace the bad use of strerror(). This introduces |
| 9411 | Curl_strerror() that attempts to be thread-safe _and_ works on Windows too! |
| 9412 | |
| 9413 | - Tor Arntsen spell-fixed lots of libcurl man pages. |
| 9414 | |
| 9415 | - Tor Arntsen made testcurl.pl work with older perl 5 versions, and Daniel |
| 9416 | made it not use chdir .. to go back, as that isn't very good when you've |
| 9417 | setup a testdir containing symlinks. |
| 9418 | |
| 9419 | - Added a check for strerror_r() in the configure script. |
| 9420 | |
| 9421 | Daniel (23 March 2004) |
| 9422 | - Added Greg Hewgill's testcurl.pl script to CVS. We have not moved over to |
| 9423 | use this script for the real distributed testing just yet, but it is only |
| 9424 | a matter of time. |
| 9425 | |
| 9426 | - Gisle Vanem provided code that makes curl report a better error message |
| 9427 | if --interface fails on windows. |
| 9428 | |
| 9429 | - The regular progress meter is now fixed to never wrap due to long lines. All |
| 9430 | fields are now static sized. If the time in the time fields get a time value |
| 9431 | that would represent a time that is 100 hours or more (if not, it remains |
| 9432 | using a HH:MM:SS display), it switches first to a "NNNd NNh" display (for |
| 9433 | days and hours) and if that isn't enough it switches to a "NNNd" display if |
| 9434 | it is more than 999 days. |
| 9435 | |
| 9436 | Several of the calculations were also moved to fixed-point math instead of |
| 9437 | using doubles. |
| 9438 | |
| 9439 | Daniel (22 March 2004) |
| 9440 | - Glen Nakamura noticed CURLINFO_CONTENT_LENGTH_DOWNLOAD didn't work as it |
| 9441 | used to do if CURLOPT_NOBODY is set TRUE. |
| 9442 | |
| 9443 | - Kevin Roth patched the cygwin package makefile and README to adjust to |
| 9444 | new cygwin packaging guidelines. |
| 9445 | |
| 9446 | - Enabled "NT responses" in the NTLM authentication. Doing this simply means |
| 9447 | that we provide an extra chunk of data in each "type-3 message". The only |
| 9448 | reason for doing this is that it seems that using only the "Lanmanager hash" |
| 9449 | (as we've been doing until now) doesn't support passwords longer than 14 |
| 9450 | characters and it turns out there are users out there who want to use |
| 9451 | libcurl and NTLM with such passwords! ;-) Seven NTLM-related test cases were |
| 9452 | updated accordingly. Mentioned as issue 29 in TODO-RELEASE, bug report |
| 9453 | #915609 |
| 9454 | |
| 9455 | - Moved the generated libcurl version info to a new header file, named |
| 9456 | curl/curlver.h. Now interested parties can include ONLY version info, should |
| 9457 | anyone want that (and it seems at least some windows resource files would). |
| 9458 | Mentioned as issue 27 in TODO-RELEASE. |
| 9459 | |
| 9460 | Daniel (21 March 2004) |
| 9461 | - Fixed the root Makefile to use tabs for the netware target. Günter Knauf |
| 9462 | pointed this out. |
| 9463 | |
| 9464 | - Marty Kuhrt's VMS cleanup |
| 9465 | |
| 9466 | - Thomas Schwinge made buildconf recognize ACLOCAL_FLAGS to invoke aclocal |
| 9467 | with particular pre-determined options. |
| 9468 | |
| 9469 | Version 7.11.1 (19 March 2004) |
| 9470 | |
| 9471 | Daniel (18 March 2004) |
| 9472 | - Tor Arntsen brought some info about SGI IRIX: |
| 9473 | |
| 9474 | IRIX supports 3 different executable/object formats, -32, -n32 and -64. |
| 9475 | -n32 is default 32-bit format, -32 is the "old" 32-bit format, and -64 is |
| 9476 | the 64-bit format. Libraries for the different formats are in lib, lib32 |
| 9477 | and lib64 respectively. |
| 9478 | |
| 9479 | We've now adjusted the configure script to adapt to this when scanning for |
| 9480 | 3rd party libs, such as OpenSSL. |
| 9481 | |
| 9482 | Daniel (17 March 2004) |
| 9483 | - Watz pointed out a few missing files in the MSVC project description file. |
| 9484 | |
| 9485 | - Günter Knauf brought patches, code and makefiles to build curl on Novell |
| 9486 | NetWare. |
| 9487 | |
| 9488 | Daniel (15 March 2004) |
| 9489 | - Lots of libcurl man pages were updated to contain references to other man |
| 9490 | pages the recognized way so that they appear as nice hyperlinks in the HTML |
| 9491 | versions. |
| 9492 | |
| 9493 | - buildconf now checks the m4 version too, since autoconf requires a GNU m4 |
| 9494 | version to build proper configure scripts. |
| 9495 | |
| 9496 | Daniel (12 March 2004) |
| 9497 | - Added CURLOPT_POSTFIELDSIZE_LARGE, the large file version of |
| 9498 | CURLOPT_POSTFIELDSIZE to allow POSTs larger than 2GB. |
| 9499 | |
| 9500 | - David Byron fixed an uninitialized variable case/crash. |
| 9501 | |
| 9502 | Daniel (10 March 2004) |
| 9503 | - Jeff Lawson fixed the SSL connection to deal with received signals during the |
| 9504 | connect. |
| 9505 | |
| 9506 | - Changed the OS string for win32 to become "i386-pc-win32". |
| 9507 | |
| 9508 | Daniel (9 March 2004) |
| 9509 | - Changed the internals to use curl_socket_t for socket variable type. This |
| 9510 | should enable us to build with less warnings on Windows, where SOCKET is |
| 9511 | used which is an unsigned int, while most other platforms use a mere int. |
| 9512 | |
| 9513 | - Modified lib/config-win32.h to build fine on MSVC again. |
| 9514 | |
| 9515 | Version 7.11.1-pre1 (8 March 2004) |
| 9516 | |
| 9517 | Daniel (8 March 2004) |
| 9518 | - Minor fix to make curl CURL_VERSION_LARGEFILE is only set if curl_off_t is |
| 9519 | larger than 4 bytes. |
| 9520 | |
| 9521 | Daniel (4 March 2004) |
| 9522 | - Improved PUT/POST with NTLM/Digest authentication, the so called issue 12. |
| 9523 | |
| 9524 | - Modified the test HTTP server a lot to work with the upcoming changes for |
| 9525 | PUT/POST with NTLM/Digest authentication (like test case 88). Added Andrés |
| 9526 | GarcÃa's win32-changes. Improved the logging. |
| 9527 | |
| 9528 | - Fixed the file:-related progress/getinfo stuff a bit more. |
| 9529 | |
| 9530 | Daniel (4 March 2004) |
| 9531 | - I corrected a problem with the multi interface when following a Location: |
| 9532 | header or when doing multiple-request authentications. A subsequent request |
| 9533 | could erroneously re-use a previous connection that was sent with |
| 9534 | Connection: close. Christopher R. Palmer reported. |
| 9535 | |
| 9536 | - Andrés GarcÃa patched curl to prevent warnings while compiling with mingw, |
| 9537 | mainly because it is now possible to have both WIN32 and HAVE_CONFIG_H |
| 9538 | defined. |
| 9539 | |
| 9540 | - When transferring files from a file: URL, the progress meter and other |
| 9541 | transfer metrics were not updated properly. |
| 9542 | |
| 9543 | - David Byron provided a "version resource" file to the curl executable for |
| 9544 | the windows builds. |
| 9545 | |
| 9546 | Daniel (3 March 2004) |
| 9547 | - David Byron's work on making libcurl only require winsock 1.1 on Windows |
| 9548 | machines. |
| 9549 | |
| 9550 | - More variable cleanups based on compiler warnings generated by Tor Arntsen's |
| 9551 | autobuilds with MIPSPro. |
| 9552 | |
| 9553 | - Joe Halpin helped us fix some pedantic compiler warnings on FreeBSD. |
| 9554 | |
| 9555 | - Applied Tom Bates' patch to build on nsr-tandem-nsk. |
| 9556 | |
| 9557 | - Dan Fandrich corrected some flaws in the configure GSS detection. |
| 9558 | |
| 9559 | Daniel (2 March 2004) |
| 9560 | - Fixed the libcurl code to use FORMAT_OFF_T for printf() formatting |
| 9561 | curl_off_t types internally. |
| 9562 | |
| 9563 | Daniel (1 March 2004) |
| 9564 | - Added CURL_VERSION_LARGEFILE as a feature-bit in the curl_version_info() |
| 9565 | response, that signals if this libcurl supports >2GB files. curl -V now |
| 9566 | outputs 'Largefile' in the Features: field if this is the case. Most systems |
| 9567 | are likely to support this. |
| 9568 | |
| 9569 | - We offer a CURL_FORMAT_OFF_T define in the public header, which can be used |
| 9570 | to printf() curl_off_t variables. We also modified the libcurl sources to |
| 9571 | use this define instead of the previous %Od approach (although I've left the |
| 9572 | O-flag functional in the code). This should also prevent compilers to warn |
| 9573 | on the home-grown option. |
| 9574 | |
| 9575 | - Fixed the resume-check code to test for a working resume at the end of the |
| 9576 | headers and not at the first body-byte. |
| 9577 | |
| 9578 | - CURLOPT_DNS_USE_GLOBAL_CACHE is now considered obsolete. Stop using it. If |
| 9579 | you need a global DNS cache for whatever reason, use the share interface and |
| 9580 | you'll get a global cache that works the way it should work. You can even |
| 9581 | have any number of global caches, all at your command. This is now also |
| 9582 | mentioned in the docs. |
| 9583 | |
| 9584 | - Made the *printf code support the z-flag to enable size_t printf() in a |
| 9585 | manner similar to how glibc allows it. To make printfing of this work on |
| 9586 | platforms with 64bit size_t and 32bit ints. If there even are any! ;-) |
| 9587 | |
| 9588 | - Christopher R. Palmer discovered that if you CURLOPT_FRESH_CONNECT and |
| 9589 | CURLAUTH_NTLM (or CURLAUTH_ANY and libcurl then picked NTLM), libcurl would |
| 9590 | loop without succeeding to authenticate due to the new connection that was |
| 9591 | made for all round-trips in the authentication. Now, the FRESH_CONNECT is |
| 9592 | remade to only matter for the first connection made with curl_easy_perform() |
| 9593 | and all the rest that might follow due to FOLLOWLOCATION or HTTP |
| 9594 | authentication are now ignoring that option. |
| 9595 | |
| 9596 | - Adjusted the QUIT code slightly since it could core-dump. |
| 9597 | |
| 9598 | - Corrected the test suite's FTP server to provide a correct size to the |
| 9599 | 'verifiedserver' request. |
| 9600 | |
| 9601 | Daniel (27 February 2004) |
| 9602 | - Joe Halpin made the FTP code send QUIT on the control connection before |
| 9603 | disconnecting the TCP connection. This is what good-behaving ftp clients |
| 9604 | should do. |
| 9605 | |
| 9606 | Daniel (26 February 2004) |
| 9607 | - David Byron updated several files to make curl build fine on MSVC 6. He |
| 9608 | also added the 'buildconf.bat' that works like the 'buildconf + configure' |
| 9609 | combo does on unixes. |
| 9610 | |
| 9611 | - Gisle Vanem made the memdebug stuff support calloc() as well. |
| 9612 | |
| 9613 | - Tor Arntsen pointed out that testcurl.sh needed to remove the generated |
| 9614 | files in order to have them re-generated in each build. |
| 9615 | |
| 9616 | - Andy Serpa found out that the share interface did not enjoy life when not |
| 9617 | having the lock and unlock callbacks set, even though documented to be |
| 9618 | OK. It still is OK, and now the code won't segfault anymore! |
| 9619 | |
| 9620 | Daniel (25 February 2004) |
| 9621 | - Based on a patch by Greg Hewgill I modified how long long is used in the |
| 9622 | mprintf code, as we can use a 64bit type with MSVC that is a long long |
| 9623 | equivalent. This corrects some weird large file behaviors on windows. |
| 9624 | |
| 9625 | - Tor Arntsen helped me work out --enable-debug to work better with different |
| 9626 | versions of the gcc and icc compilers. |
| 9627 | |
| 9628 | - Added CURLOPT_SHARE to the curl_easy_setopt.3 man page. |
| 9629 | |
| 9630 | Daniel (22 February 2004) |
| 9631 | - Applied the final pieces of Gisle Vanem's patch that brings a working name |
| 9632 | resolve timeout to the windows versions of curl! |
| 9633 | |
| 9634 | Daniel (21 February 2004) |
| 9635 | - David Byron's fix to allow the speed-limit logic work even if you set |
| 9636 | limit-rate. It does work on the expense of the rate limiter. |
| 9637 | |
| 9638 | Daniel (20 February 2004) |
| 9639 | - configure --enable-debug with gcc now also tries to detect the icc compiler |
| 9640 | (which somehow gets treated as if it is a gcc) to stop using all the gcc |
| 9641 | options with it, and we also provide -isystem options for each extra -I |
| 9642 | option the configure script has figured out (for OpenSSL, kerberos, zlib, |
| 9643 | Heimdal etc). This of course to prevent warnings on headers we don't have |
| 9644 | control of. |
| 9645 | |
| 9646 | Daniel (19 February 2004) |
| 9647 | - Doug Porter made libcurl use the HOME environment variable before the |
| 9648 | getpwuid results when looking for .netrc files. |
| 9649 | |
| 9650 | - If 'configure --enable-debug' is used with gcc, it now checks which gcc |
| 9651 | version it is and uses as picky compiler options as possible for the |
| 9652 | particular version. |
| 9653 | |
| 9654 | - Code that can be used in both the lib and in the curl app is now made to use |
| 9655 | the curlx_ prefix. The first function to be available like this is the |
| 9656 | curlx_strtoll() function. This is made to allow the app to use existing code, |
| 9657 | but without polluting the libcurl API. Further explanations posted here: |
| 9658 | |
| 9659 | http://curl.haxx.se/mail/lib-2004-02/0215.html |
| 9660 | |
| 9661 | Daniel (18 February 2004) |
| 9662 | - Fixed buildconf to not use "which" as AIX and Tru64 have what have been |
| 9663 | referred to as "horribly broken 'which' programs". |
| 9664 | |
| 9665 | - Made sure dns cache timeout set to -1 really means caching forever. |
| 9666 | |
| 9667 | Daniel (17 February 2004) |
| 9668 | - Made it possibly to build c-ares with the libcurl memdebug system to better |
| 9669 | track memory. |
| 9670 | |
| 9671 | Daniel (16 February 2004) |
| 9672 | - When using ares, we now initialize the ares 'channel' in curl_easy_init() |
| 9673 | and re-use that same handle during the entire curl handle's life-time. It |
| 9674 | improves performance. |
| 9675 | |
| 9676 | - Fixed a problem when displaying verbose for IPv6-enabled libcurls and |
| 9677 | re-used connections. Problem reported and fix verified by Grigory Entin. |
| 9678 | |
| 9679 | - Jeff Lawson fixed the version-check in the SOCKS5 code. |
| 9680 | |
| 9681 | Daniel (15 February 2004) |
| 9682 | - Fixed a case where a host cache entry was not flagged in-use properly when a |
| 9683 | cached entry was used. |
| 9684 | |
| 9685 | - Andrés GarcÃa's patch that checks for winmm in the configure script was |
| 9686 | applied. |
| 9687 | |
| 9688 | Daniel (13 February 2004) |
| 9689 | - Ben Greear's SO_BINDTODEVICE patch for the binding of the local end to a |
| 9690 | specific network interface. |
| 9691 | |
| 9692 | - Greg Hewgill found out that the variable holding 'contentlength' wasn't big |
| 9693 | enough to hold a large file! |
| 9694 | |
| 9695 | - Tor Arntsen fixed a 64bit-related problem in date-related code in the ftp |
| 9696 | department, and there was another potential problem in the name resolve code |
| 9697 | too. |
| 9698 | |
| 9699 | Daniel (11 February 2004) |
| 9700 | - Removed a few variables that were only set but never used, as some compilers |
| 9701 | warn about that and we do not like compiler warnings! |
| 9702 | |
| 9703 | - Removed the need for symlinks in the tests/data directory if curl is built |
| 9704 | outside of the source directory and the 'make test' is used. This was done |
| 9705 | by providing a "source dir path" to the scripts/servers. |
| 9706 | |
| 9707 | - Now, if the configure script can't find an nroff tool or an option to nroff |
| 9708 | to use to convert man pages with, it will completely switch off the built-in |
| 9709 | manual. |
| 9710 | |
| 9711 | - 'configure --disable-manual' completely disables the built-in manual from |
| 9712 | the curl command tool. |
| 9713 | |
| 9714 | - Andrés GarcÃa fixed the configure script and a minor source edit, and now |
| 9715 | he has managed to get msys/mingw to run configure and then build! |
| 9716 | |
| 9717 | Daniel (9 February 2004) |
| 9718 | - The default HTTP Accept: header was modified to the much simpler |
| 9719 | "Accept: */*". |
| 9720 | |
| 9721 | - P R Schaffner updated the curl-ssl spec file for RPMs. |
| 9722 | |
| 9723 | - Dominick Meglio brought lots of documentation for the share interface's man |
| 9724 | pages that were previously missing. |
| 9725 | |
| 9726 | - Tor Arntsen provided a patch that makes libcurl work-around a bug in the |
| 9727 | AIX5 implementation of getaddrinfo(). This makes the FTP PORT stuff work on |
| 9728 | IPv6-enabled AIX builds. |
| 9729 | |
| 9730 | - Ken Rastatter provided portability fixes for the curlgtk.c example, and now |
| 9731 | it runs on windows with GTK as well! |
| 9732 | |
| 9733 | Daniel (6 February 2004) |
| 9734 | - Andrés GarcÃa made the configure script find gethostbyname() fine when run |
| 9735 | with mingw on windows. |
| 9736 | |
| 9737 | - Modified the ldap code to use proper function pointers all over (instead of |
| 9738 | mixed data and function pointers) to work-around the picky MIPSPro compiler |
| 9739 | warnings. |
| 9740 | |
| 9741 | - A custom Host: header is only considered if the request is not made by |
| 9742 | following a location. After discussions with Tim Baker. |
| 9743 | |
| 9744 | Daniel (5 February 2004) |
| 9745 | - The libz part of the configure script now only set the two libz-related |
| 9746 | define HAVE_ZLIB_H and HAVE_LIBZ if both the lib and the header is found. |
| 9747 | If one is missing, none of the defines is set. |
| 9748 | |
| 9749 | - Andrés GarcÃa fixed the Mingw makefiles. |
| 9750 | |
| 9751 | - Len Krause reported that curl 7.9.X could do uploading from stdin without |
| 9752 | doing chunked encoding, which current curl cannot do even if you disable |
| 9753 | the transfer-encoding chunked header. Now it can again, and test case 98 |
| 9754 | verifies this functionality. |
| 9755 | |
| 9756 | - Tor Arntsen fixed a weird getaddrinfo() usage in the FTP code, preventing |
| 9757 | the IPv6-code for PORT work on AIX 5.2. We now also provide (better) error |
| 9758 | messages when bailing out in the that function. |
| 9759 | |
| 9760 | - Tor Arntsen now provides AIX and IRIX (using gcc, xlc and the MIPSPro |
| 9761 | compilers) automated build logs (http://curl.haxx.se/auto/) and we've fixed |
| 9762 | numerous minor quirks to make less warnings appear. |
| 9763 | |
| 9764 | Daniel (4 February 2004) |
| 9765 | - Based on a patch by Gilad, we now use the custom timeouts when waiting for a |
| 9766 | server to connect when using FTP PORT. Previously we always waited 10 |
| 9767 | seconds, no more no less. We now also changed the default (if no timeout is |
| 9768 | set) to wait 60 seconds for the connect before we fail. |
| 9769 | |
| 9770 | Daniel (3 February 2004) |
| 9771 | - Modified to link with c-ares instead of ares. |
| 9772 | |
| 9773 | Daniel (2 February 2004) |
| 9774 | - Added a configure test to check for which option the (g)nroff tool wants |
| 9775 | to extract plain text from the man pages. Tor Arntsen told us the AIX |
| 9776 | version of GNU gnroff doesn't support -man! |
| 9777 | |
| 9778 | - Added an undef of accept in memdebug.h to make curl build with --enable-debug |
| 9779 | on AIX 5.2 which seems to have accept defined. Reported by Tor Arntsen. |
| 9780 | |
| 9781 | - curl_version() now includes c-ares version info, and curl_version_info() now |
| 9782 | returns a struct with version SECOND that also includes that info. |
| 9783 | |
| 9784 | - We are now officially using c-ares for asynch name resolves. c-ares is the |
| 9785 | new library, based on the existing ares but with an extended and slightly |
| 9786 | modified API. |
| 9787 | |
| 9788 | - Dirk improved the ares timeout code, and now we also include the ares error |
| 9789 | string when we fail to resolve a name. |
| 9790 | |
| 9791 | - Another tweak to make test case 91 run fine. Now we have another bit on a |
| 9792 | connection that is set true if the connection is marked for 'retry'. That |
| 9793 | makes the connection get closed and re-opened and the HTTP-done code must |
| 9794 | not complain on the fact that no data was received. |
| 9795 | |
| 9796 | - Based on Dirk Manske's patch, I modified the name resolving with ares to |
| 9797 | feature a timeout for really slow lookups. It now defaults to 300 seconds, |
| 9798 | but is now adjusted to the CONNECTTIMEOUT/TIMOUE timeouts if one of them |
| 9799 | is set. |
| 9800 | |
| 9801 | - Fixed the inclusion of ca-bundle.h to really use the one in the build dir |
| 9802 | before the one in the source dir. Domenico Andreoli found out and reported. |
| 9803 | |
| 9804 | - Added test case 97, a simple POST with a custom Content-Type header |
| 9805 | replacing the original application/x-www-form-urlencoded one. |
| 9806 | |
| 9807 | Daniel (30 January 2004) |
| 9808 | - Added code that attempts to fix the test 91 failure. As has been figured out |
| 9809 | by Patrick Smith, the error happens because we re-use a connection that the |
| 9810 | server is just about to close and we even manage to send away the request |
| 9811 | without seeing an error. On the first read attempt we get a ECONNRESET. |
| 9812 | Starting now, we attempt to detect this and if so, we retry the request on a |
| 9813 | fresh connection. |
| 9814 | |
| 9815 | - I added test case 510 which is a custom program that does a POST using a |
| 9816 | read callback, with chunked transfer-encoding. |
| 9817 | |
| 9818 | - Adjusted one of the MPE/iX changes as it made test case 504 fail all over. |
| 9819 | |
| 9820 | - Added --socks as a recognized option. It works just like --proxy but sets a |
| 9821 | SOCKS5 proxy to use. SOCKS5 support has been available in libcurl for a |
| 9822 | while, just not provided by the curl tool. This does not currently work for |
| 9823 | IPv6-enabled libcurls. |
| 9824 | |
| 9825 | Daniel (29 January 2004) |
| 9826 | - Stadler Stephan pointed out that src/hugehelp.c included config.h without |
| 9827 | checking the define if its present... |
| 9828 | |
| 9829 | - Ken Hirsch provided patches to make curl build fine on the MPE/iX operating |
| 9830 | system. |
| 9831 | |
| 9832 | - Dan Fandrich compiled curl with lots of aggressively pedantic compiler |
| 9833 | options and thus found a few minor errors and did some general cleanups to |
| 9834 | avoid them. |
| 9835 | |
| 9836 | - Dirk Manske fixed a flaw in ares that prevented it to use non-blocking |
| 9837 | sockets properly. |
| 9838 | |
| 9839 | Daniel (28 January 2004) |
| 9840 | - Richard Bramante fixed chunked transfer-encoded "uploads" to send a final |
| 9841 | CRLF combo properly. |
| 9842 | |
| 9843 | Daniel (27 January 2004) |
| 9844 | - Made the response-headers during a CONNECT request to a proxy get passed on |
| 9845 | as regular headers, so they appear with -i/-I options and similar. |
| 9846 | |
| 9847 | - Based on a patch by Gisle Vanem, I've made the progress meter display |
| 9848 | properly switch to a GB-display when more than 9999MB have been transfered. |
| 9849 | |
| 9850 | Daniel (23 January 2004) |
| 9851 | - Gisle Vanem pointed out a curlrc parser problem/crash when an option with a |
| 9852 | required didn't have one and was on the last line of a file. |
| 9853 | |
| 9854 | - More Windows fixes for large files. We now build and link with |
| 9855 | ../lib/strtoofft.c in the app code since Curl_strtoll() is not a provided |
| 9856 | libcurl function... Perhaps we should consider a 'common' dir or similar |
| 9857 | where we put source code used in both the lib and the client. Or perhaps |
| 9858 | we'll just make this function available in the library... |
| 9859 | |
| 9860 | - Vincent Bronner found out the socks5 code crashed when no username was |
| 9861 | set. |
| 9862 | |
| 9863 | - Vincent Bronner spotted a problem with proxy username/password when re-using |
| 9864 | a persistent connection. |
| 9865 | |
| 9866 | - Fixed the progress meter display for files larger than 2^31 bytes. Gisle |
| 9867 | Vanem reported. |
| 9868 | |
| 9869 | Daniel (22 January 2004) |
| 9870 | - Gisle Vanem made strtoll() get used when curl is built with the mingw |
| 9871 | compiler. |
| 9872 | |
| 9873 | - Gisle Vanem fixed the compressed help text code to display properly. |
| 9874 | |
| 9875 | - Removed the '#define HttpPost' from the public header file, as curl_httppost |
| 9876 | is the proper name and it has been for quite some time now. Fixes another |
| 9877 | name space pollution. |
| 9878 | |
| 9879 | - Added 'curl_off_t' typedef in the public header file, to be used to provide |
| 9880 | large file sizes to the *_LARGE options. Adjusted the code all over to use |
| 9881 | this variable type instead of 'off_t'. This is an attempt to make the large |
| 9882 | file support work on more platforms. The configure script now checks the |
| 9883 | size of the curl_off_t instead of the plain off_t. |
| 9884 | |
| 9885 | Version 7.11.0 (22 January 2004) |
| 9886 | |
| 9887 | Daniel (21 January 2004) |
| 9888 | - Removed the defines in the public header file with TIMECOND_ prefixes. They |
| 9889 | have been obsolete since April 22nd 2002, and if this causes anyone any |
| 9890 | problems now it is very easy to just add CURL_ to the names. This corrects |
| 9891 | this name space pollution. |
| 9892 | |
| 9893 | Daniel (19 January 2004) |
| 9894 | - David Byron cleaned up how --trace with no option was treated, and also |
| 9895 | arguments in a config file without a required parameter! |
| 9896 | |
| 9897 | Daniel (16 January 2004) |
| 9898 | - Gisle Vanem fixed a few issues where compilers warned about variables |
| 9899 | possibly being used unassigned. |
| 9900 | |
| 9901 | - Minor Interix build problem fixed. |
| 9902 | |
| 9903 | Daniel (15 January 2004) |
| 9904 | - Peter Sylvester pointed out some necessary escaping needed in the |
| 9905 | acinclude.m4 file when automake 1.8 or later is used. |
| 9906 | |
| 9907 | Daniel (14 January 2004) |
| 9908 | - Vincent Bronner fixed the Curl_resolv() return code. This extends the fix |
| 9909 | Steve Green provided on december 3... |
| 9910 | |
| 9911 | Daniel (13 January 2004) |
| 9912 | - Luke Call made the win32 version of the password prompting function support |
| 9913 | backspace. |
| 9914 | |
| 9915 | - Dan Fandrich fixed the hugehelp source file to contain both a compressed and |
| 9916 | an uncompressed version in the distribution, so that more people easier can |
| 9917 | build curl with the compressed version. |
| 9918 | |
| 9919 | - Diego Casorran brought another AmigaOS build patch for native Amiga builds. |
| 9920 | |
| 9921 | - Matt Veenstra updated the Mac OS X framework files. |
| 9922 | |
| 9923 | - Brian R Duffy brought a section to the INSTALL file on how to build a |
| 9924 | SSL-enabled curl using the free Borland C++ compiler. He also updated the |
| 9925 | Borland lib/Makefile.b32. |
| 9926 | |
| 9927 | - I fixed the test case 509 which I broke yesterday. Now the libtest are |
| 9928 | compiled with an include path that points to the library's source dir, so |
| 9929 | that the libtests can include files from the source tree. This was made to |
| 9930 | make it possible to use the USE_SSLEAY define in the library test files. |
| 9931 | |
| 9932 | Daniel (12 January 2004) |
| 9933 | - Peter Sylvester brought code that now allows a callback to modified the URL |
| 9934 | even when the multi interface is used, and then libcurl will simulate a |
| 9935 | "follow location" to that new URL. Test 509 was added to test this feature. |
| 9936 | |
| 9937 | - Extended the time we retry servers in the test script, and I also made it |
| 9938 | retry the https and ftps servers before they are considered bad. I believe |
| 9939 | the previous approach could turn problematic on really slow hosts. |
| 9940 | |
| 9941 | Version 7.11.0-pre1 (12 January 2004) |
| 9942 | |
| 9943 | Daniel (11 January 2004) |
| 9944 | - Dominick Meglio pointed out FTPS should use default port 990 according to |
| 9945 | IANA. |
| 9946 | |
| 9947 | Daniel (8 January 2004) |
| 9948 | - Fixed the SPNEGO configure check to not use -R or other non-portable options |
| 9949 | in the LDFLAGS. Reported by Pierre in bug report #872930. |
| 9950 | |
| 9951 | Daniel (5 January 2004) |
| 9952 | - Dan Fandrich provided a fix on our zlib usage. |
| 9953 | |
| 9954 | - David J Meyer's patch that introduce large file support to libcurl was |
| 9955 | applied. New curl_easy_setopt options that accept 'off_t' arguments are: |
| 9956 | |
| 9957 | INFILESIZE_LARGE |
| 9958 | RESUME_FROM_LARGE |
| 9959 | MAXFILESIZE_LARGE |
| 9960 | |
| 9961 | Daniel (4 January 2004) |
| 9962 | - Based on Dominick Meglio's comments, I made our private version of |
| 9963 | gettimeofday() declared static. This would otherwise collide with the same |
| 9964 | function in other libs (like ares for example). |
| 9965 | |
| 9966 | - Added Dominick Meglio's description on how to build libcurl with ares |
| 9967 | on win32. |
| 9968 | Daniel (19 December) |
| 9969 | - CURLOPT_IPRESOLVE was not possible to set. |
| 9970 | |
| 9971 | - Gisle Vanem updated the djgpp build files. |
| 9972 | |
| 9973 | Daniel (18 December) |
| 9974 | - John McGowan reported a redirect-problem that happened if a site used a URL |
| 9975 | like "url.com?var=content" (without a proper slash) and from that address |
| 9976 | redirected the user-agent to an absolute directory. |
| 9977 | |
| 9978 | - David Byron made libcurl build fine with both the .NET and VC6 versions of |
| 9979 | MSVC |
| 9980 | |
| 9981 | Daniel (16 December) |
| 9982 | - Updated test 506 since it started to fail after the cache prune change |
| 9983 | yesterday. I also changed it slightly to feature a counter in each debug |
| 9984 | output for easier tracing. |
| 9985 | |
| 9986 | Daniel (15 December) |
| 9987 | - Old DNS cache entries are now only pruned after curl is done with a request, |
| 9988 | and not in the actual name resolve call. |
| 9989 | |
| 9990 | - corrected the --enable-ares patch |
| 9991 | |
| 9992 | - Giuseppe Attardi found and fixed a problem within libcurl that re-used |
| 9993 | already freed memory. |
| 9994 | |
| 9995 | Daniel (10 December) |
| 9996 | - Gisle Vanem reported that the dict support was broken. I broke it during my |
| 9997 | ftps-changes overhaul. I've now added a 'curlassert' function that can be |
| 9998 | used to verify expressions, to prevent future errors of the same |
| 9999 | kind. They're only present in debug-builds. |
| 10000 | |
| 10001 | - Diego Casorran made curl and libcurl possible to build natively (no more |
| 10002 | need for the ixemul library) on AmigaOS. |
| 10003 | |
| 10004 | - Dominick Meglio made configure --enable-ares support a given path to the |
| 10005 | installed ares lib, instead of always using it in the curl source tree. |
| 10006 | This also fixed the curl-config --libs output. |
| 10007 | |
| 10008 | - Eric S. Raymond patched a very minor man page format error in |
| 10009 | libcurl-errors.3 |
| 10010 | |
| 10011 | Daniel (8 December) |
| 10012 | - Fixed the flaw that made -lz appear twice on the link command line. |
| 10013 | |
| 10014 | - After correspondence with Gisle Vanem, I changed the 'connection aborted' |
| 10015 | error text when the FTP response reader failed to more specificly identify |
| 10016 | what the problem is. |
| 10017 | |
| 10018 | - Based on a patch from Dominick Meglio, curl-config --feature now outputs |
| 10019 | 'AsynchDNS' as a feature if libcurl was built with ares. The feature name |
| 10020 | is the same that 'curl -V' outputs, for simplicity. |
| 10021 | |
| 10022 | Daniel (3 December) |
| 10023 | - Marty Kuhrt made the build up-to-date on VMS, and moved most of the VMS- |
| 10024 | specific stuff in the client code to a separate header file. |
| 10025 | |
| 10026 | - Steve Green fixed a return code bug in Curl_resolv(), that made the socks5 |
| 10027 | code fail. |
| 10028 | |
| 10029 | - swalkaus at yahoo.com patched libcurl to ignore Content-Length: headers |
| 10030 | when Transfer-Encoding: chunked is used, as mandated by RFC2616. |
| 10031 | |
| 10032 | Daniel (2 December) |
| 10033 | - --ftp-pasv was added, which serves the only purpose of overriding a |
| 10034 | previously set --ftpport option. Starting now, --ftp-port is a recognized |
| 10035 | alias for --ftpport for consistency. |
| 10036 | |
| 10037 | - Giuseppe Attardi pointed out that we should use MSG_NOSIGNAL when we use |
| 10038 | send() and recv(). I added checks for the define in the configure script and |
| 10039 | adjusted the code accordingly. If the symbol is present, we won't attempt |
| 10040 | to ignore the SIGPIPE signal. |
| 10041 | |
| 10042 | Daniel (1 December) |
| 10043 | - Mathias Axelsson set up a bsdftpd-ssl server for me and I could make curl |
| 10044 | run fine against its FTPS implementation. Now these FTPS-related things |
| 10045 | work: |
| 10046 | o explicit and implicit FTPS |
| 10047 | o active (PORT) and passive (PASV) |
| 10048 | o upload and download |
| 10049 | o verified against bsdftpd-ssl and RaidenFTPD |
| 10050 | |
| 10051 | Daniel (27 November) |
| 10052 | - James Clancy made the Borland Makefiles up to date. |
| 10053 | |
| 10054 | - Markus Moeller improved the SPNEGO detection in the configure script. |
| 10055 | |
| 10056 | Daniel (25 November) |
| 10057 | - Dave May filed bug report #848371, identifying that if you'd do POST over a |
| 10058 | proxy to a https server, libcurl didn't POST at all, it just made a GET! It |
| 10059 | turned out to be because libcurl wrongly didn't consider the authentication |
| 10060 | "negotiation phase" to be complete yet. |
| 10061 | |
| 10062 | I added test case 95 to verify my fix for this. |
| 10063 | |
| 10064 | Daniel (24 November) |
| 10065 | - Thanks to Mathias Axelsson, I've been able to work on FTPS for libcurl and it |
| 10066 | seems to work somewhat fine now. |
| 10067 | |
| 10068 | The FTPS stuff is based on RFC2228 and the murray-auth-ftp-ssl draft |
| 10069 | (version 12). There seems to exist quite a few servers that have implemented |
| 10070 | the server side of this. |
| 10071 | |
| 10072 | We can now use ftps:// URLs to explicitly switch on SSL/TSL for the control |
| 10073 | connection and the data connection (dealing with two SSL connections forced |
| 10074 | me to change a lot of stuff in libcurl). |
| 10075 | |
| 10076 | Alternatively, and what seems to be the recommended way, we can set the new |
| 10077 | option CURLOPT_FTP_SSL to one of these values: |
| 10078 | |
| 10079 | CURLFTPSSL_NOPE, - do not attempt to use SSL |
| 10080 | CURLFTPSSL_TRY - try using SSL, proceed anyway otherwise |
| 10081 | CURLFTPSSL_CONTROL - SSL for the control connection or fail |
| 10082 | CURLFTPSSL_ALL - SSL for all communication or fail |
| 10083 | |
| 10084 | Any failure to set the desired level will make libcurl fail with the error |
| 10085 | code CURLE_FTP_SSL_FAILED. This new option makes a "normal" ftp:// transfer |
| 10086 | attempt to be made securely. |
| 10087 | |
| 10088 | I've been able to login and get files (passively) from Mathias' server using |
| 10089 | both ftps:// and CURLOPT_FTP_SSL. (I've made 'curl' understand the --ftp-ssl |
| 10090 | option that sets CURLFTPSSL_TRY.) |
| 10091 | |
| 10092 | - Gaz Iqbal fixed a range string memory leak. |
| 10093 | |
| 10094 | - Gisle Vanem fixed the Windows builds. |
| 10095 | |
| 10096 | - Added the new FTPSSL defines in curl/curl.h |
| 10097 | |
| 10098 | Daniel (20 November) |
| 10099 | - Josh Kapell filed bug report #845247 as he found an endless loop when |
| 10100 | getting a 407 back from a proxy when no user+password was given. Added test |
| 10101 | case 94 to verify the fix. |
| 10102 | |
| 10103 | Daniel (19 November) |
| 10104 | - Kevin Roth fixed a progress-bar problem on Windows. |
| 10105 | |
| 10106 | - While working with Nicolas Croiset's bug report #843739, I noticed two minor |
| 10107 | problems related to ftp partial downloads: if a partial transfer is |
| 10108 | detected, we must close the connection as we cannot know in what state it is |
| 10109 | anymore. This looks like a ProFTPD bug: |
| 10110 | http://curl.haxx.se/mail/lib-2003-11/0079.html |
| 10111 | |
| 10112 | Daniel (17 November) |
| 10113 | - Maciej W. Rozycki made the configure script use a cache variable for the |
| 10114 | writable argv test. This way, the default can be overridden better (for |
| 10115 | cross-compiles etc) |
| 10116 | |
| 10117 | Daniel (15 November) |
| 10118 | - Mathias Axelsson found out libcurl sometimes freed the server certificate |
| 10119 | twice, leading to crashes! |
| 10120 | |
| 10121 | Daniel (14 November) |
| 10122 | - Siddhartha Prakash Jain found a case with a bad resolve that we didn't |
| 10123 | properly bail out from, when using ares. |
| 10124 | |
| 10125 | Daniel (13 November) |
| 10126 | - Default Content-Type for parts in multipart formposts has changed to |
| 10127 | "application/octet-stream". This seems more appropriate, and I believe |
| 10128 | mozilla and the likes do this. In the same area: .html files now get |
| 10129 | text/html as Content-Type. (Pointed out in bug report #839806) |
| 10130 | |
| 10131 | - Gisle Vanem corrected the --progress-bar output by doing a flush of the |
| 10132 | output, which apparently makes it look better on at least windows, but |
| 10133 | possibly other platforms too. |
| 10134 | |
| 10135 | - Peter Sylvester identified a problem in the connect code, which made the |
| 10136 | multi interface on a IPv6-enabled Solaris box do bad. Test case 504 to be |
| 10137 | specific. I've spent some time to clean-up the Curl_connecthost() function |
| 10138 | now to use less duplicated code for the two different sections: IPv6 and |
| 10139 | IPv4. |
| 10140 | |
| 10141 | Daniel (11 November) |
| 10142 | - Added CURLOPT_NETRC_FILE. Use this to tell libcurl which file to use instead |
| 10143 | of trying to find a .netrc in the current user's home directory. The |
| 10144 | existing .netrc file finder is somewhat naive and is far from perfect on |
| 10145 | several platforms that aren't unix-style. If this option isn't set when |
| 10146 | CURLOPT_NETRC is set, the previous approach will still be used. |
| 10147 | |
| 10148 | The current .netrc check code now also support longer than 256 bytes path |
| 10149 | names. |
| 10150 | |
| 10151 | Daniel (10 November) |
| 10152 | - Kang-Jin Lee pointed out that the generated ca-bundle.h file shouldn't be |
| 10153 | written in the source dir if a different build dir is used. |
| 10154 | |
| 10155 | - After Sébastien Willemijns' bug report, we now check the separators properly |
| 10156 | in the 229-reply servers respond on a EPSV command and bail out better if |
| 10157 | the reply string is not RFC2428-compliant. |
| 10158 | |
| 10159 | Daniel (7 November) |
| 10160 | - Based on Gisle Vanem's patch, I made curl try harder to get the home |
| 10161 | directory of the current user, in order to find the default .curlrc file. |
| 10162 | We're also considering moving out the HOME-dir code from libcurl, and |
| 10163 | instead have the app pass in the path to the .netrc file (which is the only |
| 10164 | logic left in libcurl that uses the HOME dir). Then curl can use the home |
| 10165 | dir for that purpose too. |
| 10166 | |
| 10167 | - Ralph Mitchell's updated testcurl.sh to the script to take an existing |
| 10168 | directory name and build/run/test curl in there instead of trying to update |
| 10169 | from CVS. Using this approach, the script can now be used to test daily |
| 10170 | tarballs etc. |
| 10171 | |
| 10172 | - Gisle Vanem added a "resource file" to the Windows DLL builds, to contain |
| 10173 | information such as version number, library name, copyright info etc. |
| 10174 | |
| 10175 | Daniel (6 November) |
| 10176 | - curl checks if the existing libcurl supports things like --ntlm, --negotiate |
| 10177 | and --krb4 and returns error if not. |
| 10178 | |
| 10179 | - I added three new global defines in the curl/curl.h header: |
| 10180 | LIBCURL_VERSION_MAJOR, LIBCURL_VERSION_MINOR and LIBCURL_VERSION_PATCH. They |
| 10181 | are the three numbers in the library's version number, separated for easier |
| 10182 | usage. 'maketgz' was updated accordingly to generate these numbers properly |
| 10183 | when building release-archives. |
| 10184 | |
| 10185 | - Uninitialized variable fix, reported by both Marty Kuhrt and Benjamin |
| 10186 | Gerard. |
| 10187 | |
| 10188 | - Matt Veenstra provided build files to build libcurl as a "framework" under |
| 10189 | Mac OS X. See the lib/libcurl.framework.make for details. |
| 10190 | |
| 10191 | - Removed the defines of TRUE and FALSE from the curl/curl.h header file. |
| 10192 | They're not in our name space so we should not fiddle with them. |
| 10193 | |
| 10194 | Daniel (5 November) |
| 10195 | - Replaced the man page to HTML converter program with a new one: roffit. |
| 10196 | Makes nicer web pages. |
| 10197 | |
| 10198 | Daniel (4 November) |
| 10199 | - Troels Walsted Hansen fixed the MSVC makefiles to let them build curl fine |
| 10200 | on Windows. |
| 10201 | |
| 10202 | - Kevin Roth corrected the cygwin package generator and spell-fixed the |
| 10203 | comment in the ca-bundle.h file. |
| 10204 | |
| 10205 | Version 7.10.8 (1 November 2003) |
| 10206 | |
| 10207 | Daniel (31 October) |
| 10208 | - Assume that MDTM on an FTP server returns the timestamp using the UTC time |
| 10209 | zone. This changes the time CURLINFO_FILETIME returns for a given file over |
| 10210 | FTP, and will change existing uses of CURLOPT_TIMECONDITION. It will make |
| 10211 | the functionality more similar to how the HTTP one is already working. |
| 10212 | |
| 10213 | - Command line options that take numerical parameters (such as -y, -Y, -C etc) |
| 10214 | now report error and exit if the parameter isn't truly a number greater than |
| 10215 | or equal to zero. This helps users to notice bad usage earlier. Before, when |
| 10216 | a user forgot or missed to add a numerical parameter to an option, the |
| 10217 | command line parser would simply "eat" the following option and it would |
| 10218 | cause great confusion. |
| 10219 | |
| 10220 | Daniel (30 October) |
| 10221 | - David Hull made libcurl deal with NOBODY and HEADER for file:// the same way |
| 10222 | it already does for FTP: it provides HTTP-looking headers that provide info |
| 10223 | only about the file, without doing the actual transfer. The curl tool then |
| 10224 | lets --head do this. |
| 10225 | |
| 10226 | Daniel (29 October) |
| 10227 | - runtests.pl now checks for and use valgrind if present. It will redirect the |
| 10228 | valgrind results in log/valgrind[num] but it currently doesn't scan that |
| 10229 | file for any errors or anything, that is still only made manually. |
| 10230 | |
| 10231 | - David Hull made the file: URL parser also accept the somewhat sloppy file |
| 10232 | syntax: file:/path. I added test case 203 to verify this. |
| 10233 | |
| 10234 | Daniel (28 October) |
| 10235 | - Dan C tracked down yet another weird behavior in the glibc gethostbyname_r() |
| 10236 | function for some specific versions (reported on 2.2.5 and 2.1.1), and |
| 10237 | provided a fix. On Linux machines with these glibc versions, non-IPv6 |
| 10238 | builds of libcurl would often fail to resolve perfectly resolvable host |
| 10239 | names. |
| 10240 | |
| 10241 | Daniel (26 October) |
| 10242 | - James Bursa found out that curl_msnprintf() could write the trailing |
| 10243 | zero-byte outside its given buffer size. This could happen if you generated |
| 10244 | a very long error message as then libcurl would overwrite the ERRORBUFFER |
| 10245 | with one byte. Using a non-existing very long local file:// name is one case |
| 10246 | that could make this occur. |
| 10247 | |
| 10248 | Daniel (24 October) |
| 10249 | - David Hull filed bug report #829827. It identified a problem with -C - if |
| 10250 | the full file already was downloaded and thus the server responded with a |
| 10251 | 416. libcurl would then wrongly use the Content-Length: header and expect |
| 10252 | that size to get transfer, causing a "hang" until the server closed the |
| 10253 | connection and then an error 18 ("still N bytes data left of the transfer"). |
| 10254 | |
| 10255 | Now we don't return any error at all, but I think libcurl should perhaps |
| 10256 | return some kind of info since the requested range was out of the size of |
| 10257 | the document. |
| 10258 | |
| 10259 | - Based on David Hull's fix in bug report #804599, we now check for solaris and |
| 10260 | gcc in configure and set the -mimpure-text link flag for linking the lib |
| 10261 | better. |
| 10262 | |
| 10263 | - I've introduced a -t option to the runtests.pl script. With that option set, |
| 10264 | the script runs special "memory torture" tests. For each test command line |
| 10265 | in that section, the script first runs the command line and counts the total |
| 10266 | amount of allocations made. It then runs the exact same command line again, |
| 10267 | forcing allocation number N to fail. It will try every N from 1 to the total |
| 10268 | number of amounts made. For every invoke, it checks that no memory was |
| 10269 | leaked as that would indicate a bad cleanup somewhere in the code. |
| 10270 | |
| 10271 | This is just beginning to work, and I've already made some corrections in |
| 10272 | libcurl code. When this code works somewhat fine, I'll make sure 'make test' |
| 10273 | in the root dir will run these tests as well. |
| 10274 | |
| 10275 | Daniel (23 October) |
| 10276 | - Georg Horn fixed how the CA verification is made. Verifications can now be |
| 10277 | made while at the same time the result of it can be ignored. This also |
| 10278 | affects the curl tool as -k can now be used together with --cacert or |
| 10279 | --capath. |
| 10280 | |
| 10281 | Daniel (22 October) |
| 10282 | - Gisle Vanem found out --disable-eprt didn't work and patched it. |
| 10283 | |
| 10284 | - Test case 91 was modified and could now repeat the problem Kevin Roth has |
| 10285 | reported, and the bug was fixed. |
| 10286 | |
| 10287 | - Dylan Ellicott added vc-libcurl-ssl-dll as a target to the root makefile |
| 10288 | to build a static libcurl that links with a shared OpenSSL using MSVC. |
| 10289 | |
| 10290 | Daniel (21 October) |
| 10291 | - Andrés GarcÃa updated the mingw32 makefiles. |
| 10292 | |
| 10293 | Version 7.10.8-pre5 (21 October 2003) |
| 10294 | |
| 10295 | Daniel (19 October) |
| 10296 | - Georg Horn made libcurl output more info on SSL failures when receiving |
| 10297 | data. |
| 10298 | |
| 10299 | Version 7.10.8-pre4 (18 October 2003) |
| 10300 | |
| 10301 | Daniel (17 October) |
| 10302 | - Dominick Meglio implemented CURLOPT_MAXFILESIZE and --max-filesize. |
| 10303 | |
| 10304 | - Made libcurl show verbose info about what auth type and user name that is |
| 10305 | being sent in its HTTP request-headers. |
| 10306 | |
| 10307 | Daniel (16 October) |
| 10308 | - Removed support for CURLOPT_PASSWDFUNCTION and CURLOPT_PASSWDDATA. libcurl |
| 10309 | no longer prompt for passwords under any circumstances. Password prompting |
| 10310 | was instead moved to curl, which now prompts for password if -u or -U lack |
| 10311 | it. This solves the problem Kevin Roth reported when curl prompted for |
| 10312 | password twice when doing NTLM authentication. |
| 10313 | |
| 10314 | - I rewrote the SSL subjectAltName check to avoid having to rely on OpenLDAP- |
| 10315 | licensed derivate code. |
| 10316 | |
| 10317 | Daniel (15 October) |
| 10318 | - Avoid doing getsockopt() on Windows to verify connects. It seems that this |
| 10319 | hogs Windows machines when libcurl is being used multi-threaded (with > ~50 |
| 10320 | threads). Andrew Fuller helped us verify and test this. |
| 10321 | |
| 10322 | Daniel (14 October) |
| 10323 | - Kimmo Kinnunen fixed a crash with duphandle() when CURLDEBUG is set. |
| 10324 | |
| 10325 | - Gisle Vanem made libcurl build and work with IPv6 on Windows. |
| 10326 | |
| 10327 | Daniel (13 October) |
| 10328 | - Giuseppe Attardi reported yet another segfault with ares and the multi |
| 10329 | interface. Me fixed. |
| 10330 | |
| 10331 | - Domenico Andreoli removed the extra LDFLAGS assignment in lib/Makefile.am |
| 10332 | that was reported about in the debian bug report #212086. |
| 10333 | |
| 10334 | Domenico also fixed two makefiles where we used 'gnroff' instead of the more |
| 10335 | portable $(NROFF). |
| 10336 | |
| 10337 | Daniel (12 October) |
| 10338 | - Dirk Manske made the share locking around DNS lookups slightly different to |
| 10339 | allow the share system's DNS lookups to run somewhat more |
| 10340 | independent/faster. |
| 10341 | |
| 10342 | Daniel (9 October) |
| 10343 | - Lachlan O'Dea fixed a resume problem: "If I set CURLOPT_RESUME_FROM, perform |
| 10344 | an HTTP download, then reset CURLOPT_RESUME_FROM to 0, the next download |
| 10345 | still has a Range header with a garbage value." bug report #820502 |
| 10346 | |
| 10347 | - Dominick Meglio made the inet_pton.c file build fine using MSVC. |
| 10348 | |
| 10349 | - The 'sws' test suite web server now #include setup.h from the lib directory. |
| 10350 | This makes it more portable easier. |
| 10351 | |
| 10352 | Version 7.10.8-pre3 (8 October 2003) |
| 10353 | |
| 10354 | Daniel (8 October) |
| 10355 | - Frank Ticheler provided a patch that fixes how libcurl connects to multiple |
| 10356 | addresses, if one of them fails (IPv4 code). |
| 10357 | |
| 10358 | Daniel (7 October) |
| 10359 | - Neil Dunbar provided a patch that now makes libcurl check SSL |
| 10360 | subjectAltNames when matching certs. This is apparently detailed in RFC2818 |
| 10361 | as the right thing to do. I had to add configure checks for inet_pton() and |
| 10362 | our own (strictly speaking, code from BIND written by Paul Vixie) provided |
| 10363 | code for the function for platforms that miss it. |
| 10364 | |
| 10365 | - HTTP POST using the read callback didn't work, as Florian Schoppmann |
| 10366 | reported. |
| 10367 | |
| 10368 | Daniel (5 October) |
| 10369 | - Shared provided a few fixes to make libcurl build on BeOS |
| 10370 | out-of-the-box. New code for BeOS-style non-blocking sockets, provided by |
| 10371 | Shard and Jeremy Friesner. Modified the autoconf check for non-blocking |
| 10372 | sockets to check for this kind too. |
| 10373 | |
| 10374 | Daniel (4 October) |
| 10375 | - Vincent Bronner pointed out that if you set CURLOPT_COOKIE for a transfer |
| 10376 | and then set it to NULL in a subsequent one, the previous cookie was still |
| 10377 | sent off! |
| 10378 | |
| 10379 | - Jon Turner fixed a problem libcurl had when it failed on an FTP transfer due |
| 10380 | to a bad path, it would cause the next transfer to use a bad path as well. |
| 10381 | |
| 10382 | - Siddhartha Prakash Jain provided a patch with a fix for libcurl with ares, |
| 10383 | when working on IP-only names as we then could return "wait" status when the |
| 10384 | name in fact already was resolved. I edited the patch slightly to not expose |
| 10385 | asynch details to non-ares aware source code. |
| 10386 | |
| 10387 | Daniel (3 October) |
| 10388 | - Neil Spring posted the debian bug report #213180, and pointed out that using |
| 10389 | the name 'access' in a function prototype is not very wise as some compilers |
| 10390 | complain. |
| 10391 | |
| 10392 | - Peter Sylvester provided his and Jean-Paul Merlin's curlx.c example source |
| 10393 | code that shows how they use ssl and callbacks. |
| 10394 | |
| 10395 | Daniel (2 October) |
| 10396 | - James MacMillan's patch makes curl build on QNX 6.2.x. |
| 10397 | |
| 10398 | Daniel (26 September) |
| 10399 | - My daughter was born! |
| 10400 | |
| 10401 | Daniel (23 September) |
| 10402 | - Added support for -4/--ipv4 and -6/--ipv6 to force names to resolve to that |
| 10403 | particular IP version. They only work for IPv6-enabled libcurls. |
| 10404 | |
| 10405 | - curl -V now outputs 'SPNEGO' as a feature in case libcurl was built to |
| 10406 | support that. |
| 10407 | |
| 10408 | Version 7.10.8-pre2 (22 September 2003) |
| 10409 | |
| 10410 | Daniel (22 September) |
| 10411 | - Giuseppe Attardi found a segfault in libcurl when using the multi interface |
| 10412 | with ares and doing repeated operations against a non-resolving host name. |
| 10413 | |
| 10414 | Daniel (19 September) |
| 10415 | - Added the CURLOPT_IPRESOLVE option, that allows an application to select |
| 10416 | what kind of IP addresses he wants to use when resolving host names. This |
| 10417 | is only interesting when using host names that resolve addresses using more |
| 10418 | than one version of IP. |
| 10419 | |
| 10420 | - Applied Markus Moeller's patch that introduces SPNEGO support if libcurl |
| 10421 | is built with the FBopenssl libraries. curl_version_info() now returns |
| 10422 | info on SPNEGO availability. The patch also made the GSSAPI stuff work fine |
| 10423 | with the MIT GSS-library (the Heimdal one still works too). |
| 10424 | |
| 10425 | Daniel (16 September) |
| 10426 | - Doing PUT with --digest failed, as reported in bug report #805853. |
| 10427 | |
| 10428 | - Using --anyauth that picked NTLM, and then a redirect closed the connection |
| 10429 | and took curl to a second NTLM page made curl fail. Bug report #806328 |
| 10430 | identified the problem, test case 90 was added to verify the fix. |
| 10431 | |
| 10432 | Daniel (14 September) |
| 10433 | - codemastr brought a patch for ares to make the Windows portions of it work |
| 10434 | properly on NT4. I uploaded a new diff and updated the docs on where to get |
| 10435 | it etc. |
| 10436 | |
| 10437 | - Jeff Pohlmeyer tracked down a very hard-to-find bug where we removed a |
| 10438 | cached DNS entry even though it may be in use, which caused "random" memory |
| 10439 | to get overwritten and thus "random" crashes. |
| 10440 | |
| 10441 | Daniel (12 September) |
| 10442 | - Based on a bug report by David Kimdon, I made the runtests.pl script clear |
| 10443 | all possible proxy environment variables before the tests are run. |
| 10444 | |
| 10445 | - By default, easy handles within a multi handle now share DNS cache. |
| 10446 | |
| 10447 | - Tim Bartley brought a patch that makes the GSSNEGOTIATE option work for |
| 10448 | Microsoft's "Negotiate" authentication as well. |
| 10449 | |
| 10450 | Daniel (11 September) |
| 10451 | - A zero-length proxy string confused FTP transfers. |
| 10452 | |
| 10453 | - Bjorn Reese found a case with an uninitialized pointer, only present when |
| 10454 | built for ares. |
| 10455 | |
| 10456 | Version 7.10.8-pre1 (8 September 2003) |
| 10457 | |
| 10458 | Daniel (7 September) |
| 10459 | - Jurij Smakov found out that the non-OpenSSL MD5 code was not working on |
| 10460 | Alpha (or ia64). Only the OpenSSL-version did. I made a fix I think corrects |
| 10461 | the problem. |
| 10462 | |
| 10463 | Daniel (5 September) |
| 10464 | - Kevin Fisk reported that configure --enable-thread didn't work. I fixed. |
| 10465 | |
| 10466 | - De-macrofied the lib/hash.c source code somewhat. |
| 10467 | |
| 10468 | Daniel (4 September) |
| 10469 | - CURLINFO_HTTPAUTH_AVAIL and CURLINFO_PROXYAUTH_AVAIL added, Based on Joerg |
| 10470 | Mueller-Tolk's patch, |
| 10471 | |
| 10472 | Early (4 September) |
| 10473 | - Added CURLOPT_FTP_RESPONSE_TIMEOUT - allows user to set strict timeout |
| 10474 | requirements on the FTP server's ability to respond to individual commands |
| 10475 | without placing global requirements on transfer or connect time. Files |
| 10476 | affected: |
| 10477 | - include/curl/curl.h |
| 10478 | Added option CURLOPT_FTP_RESPONSE_TIMEOUT |
| 10479 | - lib/ftp.c |
| 10480 | Added branch inside Curl_GetFTPResponse to check for |
| 10481 | data->set.ftp_response_timeout |
| 10482 | - lib/url.c |
| 10483 | Modified Curl_setopt to recognize CURLOPT_FTP_RESPONSE_TIMEOUT |
| 10484 | - lib/urldata.h |
| 10485 | Added ftp_response_timeout to struct UserDefined |
| 10486 | |
| 10487 | Daniel (3 September) |
| 10488 | - Peter Pentchev found and fixed two problems in the test suite's web server |
| 10489 | code, that made it segfault at times. |
| 10490 | |
| 10491 | - Jörg Mueller-Tolk improved the proxy user+password handling, especially |
| 10492 | when providing a blank password. |
| 10493 | |
| 10494 | Daniel (2 September) |
| 10495 | - Fix for making CONNECT to proxies do the correct magic to allow NTLM, Digest |
| 10496 | and similar to work. |
| 10497 | |
| 10498 | Daniel (1 September) |
| 10499 | - Henrik Storner made libcurl work fine with OpenLDAP 2.1.22 (current). |
| 10500 | |
| 10501 | - Jeff Pohlmeyer added a proper error message for non-resolving hosts when |
| 10502 | using ares for lookups. |
| 10503 | |
| 10504 | Daniel (25 August) |
| 10505 | - John McGowan reported that curl -k still failed if the HTTPS server's CN |
| 10506 | field wasn't obtainable. This was due to the CURLOPT_SSL_VERIFYHOST being |
| 10507 | set to 1, and libcurl failed if the CN was missing. Starting now, having it |
| 10508 | set to 1 will simply output a warning if no CN could be obtained (as having |
| 10509 | a mismatch is OK). |
| 10510 | |
| 10511 | Daniel (21 August) |
| 10512 | - Vincent Sanders provided a fix for name resolving when linked with uClibc. |
| 10513 | |
| 10514 | Daniel (20 August) |
| 10515 | - Gerd v. Egidy provided a patch that makes libcurl store the FTP response |
| 10516 | code from ftp servers. Using curl_easy_getinfo() with CURLINFO_HTTP_CODE |
| 10517 | returns that data. The option is therefore now also known as |
| 10518 | CURLINFO_RESPONSE_CODE. |
| 10519 | |
| 10520 | - Antoine Calando found a segfault when doing multi-part/formpost using |
| 10521 | the multi interface. |
| 10522 | |
| 10523 | - Antoine Calando pointed out that curl_multi_info_read() didn't set the |
| 10524 | msgs_in_queue to 0 properly when returning NULL. |
| 10525 | |
| 10526 | Daniel (19 August) |
| 10527 | - I made curl support multiple -T options, as well as -T "{file1,file2}" |
| 10528 | style globbing. One -T for each URL is supported. |
| 10529 | |
| 10530 | - Jeff Pohlmeyer found a segfault when using ares-enabled libcurl and the |
| 10531 | multi interface when trying a non-existing host name. |
| 10532 | |
| 10533 | - Made the libcurl printf code support long longs if available. |
| 10534 | |
| 10535 | - Loren Kirkby pointed out that we did not clean up all SSL-allocated memory |
| 10536 | in curl_global_cleanup(). |
| 10537 | |
| 10538 | Daniel (17 August) |
| 10539 | - Setting CURLOPT_WRITEFUNCTION or CURLOPT_READFUNCTION to NULL will now make |
| 10540 | them get the internal defaults restored. Previously this could cause a |
| 10541 | segfault. We should aim at having all pointer-related options get restored |
| 10542 | to default/safe values when set to NULL. |
| 10543 | |
| 10544 | Version 7.10.7 (15 August 2003) |
| 10545 | |
| 10546 | Daniel (14 August) |
| 10547 | - I modified the memdebug system to return failure on memory allocation |
| 10548 | functions after a set amount of successful ones. This enables us to test |
| 10549 | out-of-memory situations in a controlled manner and we can make sure that |
| 10550 | curl/libcurl behaves good in those. |
| 10551 | |
| 10552 | This made me find and fix several spots where we did not cleanup properly |
| 10553 | when bailing out due to errors (low memory). |
| 10554 | |
| 10555 | - Corrected test case 74. Made using -o with bad #[num] codes complain and |
| 10556 | bail out. Made #[num] support numbers larger than 9 as well. Added test |
| 10557 | case 86 for a proper range globbing test as well. |
| 10558 | |
| 10559 | Version 7.10.7-pre4 (12 August 2003) |
| 10560 | |
| 10561 | Daniel (12 August) |
| 10562 | - curl_version_info() now returns a flag if libcurl was built with asynch DNS |
| 10563 | support, and this is now also displayed with 'curl -V'. |
| 10564 | |
| 10565 | - Added a few new man pages to the docs/libcurl dir: curl_share_init, |
| 10566 | curl_share_setopt, curl_share_cleanup, libcurl-easy and libcurl-share. |
| 10567 | |
| 10568 | Daniel (11 August) |
| 10569 | - Mike Cherepov made the local binding code work for Windows, which makes |
| 10570 | the option CURLOPT_INTERFACE work on Windows as well. |
| 10571 | |
| 10572 | - Vincent Sanders updated the fopen.c example code a lot. |
| 10573 | |
| 10574 | - --proxy-ntlm is now supported by the curl tool. It forces the proxy |
| 10575 | authentication to be made using NTLM. It does not yet work for HTTPS over |
| 10576 | proxies (or other proxy-tunneling options). Test case 81 and 82 do some |
| 10577 | simple initial ntlm testing. |
| 10578 | |
| 10579 | - Found and fixed a minor memory leak on re-used connections with |
| 10580 | proxy-authentication. |
| 10581 | |
| 10582 | - I removed -@ and -Z as valid short options. They were very rarely used (@ |
| 10583 | wasn't even documented). |
| 10584 | |
| 10585 | - Serge Semashko introduced CURLOPT_PROXYAUTH, and make it work when set to |
| 10586 | CURLAUTH_NTLM and/or CURLAUTH_BASIC. The PROXAUTH is similar to HTTPAUTH, |
| 10587 | but is for the proxy connection only, and HTTPAUTH is for the remote host. |
| 10588 | |
| 10589 | - Fixed loading of cookies with blank contents from a cookie jar. Also made the |
| 10590 | cookie functions inform on added and skipped cookies (for cookie debugging). |
| 10591 | |
| 10592 | Version 7.10.7-pre3 (8 August 2003) |
| 10593 | |
| 10594 | Daniel (8 August) |
| 10595 | - Applied David Byron's fix for file:// URLs with drive letters included. |
| 10596 | |
| 10597 | - I added the --ftp-create-dirs to the client code, which activates Early's |
| 10598 | CURLOPT_FTP_CREATE_MISSING_DIRS option, and wrote test case 147 to verify |
| 10599 | it. Added the option to the curl.1 man page too. Added the option to the |
| 10600 | curl_easy_setopt.3 man page too. |
| 10601 | |
| 10602 | Daniel (7 August) |
| 10603 | - Test case 60 failed on ia64 and AMD Opteron. Fixed now. |
| 10604 | |
| 10605 | - Fixed a printf problem that resulted in urlglobbing bugs (bug #203827 in the |
| 10606 | debian bug tracker). Added test case 74 to verify the fix and to discover if |
| 10607 | this breaks in the future. |
| 10608 | |
| 10609 | - "make distcheck" works again. |
| 10610 | |
| 10611 | Version 7.10.7-pre2 (6 August 2003) |
| 10612 | |
| 10613 | Daniel (5 August) |
| 10614 | - Duncan Wilcox helped me verify that the latest incarnation of my ares patch |
| 10615 | builds fine on Mac OS X (see the new lib/README.ares) file for all details. |
| 10616 | |
| 10617 | - Salvatore Sorrentino filed bug report #783116 and Early Ehlinger posted a |
| 10618 | bug report to the libcurl list, both identifying a problem with FTP |
| 10619 | persistent connections and how the dir hierarchy was not properly reset |
| 10620 | between files. |
| 10621 | |
| 10622 | - David Byron's thoughts on a fixed Makefile in tests/ were applied. |
| 10623 | |
| 10624 | - Jan Sundin reported a case where curl ignored a cookie that browsers don't, |
| 10625 | which turned up to be due to the number of dots in the 'domain'. I've now |
| 10626 | made curl follow the the original netscape cookie spec less strict on that |
| 10627 | part. |
| 10628 | |
| 10629 | Daniel (4 August) |
| 10630 | - Dirk Manske added cookie support for the experimental, hidden and still |
| 10631 | undocumented share feature! |
| 10632 | |
| 10633 | - Mark Fletcher provided an excellent bug report that identified a problem |
| 10634 | with FOLLOWLOCATION and chunked transfer-encoding, as libcurl would not |
| 10635 | properly ignore the body contents of 3XX response that included the |
| 10636 | Location: header. |
| 10637 | |
| 10638 | Early (6 August) |
| 10639 | - Added option CURLOPT_FTP_CREATE_MISSING_DIRS |
| 10640 | This option will force the target file's path to be created if it |
| 10641 | does not already exist on the remote system. |
| 10642 | |
| 10643 | Files affected: |
| 10644 | - include/curl/curl.h |
| 10645 | Added option CURLOPT_FTP_CREATE_MISSING_DIRS |
| 10646 | - lib/ftp.c |
| 10647 | Added function ftp_mkd, which issues a MKD command |
| 10648 | Added function ftp_force_cwd, which attempts a CWD, |
| 10649 | and does a MKD and retries the CWD if the original CWD |
| 10650 | fails |
| 10651 | Modified ftp_perform() to call its change directory function |
| 10652 | through a pointer. The pointer points to ftp_cwd by default, |
| 10653 | and is modified to point to ftp_force_cwd IFF |
| 10654 | data->set.ftp_create_missing_dirs is not 0. |
| 10655 | - lib/url.c |
| 10656 | Modified Curl_setopt to recognize CURLOPT_FTP_CREATE_MISSING_DIRS |
| 10657 | - lib/urldata.h |
| 10658 | Added ftp_create_missing_dirs to struct UserDefined |
| 10659 | |
| 10660 | - Minor Bugfix for CURLOPT_TIMECONDITION with FTP - if the file was not |
| 10661 | present to do the time comparison, it would fail. |
| 10662 | Files affected: |
| 10663 | - lib/ftp.c |
| 10664 | In ftp_perform(), the call to ftp_getfiletime() used to be followed |
| 10665 | by |
| 10666 | if (result) |
| 10667 | return result; |
| 10668 | And then by the code that actually did the time comparison. |
| 10669 | The code that did the comparison handled the case where the filetime |
| 10670 | was not available (as indicated by info.filetime < 0 or set.timevalue |
| 10671 | < 0), so I replaced the if (result) return result with a switch(result) |
| 10672 | that allows CURLE_FTP_COULDNT_RETR_FILE to fall through to the |
| 10673 | normal time comparison. |
| 10674 | |
| 10675 | Daniel (3 August) |
| 10676 | - When proxy authentication is used in a CONNECT request (as used for all SSL |
| 10677 | connects and otherwise enforced tunnel-thru-proxy requests), the same |
| 10678 | authentication header is also wrongly sent to the remote host. |
| 10679 | |
| 10680 | This is a rather significant info leak. I've fixed it now and mailed a patch |
| 10681 | and warning to the mailing lists. |
| 10682 | |
| 10683 | Daniel (1 August) |
| 10684 | - David Byron provided a patch to make 7.10.6 build correctly with the |
| 10685 | compressed hugehelp.c source file. |
| 10686 | |
| 10687 | Version 7.10.7-pre1 (31 July 2003) |
| 10688 | |
| 10689 | Daniel (30 July) |
| 10690 | - Jörg Müller-Tolk updated the VC makefile. |
| 10691 | |
| 10692 | - Daniel Noguerol made the ftp code output "Accept-Ranges: bytes" in similar |
| 10693 | style like other faked HTTP headers when NOBODY and HEADER are used. I |
| 10694 | updated two corresponding test cases too. |
| 10695 | |
| 10696 | - Marty Kuhrt pointed out a compilation problem on VMS due to my having |
| 10697 | changed a type from long to time_t, and I'm now changing it back to work |
| 10698 | more portably... |
| 10699 | |
| 10700 | He also indicated that distributing the src/hugehelp.c in a compressed state |
| 10701 | like I accidentally did may not be the smartest move... I've now fixed the |
| 10702 | distribute procedure to automatically generate an uncompressed version when I |
| 10703 | make release archives. |
| 10704 | |
| 10705 | Daniel (29 July) |
| 10706 | - Gisle Vanem brought changes to the mkhelp script for the generation of the |
| 10707 | compressed help text on some platforms. |
| 10708 | |
| 10709 | Version 7.10.6 (28 July 2003) |
| 10710 | |
| 10711 | Daniel (28 July) |
| 10712 | - François Pons brought a patch that once again made curl deal with ftp and |
| 10713 | "double slash" as indicating the root directory. In the RFC1738-fix of April |
| 10714 | 30, that ability was removed (since it is not the "right" way). So, starting |
| 10715 | now we can list the root dir of an ftp server both these ways: |
| 10716 | |
| 10717 | curl ftp://server.com/%2f as well as |
| 10718 | curl ftp://server.com// |
| 10719 | |
| 10720 | Daniel (24 July) |
| 10721 | - Henry Bland pointed out that we included sys/resource.h without good reason |
| 10722 | in several source files. Without it included, QNX builds better... |
| 10723 | |
| 10724 | - Andrés GarcÃa updated the mingw makefiles. |
| 10725 | |
| 10726 | Daniel (23 July) |
| 10727 | - Tracy Boehrer experienced DNS cache problems and did some nice debugging |
| 10728 | and tracking which made it easy for me to correct the problem and Tracy |
| 10729 | could verify that it did cure the problem! When re-using a connection we |
| 10730 | now make sure we don't re-use the 'connect_addr' struct. |
| 10731 | |
| 10732 | - Daniel Kouril corrected the GSS-Negotiate code. |
| 10733 | |
| 10734 | - Juan F. Codagnone provided fixes to allow curl to build fine on Windows |
| 10735 | again. |
| 10736 | |
| 10737 | Daniel (22 July) |
| 10738 | - Edited the curl/curl.h include file to build on Windows properly. |
| 10739 | |
| 10740 | Daniel (21 July) |
| 10741 | - Moved the proxy credentials from the SessionHandle struct to the connectdata |
| 10742 | struct, to make multiple proxy connections with differerent user names work. |
| 10743 | |
| 10744 | - Adjusted the NTLM code to support proxy functionality. |
| 10745 | |
| 10746 | - Made the krb4 stuff compile with the user+password fields moved. |
| 10747 | |
| 10748 | Version 7.10.6-pre4 (21 July 2003) |
| 10749 | |
| 10750 | Daniel (20 July) |
| 10751 | - David Gardner pointed out in bug report 770755 that using the FTP command |
| 10752 | CWD with a blank argument is a bad idea and I made libcurl skip empty path |
| 10753 | segments starting now. |
| 10754 | |
| 10755 | Daniel (18 July) |
| 10756 | - Cris pointed out that my fix on July 16th didn't work fully. His pointing |
| 10757 | out this (and his patch) also made me realize that we have a very similar |
| 10758 | bug in the FTP connection re-use code. We must store a separate user and |
| 10759 | password field for each connection we keep (at least for FTP and HTTP+NTLM |
| 10760 | connections, so I made us do this unconditionally). |
| 10761 | |
| 10762 | - Since NTLM authenticates connections instead of single requests, I had to |
| 10763 | re-arrange how we store the NTLM data and I had to improve the test suite to |
| 10764 | finally work properly with persistency to make the NTLM tests run fine |
| 10765 | again. This also forced me to have to update lots of HTTP test cases. |
| 10766 | |
| 10767 | Daniel (16 July) |
| 10768 | - Cris Bailiff's bug report 768275 pointed out that using Basic auth with |
| 10769 | wrong user+password caused an endless loop. Fixed now. He also found out that |
| 10770 | we didn't properly authenticate connections with NTLM. Fixed too. |
| 10771 | |
| 10772 | - Dan Winship provided fixes for the NTLM code. |
| 10773 | |
| 10774 | Daniel (5 July) |
| 10775 | - Doug Kaufman provided additional fixes for the DOS port. |
| 10776 | |
| 10777 | Daniel (4 July) |
| 10778 | - Rick Richardson pointed out that using setvbuf() to achieve non-buffering |
| 10779 | on output is no-good for SCO Xenix and other unixes. We switched over to |
| 10780 | using plain fflush() instead. |
| 10781 | |
| 10782 | - Dan Grayson pointed out that we set the CURL_CA_BUNDLE variable wrongly in |
| 10783 | the configure script, and I had to change some build stuff to make the new |
| 10784 | way work. |
| 10785 | |
| 10786 | - Peter Sylvester's patch was applied that introduces the following: |
| 10787 | |
| 10788 | CURLOPT_SSL_CTX_FUNCTION to set a callback that gets called with the |
| 10789 | OpenSSL's ssl_ctx pointer passed in and allow a callback to act on it. If |
| 10790 | anything but CURLE_OK is returned, that will also be returned by libcurl |
| 10791 | all the way back. If this function changes the CURLOPT_URL, libcurl will |
| 10792 | detect this and instead go use the new URL. |
| 10793 | |
| 10794 | CURLOPT_SSL_CTX_DATA is a pointer you set to get passed to the callback set |
| 10795 | with CURLOPT_SSL_CTX_FUNCTION. |
| 10796 | |
| 10797 | Daniel (1 July) |
| 10798 | - David Byron provided a patch that allows a client to quit the test suite's |
| 10799 | HTTP server. |
| 10800 | |
| 10801 | - Gisle Vanem found and patched a lib handle leak in the ldap code. |
| 10802 | |
| 10803 | Daniel (25 June) |
| 10804 | - More NTLM-improvements. Less code. Smaller packets back and forth. |
| 10805 | |
| 10806 | Daniel (23 June) |
| 10807 | - Eric Glass provided us with a better doc on NTLM details, and I added more |
| 10808 | comments and clarified the current code more. Using the new knowledge, we |
| 10809 | should be able to make the NTLM stuff work even better. |
| 10810 | Eric's original URL: http://davenport.sourceforge.net/ntlm.html |
| 10811 | Version stored and provided at curl site: http://curl.haxx.se/rfc/ntlm.html |
| 10812 | |
| 10813 | - Fixed the minor compile problems pre3 had if built without GSSAPI and/or |
| 10814 | SSL. |
| 10815 | |
| 10816 | Version 7.10.6-pre3 (19 June 2003) |
| 10817 | |
| 10818 | Daniel (19 June) |
| 10819 | - Made curl use curl_free() on memory returned by curl_getenv(), as this |
| 10820 | should theoreticly make it possibly to build and run curl and libcurl with |
| 10821 | different memory allocation schemes with no problems. |
| 10822 | |
| 10823 | Daniel (18 June) |
| 10824 | - Improved the mkhelp.pl a bit further to make a nicer hugehelp text and to |
| 10825 | include a better comment in the top for the gzip compressed version. |
| 10826 | |
| 10827 | Daniel (17 June) |
| 10828 | - CURLOPT_HTTPAUTH is now a bitmask, in which you set which authentication |
| 10829 | type(s) you want to use. If more than one is set, libcurl will use one of |
| 10830 | the selected one and the one it considers is more secure. Test case 67 and |
| 10831 | 68 (for NTLM) were fixed and we've reduced a round-trip for specific --ntlm |
| 10832 | fetches, and test case 69 and 70 were added for testing authentication |
| 10833 | "picking". --anyauth is the new command line tool option, and I also added |
| 10834 | --basic for completeness (that's the default type). |
| 10835 | |
| 10836 | - Fixed the runtests.pl script to use the info provided by the new curl -V |
| 10837 | output. |
| 10838 | |
| 10839 | - --enable-debug now sets the CURLDEBUG define instead of MALLOCDEBUG, as it |
| 10840 | is meant to be a generic debug conditional. |
| 10841 | |
| 10842 | - curl_version_info() can now return CURL_VERSION_DEBUG as a feature bit, to |
| 10843 | indicate that the library was built with CURLDEBUG set. |
| 10844 | |
| 10845 | - Ralph Mitchell found out that some web applications very badly uses white |
| 10846 | spaces in Location: redirects, and apparently IE is a browser (the only |
| 10847 | one?) that supports this abomination. Based on Ralph's patch, I added code |
| 10848 | that now attempts to replace white spaces with the proper "%20" or "+". |
| 10849 | Test case 40 and 42 were added to verify my changes. |
| 10850 | |
| 10851 | - curl -V now also outputs a list of features the available library offers (if |
| 10852 | any). |
| 10853 | |
| 10854 | - The curl_version() string now includes "GSS" if libcurl is built with GSSAPI |
| 10855 | support. |
| 10856 | |
| 10857 | - David Orrell reported that libcurl still crashed when sending HUGE requests |
| 10858 | over HTTPS... I fixed. |
| 10859 | |
| 10860 | Version 7.10.6-pre2 (16 June 2003) |
| 10861 | |
| 10862 | Daniel (16 June) |
| 10863 | - curl_version_info() now returns bitmasked information weather NTLM and |
| 10864 | GSSNEGOTIATE are supported, since it is doomed to vary on different |
| 10865 | installations. |
| 10866 | |
| 10867 | - I remade the HTTP Digest code to use the MD5-code provided by OpenSSL if |
| 10868 | that is present, and only use our own MD5-code if it isn't. |
| 10869 | |
| 10870 | Daniel (13 June) |
| 10871 | - More NTLM help, fixes and patches from Cris Bailiff. |
| 10872 | |
| 10873 | - Marty Kuhrt brought include fixes for making VMS builds warning-free. |
| 10874 | |
| 10875 | Daniel (12 June) |
| 10876 | - NTLM authentication works somewhat against the test servers provided by |
| 10877 | Mathias Axelsson and Cris Bailiff. Use by setting CURLOPT_HTTPAUTH to |
| 10878 | CURLAUTH_NTLM to libcurl, or --ntlm for the curl tool. Test case 67 and 68 |
| 10879 | were added for this. NTLM-support requires OpenSSL. |
| 10880 | |
| 10881 | - Dan Fandrich provided a patch, that granted that gzip and libz are available |
| 10882 | at build-time, compresses the hugehelp text in the curl command line and |
| 10883 | uncompresses it at request. Saves some ~60K in the final output executable. |
| 10884 | |
| 10885 | Daniel (11 June) |
| 10886 | - Long day of fighting the NTLM demons. |
| 10887 | |
| 10888 | Daniel (10 June) |
| 10889 | - Modified how to set auth type to libcurl. Now use CURLOPT_HTTPAUTH instead, |
| 10890 | and pick method. Supported ones currently are: |
| 10891 | CURLAUTH_BASIC - default selection |
| 10892 | CURLAUTH_DIGEST - formerly CURLOPT_HTTPDIGEST |
| 10893 | CURLAUTH_GSSNEGOTIATE |
| 10894 | |
| 10895 | - Daniel Kouril added HTTP GSS-Negotiate authentication support, as defined in |
| 10896 | the IETF draft draft-brezak-spnego-http-04.txt. In use already by various |
| 10897 | Microsoft web applications. --negotiate is the new family member. To take |
| 10898 | advantage of this, you need one of these packages: |
| 10899 | |
| 10900 | o Heimdal Kerberos5 http://www.pdc.kth.se/heimdal/heimdal.html |
| 10901 | o GSSAPI from Globus http://www.globus.org/ |
| 10902 | o GSSAPI libraries from MIT Kerberos5 http://web.mit.edu/kerberos/www/ |
| 10903 | |
| 10904 | - A missing ending bracket (']') while doing URL globbing could lead to a |
| 10905 | segfault. While fixing this, I also introduced better error reporting in the |
| 10906 | globbing code. (All this is application code outside libcurl.) |
| 10907 | |
| 10908 | Daniel (6 June) |
| 10909 | - David Orrell found out that sending a huge GET request over HTTPS could |
| 10910 | make libcurl fail and return an error code. |
| 10911 | |
| 10912 | Daniel (2 June) |
| 10913 | - Richard Bramante found out that "Content-Length: 0" was not properly used by |
| 10914 | libcurl if the response-headers indicated that the connection would be |
| 10915 | closed. |
| 10916 | |
| 10917 | - David Byron's patch was applied, that makes the --progress-bar take the |
| 10918 | local size into account when doing resumed downloads. |
| 10919 | |
| 10920 | - Feedback from Serge Semashko made me change the error message returned when |
| 10921 | CURLE_HTTP_RETURNED_ERROR is returned. |
| 10922 | |
| 10923 | - Anonymous in bug report #745122 pointed out that we should really be using |
| 10924 | SSL_CTX_set_options(... SSL_OP_ALL) to work around flaws in existing SSL |
| 10925 | implementations. |
| 10926 | |
| 10927 | Daniel (27 May) |
| 10928 | - Andreas Ley and Rich Gray helped me point out that no version of HP-UX has |
| 10929 | the sys/select.h header file so including it unconditionally in curl/multi.h |
| 10930 | is not a good thing. Now we check for HPUX and avoid using that header on |
| 10931 | such systems. |
| 10932 | |
| 10933 | - Rudy Koento experienced problems with curl's recent habit of POSTing data in |
| 10934 | two separate send() calls, first the headers and then the data. I've now |
| 10935 | made a fix that for static and known content that is less than 100K in size, |
| 10936 | everything is now sent in one single system call again. This is also better |
| 10937 | for network performance reasons. |
| 10938 | |
| 10939 | - I modified the main makefile to not build the test suite and a few other |
| 10940 | unnecessary things by default. Now, the test suite is built when 'make test' |
| 10941 | is run. This reduces build time for those who don't care for the test |
| 10942 | suite, and it also reduces confusion for people using platforms where the |
| 10943 | test suite build fails! |
| 10944 | |
| 10945 | Daniel (26 May) |
| 10946 | - Chris Lewis pointed out a flaw in the #ifdefs in curl/multi.h for Windows, |
| 10947 | which is now corrected. |
| 10948 | |
| 10949 | - Jis Joy found another flaw in the SOCK5 code, as libcurl treated the socks5 |
| 10950 | proxy a little too much like as if it was a http proxy. |
| 10951 | |
| 10952 | Daniel (23 May) |
| 10953 | - Ricardo Cadime found a socket leak when listing directories without |
| 10954 | contents. Test cases 144 and 145 were added to verify the fix. |
| 10955 | |
| 10956 | - Rudy Koento found yet another problem when a HTTP server returns only a |
| 10957 | single-line of contents without any headers at all. libcurl then failed to |
| 10958 | count the data, thus returning error 52 "no contents". Test case 66 was |
| 10959 | added to verify that we now do right. |
| 10960 | |
| 10961 | Version 7.10.6-pre1 (23 May 2003) |
| 10962 | |
| 10963 | Daniel (23 May) |
| 10964 | - Jis in bug report #741841, fixed a bug in the SOCKS5 proxy-using code. |
| 10965 | |
| 10966 | Daniel (22 May) |
| 10967 | - David Remahl set up a test-server for me providing Digest authentication, |
| 10968 | and I wrote the first working code that support it. The test suite was |
| 10969 | modified slightly as well to work better for it and --digest was added to |
| 10970 | the command line options (and CURLOPT_HTTPDIGEST to the library)... RFC2617 |
| 10971 | has all the gory details. |
| 10972 | |
| 10973 | Daniel (21 May) |
| 10974 | - David Balazic pointed out that curl_unescape() didn't check that %-codes |
| 10975 | were correctly followed by two hexadecimal digits when it unescape strings. |
| 10976 | Now, we do the check and only %XX codes are unescaped if the X letters are |
| 10977 | hexadecimals. |
| 10978 | |
| 10979 | - Gisle Vanem made curl build with djgpp on DOS. |
| 10980 | |
| 10981 | - Gisle Vanem improved the mkhelp.pl script to make a nicer manual that is |
| 10982 | shown with curl -M. |
| 10983 | |
| 10984 | Daniel (20 May) |
| 10985 | - Gisle Vanem provided a fix that makes libcurl more conservative, not |
| 10986 | expecting h_aliases of the hostent struct to always be non-NULL. |
| 10987 | |
| 10988 | Daniel (19 May) |
| 10989 | - As requested by Martin Michlmayr in Debian bug report #193630, libcurl now |
| 10990 | supports user name and password in the proxy environment variables. Added |
| 10991 | test case 63 to verify this. |
| 10992 | |
| 10993 | Version 7.10.5 (19 May 2003) |
| 10994 | |
| 10995 | Daniel (15 May) |
| 10996 | - Changed the order for the in_addr_t testing, as 'unsigned long' seems to be |
| 10997 | a very common type inet_addr() returns. |
| 10998 | |
| 10999 | Daniel (14 May) |
| 11000 | - George Comninos provided a fix that calls the progress meter when waiting |
| 11001 | for FTP command responses take >1 second. It'll make applications more |
| 11002 | "responsive" even when dealing with very slow ftp servers. |
| 11003 | |
| 11004 | Daniel (12 May) |
| 11005 | - George Comninos pointed out that libcurl uploads had two quirks: |
| 11006 | o when using FTP PORT command, it used blocking sockets! |
| 11007 | o it could loop a long time without doing progress meter updates |
| 11008 | Both items are fixed now. |
| 11009 | |
| 11010 | Daniel (9 May) |
| 11011 | - Dan Fandrich changed CURLOPT_ENCODING to select all supported encodings if |
| 11012 | set to "". This frees the application from having to know which encodings |
| 11013 | the library supports. |
| 11014 | |
| 11015 | - Dan Fandrich pointed out we had three unnecessary files in CVS that is |
| 11016 | generated with libtoolize, so they're now removed and libtoolize is invoked |
| 11017 | accordingly in the buildconf script. |
| 11018 | |
| 11019 | - Avery Fay found out that the CURLOPT_INTERFACE way of first checking if the |
| 11020 | given name is a network interface gave a real performance penalty on Linux, |
| 11021 | so now we more appropriately first check if it is an IP number and if so |
| 11022 | we don't check for a network interface with that name. |
| 11023 | |
| 11024 | - CURLOPT_FTP_USE_EPRT added. Set this to FALSE to disable libcurl's attempts |
| 11025 | to use EPRT and LPRT before the traditional PORT command. The command line |
| 11026 | tool sets this option with '--disable-eprt'. |
| 11027 | |
| 11028 | Version 7.10.5-pre2 (6 May 2003) |
| 11029 | |
| 11030 | Daniel (6 May) |
| 11031 | - Kevin Delafield reported another case where we didn't correctly check for |
| 11032 | EAGAIN but only EWOULDBLOCK, which caused badness on HPUX. |
| 11033 | |
| 11034 | Daniel (4 May) |
| 11035 | - Ben Greear noticed that the check for 'writable argv' exited the configure |
| 11036 | script when run for cross-compiling, which wasn't nice. Now it'll default to |
| 11037 | no and output a warning about the fact that it was not checked for. |
| 11038 | |
| 11039 | Daniel (2 May) |
| 11040 | - Added test case 62 and fixed some more on the cookie sending with a custom |
| 11041 | Host: header set. |
| 11042 | |
| 11043 | Daniel (1 May) |
| 11044 | - Andy Cedilnik fixed a few compiler warnings. |
| 11045 | |
| 11046 | - Made the "SSL read error: 5" error message more verbose, by adding code that |
| 11047 | queries the OpenSSL library to fill in the error buffer. |
| 11048 | |
| 11049 | Daniel (30 Apr) |
| 11050 | - Added sys/select.h include in the curl/multi.h file, after having been |
| 11051 | reminded about this by Rich Gray. |
| 11052 | |
| 11053 | - I made each test set its own server requirements, thus abandoning the |
| 11054 | previous system where the test number implied what server(s) to use for a |
| 11055 | specific test. |
| 11056 | |
| 11057 | - David Balazic made curl more RFC1738-compliant for FTP URLs, by fixing so |
| 11058 | that libcurl now uses one CWD command for each path part. A bunch of test |
| 11059 | cases were fixed to work accordingly. |
| 11060 | |
| 11061 | - Cookie fixes: |
| 11062 | |
| 11063 | A. Save domains in jars like Mozilla does. It means all domains set in |
| 11064 | Set-Cookie: headers are dot-prefixed. |
| 11065 | B. Save and use the 'tailmatch' field in the Mozilla/Netscape cookie jars |
| 11066 | (the second column). |
| 11067 | C. Reject cookies using illegal domains in the Set-Cookie: line. Concerns |
| 11068 | both domains with too few dots or domains that are outside the currently |
| 11069 | operating server host's domain. |
| 11070 | D. Set the path part by default to the one used in the request, if none was |
| 11071 | set in the Set-Cookie line. |
| 11072 | |
| 11073 | To make item C really good, I also made libcurl notice custom Host: headers |
| 11074 | and extract the host name set in there and use that as the host name for the |
| 11075 | site we're getting the cookies from. This allows user to specify a site's |
| 11076 | IP-address, but still be able to receive and send its cookies properly if |
| 11077 | you provide a valid Host: name for the site. |
| 11078 | |
| 11079 | Daniel (29 Apr) |
| 11080 | - Peter Kovacs provided a patch that makes the CURLINFO_CONNECT_TIME work fine |
| 11081 | when using the multi interface (too). |
| 11082 | |
| 11083 | Version 7.10.5-pre1 (23 Apr 2003) |
| 11084 | |
| 11085 | Daniel (23 Apr) |
| 11086 | - Upgraded to libtool 1.5. |
| 11087 | |
| 11088 | Daniel (22 Apr) |
| 11089 | - Peter Sylvester pointed out that curl_easy_setopt() will always (wrongly) |
| 11090 | return CURLE_OK no matter what happens. |
| 11091 | |
| 11092 | - Dan Fandrich fixed some gzip decompression bugs and flaws. |
| 11093 | |
| 11094 | Daniel (16 Apr) |
| 11095 | - Fixed minor typo in man page, reported in the Debian bug tracker. |
| 11096 | |
| 11097 | Daniel (15 Apr) |
| 11098 | - Fixed some FTP tests in the test suite that failed on my Solaris host, due |
| 11099 | to the config.h not being included before the system headers. When done that |
| 11100 | way, it did get a mixed sense of if big files are supported or not and then |
| 11101 | stat() and fstat() (as used in test case 505) got confused and failed to |
| 11102 | return a proper file size. |
| 11103 | |
| 11104 | - Formposting a file using a .html suffix is now properly set to Content-Type: text/html. |
| 11105 | |
| 11106 | Daniel (14 Apr) |
| 11107 | - Fixed the SSL error handling to return proper SSL error messages again, they |
| 11108 | broke in 7.10.4. I also attempt to track down CA cert problems and then |
| 11109 | return the CURLE_SSL_CACERT error code. |
| 11110 | |
| 11111 | - The curl tool now intercepts the CURLE_SSL_CACERT error code and displays |
| 11112 | a fairly big and explanatory error message. Kevin Roth helped me out with |
| 11113 | the wording. |
| 11114 | |
| 11115 | Daniel (11 Apr) |
| 11116 | - Nic Hines provided a second patch for gzip decompression, and fixed a bug |
| 11117 | when deflate or gzip contents were downloaded using chunked encoding. |
| 11118 | |
| 11119 | - Dan Fandrich made libcurl support automatic decompression of gzip contents |
| 11120 | (as an addition to the previous deflate support). |
| 11121 | |
| 11122 | - I made the CWD command during FTP session consider all 2xy codes to be OK |
| 11123 | responses. |
| 11124 | |
| 11125 | Daniel (10 Apr) |
| 11126 | - Vlad Krupin fixed a URL parsing issue. URLs that were not using a slash |
| 11127 | after the host name, but still had "?" and parameters appended, as in |
| 11128 | "http://hostname.com?foobar=moo", were not properly parsed by libcurl. |
| 11129 | |
| 11130 | Daniel (9 Apr) |
| 11131 | - Made CURLOPT_TIMECONDITION work for FTP transfers, using the same syntax as |
| 11132 | for HTTP. This then made -z work for ftp transfers too. Added test case 139 |
| 11133 | and 140 for verifying this. |
| 11134 | |
| 11135 | - Getting the file date of an ftp file used the wrong time zone when |
| 11136 | displayed. It is supposedly always GMT. Added test case 141 for this. |
| 11137 | |
| 11138 | - Made the test suite's FTP server support MDTM. |
| 11139 | |
| 11140 | - The default DEBUGFUNCTION, as enabled with CURLOPT_VERBOSE now outputs |
| 11141 | CURLINFO_HEADER_IN data as well. The most notable effect from this is that |
| 11142 | using curl -v, you get to see the incoming "headers" as well. This is |
| 11143 | perhaps most useful when doing ftp. |
| 11144 | |
| 11145 | Daniel (8 Apr) |
| 11146 | - James Bursa fixed a flaw in the Content-Type extraction code, which missed |
| 11147 | the first letter if no space followed the colon. |
| 11148 | |
| 11149 | - Magnus Nilsson pointed out that share.c was missing in the MSVC project |
| 11150 | file. |
| 11151 | |
| 11152 | Daniel (6 Apr) |
| 11153 | - Ryan Weaver provided a patch that makes the CA cert bundle not get installed |
| 11154 | anymore when 'configure --without-ssl' has been used. |
| 11155 | |
| 11156 | Daniel (4 Apr) |
| 11157 | - Martijn Broenland found another cases where a server application didn't |
| 11158 | like the boundary string used by curl when doing a multi-part/formpost. We |
| 11159 | modified the boundary string to look like the one IE uses, as this is |
| 11160 | probably gonna make curl work with more applications. |
| 11161 | |
| 11162 | Daniel (3 Apr) |
| 11163 | - Kevin Roth reported that a bunch of tests fails on cygwin. One set fails |
| 11164 | when using perl 5.8 (and they run fine with perl 5.6), and another set |
| 11165 | failed because of an artifact in the test suite's FTP server that I |
| 11166 | corrected. It turned out the FTP server code was still having a file opened |
| 11167 | while the main test script removed it and invoked the HTTP server that |
| 11168 | attempted to create the same file name of the file the FTP server kept open. |
| 11169 | This operation works fine on unix, but not on cygwin. |
| 11170 | |
| 11171 | Version 7.10.4 (2 Apr 2003) |
| 11172 | |
| 11173 | Daniel (1 Apr) |
| 11174 | - Added test case 505 to exercise FTP upload with rename done with libcurl, |
| 11175 | and for that I had to extend the test suite's FTP server to deal with the |
| 11176 | RNFR and RNTO commands. |
| 11177 | |
| 11178 | Daniel (31 Mar) |
| 11179 | - Even more SSL config check modifications after Richard's testing. |
| 11180 | |
| 11181 | Version 7.10.4-pre6 (31 Mar 2003) |
| 11182 | |
| 11183 | Daniel (31 Mar) |
| 11184 | - More fixes for the SSL session ID cache checks when SSL configs are changed |
| 11185 | between connections. Based on tests and talks with Richard Bramante. |
| 11186 | |
| 11187 | - Guillaume Cottenceau provided a patch that added CURLOPT_UNRESTRICTED_AUTH. |
| 11188 | When enabled, it will prevent libcurl from limiting to which host it sends |
| 11189 | user+password to when following locations. By default, libcurl only sends |
| 11190 | name and password to the original host used in the first URL, but with this |
| 11191 | option set it will send the auth info to all hosts it follows location |
| 11192 | headers to. The new tool command line option for this is named |
| 11193 | "--location-trusted". |
| 11194 | |
| 11195 | - Frankie Fong reported a problem with libcurl if you re-used an easy handle |
| 11196 | with a proxy, and you first made a https:// connection to a host and then |
| 11197 | switched to a http:// one to the same host. libcurl would then wrongly re-use |
| 11198 | the same connection for it and fail to get the second URL properly |
| 11199 | |
| 11200 | Daniel (29 Mar) |
| 11201 | - Dan Shearer's fix that makes curl complain if invoked with nothing but "curl |
| 11202 | -O" was applied. |
| 11203 | |
| 11204 | Daniel (26 Mar) |
| 11205 | - Bryan Kemp was friendly enough to lend me an account on his Redhat 9 box and |
| 11206 | I could fix the configure problems on redhat 8.1 and 9 in no time thanks to |
| 11207 | this. Thanks a bunch Bryan! |
| 11208 | |
| 11209 | Daniel (25 Mar) |
| 11210 | - Renamed configure.in to configure.ac |
| 11211 | |
| 11212 | Version 7.10.4-pre5 (25 Mar 2003) |
| 11213 | |
| 11214 | Daniel (25 Mar) |
| 11215 | - Richard Bramante provided a fix for a handle re-use problem seen when you |
| 11216 | change options on an SSL-enabled connection between requests. Previously, |
| 11217 | changing peer verification or host verification and similar things was not |
| 11218 | taken into account when a connection were checked for re-use and thus |
| 11219 | enabling stricter check between requests on a re-used connection made no |
| 11220 | difference and the connection would thus be used erroneously. |
| 11221 | |
| 11222 | Daniel (24 Mar) |
| 11223 | - Götz Babin-Ebell pointed out that the ca-bundle.crt file contained a |
| 11224 | certificate from Trustcenter that was a demo certificate only that was never |
| 11225 | intended to be part of a CA bundle. |
| 11226 | |
| 11227 | Daniel (21 Mar) |
| 11228 | - Life is a mystery. Within a time period of 17 hours, Tim Pope and Michael |
| 11229 | Churchill filed one bug report each, both identifying problems with a second |
| 11230 | transfer when doing persistent transfers re-using a connection. Tim's one is |
| 11231 | #706624, labeled "Multiple uploads per handle fail" and Michael's #707003 |
| 11232 | "Does not send Authorization: header when reusing connection". I could track |
| 11233 | both down to the same piece of logic and it turned out libcurl was not using |
| 11234 | new settings properly when re-using an existing connection. This concerned |
| 11235 | both uploading and downloading and involved exactly those pieces these two |
| 11236 | reports identified. This code has been this faulty since the day I |
| 11237 | introduced persistent connection support in libcurl, more than 2 years ago. |
| 11238 | |
| 11239 | Daniel (20 Mar 2003) |
| 11240 | - Five year anniversary. Today five years ago, the first ever curl release saw |
| 11241 | the light of day. |
| 11242 | |
| 11243 | Daniel (17 Mar) |
| 11244 | - Andy Cedilnik corrected flaws in some libcurl example-usage sources. |
| 11245 | |
| 11246 | Daniel (16 Mar) |
| 11247 | - Juan F. Codagnone reported that the fix from March 2nd was incomplete. |
| 11248 | |
| 11249 | - Added code to the configure.in to check for select() argument types. I've |
| 11250 | not made any code use the results just yet though. |
| 11251 | |
| 11252 | Daniel (15 Mar) |
| 11253 | - Gisle Vanem provided two patches to build better on Windows. |
| 11254 | |
| 11255 | - Adjusted the test suite code to better make sure that the server(s) required |
| 11256 | for a specific test is properly started before the test case is attempted. |
| 11257 | Many tests now run a lot faster than before. |
| 11258 | |
| 11259 | Daniel (14 Mar) |
| 11260 | - Another configure.in adjustment made the configure detect functions properly |
| 11261 | on HPUX now. |
| 11262 | |
| 11263 | Daniel (13 Mar) |
| 11264 | - Philippe Raoult fixed pre4-compile quirks for FreeBSD. |
| 11265 | |
| 11266 | Version 7.10.4-pre4 (13 Mar 2003) |
| 11267 | |
| 11268 | Daniel (13 Mar) |
| 11269 | - Added a backup-check for functions that aren't found by AC_CHECK_FUNCS() |
| 11270 | as I believe some checks on HPUX need this. At least some of the info given |
| 11271 | to us by Rick Jones seemed to indicate this. |
| 11272 | |
| 11273 | Daniel (12 Mar) |
| 11274 | - Thomas Tonino found out that if you used the curl tool to do PUT operations |
| 11275 | as in 'curl www.foo.com/dir/ -T file' and the file name included for example |
| 11276 | space or other characters that don't belong in URLs, curl did not properly |
| 11277 | URL encode them before using them in the URL. |
| 11278 | |
| 11279 | - Added an option to configure called --enable-libgcc that simply adds -lgcc |
| 11280 | to the LIBS variable, as this seems to be a common problem. |
| 11281 | |
| 11282 | - I modified the configure.in file, so that the headers are now checked in an |
| 11283 | order of "viality". We must also make sure to use the "default headers" |
| 11284 | parameter to AC_CHECK_HEADERS() so that headers are checked with the proper |
| 11285 | prerequisites included (i.e all the major and generally important header |
| 11286 | files are included there by default). This might be what we need for various |
| 11287 | Sun, HP, AIX and Tru64 systems to behave good again on the header check |
| 11288 | front. |
| 11289 | |
| 11290 | - Rick Jones pointed out a few compiler warnings on HP-UX that I addressed. |
| 11291 | |
| 11292 | - I made the configure --help output nicer by using AC_HELP_STRING() a lot |
| 11293 | more. |
| 11294 | |
| 11295 | Daniel (11 Mar) |
| 11296 | - Christophe Demory fixed the socket sending code to work better on HP-UX |
| 11297 | when sending data to a socket that would block. It then returns EAGAIN, not |
| 11298 | EWOULDBLOCK. |
| 11299 | |
| 11300 | - Richard Gorton improved the seeding function for systems without a good |
| 11301 | and reliable random source. |
| 11302 | |
| 11303 | - Richard Gorton fixed a few warnings that popped up when you built curl |
| 11304 | using the Sun compiler on a 64bit SPARC platform. |
| 11305 | |
| 11306 | - Martin C. Martin fixed a case where a connect failure using the multi |
| 11307 | interface didn't produce a human readable error string. |
| 11308 | |
| 11309 | Daniel (10 Mar) |
| 11310 | - Reverted ltmain.sh back to libtool 1.4.2 status again, as the 1.4.3 version |
| 11311 | broke the build on numerous platforms. It seems that libtool 1.4.3 puts some |
| 11312 | requirements on what versions of the other tools (autoconf + automake) that |
| 11313 | I am not familiar with and thus I couldn't fulfill at this point. |
| 11314 | |
| 11315 | Yes, this is more than mildly frustrating. |
| 11316 | |
| 11317 | Daniel (7 Mar) |
| 11318 | - Run libtoolize version 1.4.3. |
| 11319 | |
| 11320 | Version 7.10.4-pre3 (4 Mar 2003) |
| 11321 | |
| 11322 | Daniel (3 Mar) |
| 11323 | - Added share.obj to the VC6 and Borland libcurl makefiles. |
| 11324 | |
| 11325 | - Troels Walsted Hansen found and investigated a problem with libcurl on AIX, |
| 11326 | presumably only on 4.3 or later. gethostbyname_r() is not returning data |
| 11327 | that is possible to "keep" and cache the way libcurl does. But instead these |
| 11328 | versions of AIX uses a gethostbyname() that works thread-safely we can |
| 11329 | instead use the ordinary gethostbyname() and our pack_hostent() approach to |
| 11330 | achieve what we want. The configure script now attempts to detect AIX 4.3 or |
| 11331 | later to adjust for this. |
| 11332 | |
| 11333 | Daniel (2 Mar) |
| 11334 | - Juan F. Codagnone found a problem introduced in 7.10.3 when you first did a |
| 11335 | POST and then back to a GET using the same easy handle. |
| 11336 | |
| 11337 | Daniel (28 Feb) |
| 11338 | - Removed the strequal and strnequal defines from curl/curl.h header. They |
| 11339 | were never meant for the public header anyway. Philippe Raoult brought it |
| 11340 | up. |
| 11341 | |
| 11342 | - James Bursa fixed the RISC OS build. |
| 11343 | |
| 11344 | Daniel (27 Feb) |
| 11345 | - Avery Fay pointed out the very misleading curl_multi_info_read man page, and |
| 11346 | I updated it to become more accurate. |
| 11347 | |
| 11348 | - Salvatore Sorrentino found a problem with FTP downloading that turned out to |
| 11349 | be his FTP server returning size zero (0 bytes) when SIZE was used on a file |
| 11350 | while being in BINARY mode. We now make a second check for the actual size |
| 11351 | by scanning the RETR reply anyway, even if the SIZE command returned 0. |
| 11352 | |
| 11353 | Daniel (26 Feb) |
| 11354 | - Kyle Sallee reported a case where he would do a transfer that didn't update |
| 11355 | the progress meter properly. It turned out to be a case where libcurl would |
| 11356 | loop a little too eagerly in the transfer loop, which isn't really good for |
| 11357 | the APIs, especially not the multi API. |
| 11358 | |
| 11359 | Version 7.10.4-pre2 (24 Feb 2003) |
| 11360 | |
| 11361 | Daniel (24 Feb) |
| 11362 | - Kjetil Jacobsen found out that setting CURLOPT_MAXCONNECTS to a value higher |
| 11363 | than 5 could cause a segfault. |
| 11364 | |
| 11365 | - I believe I fixed the 'Expect: 100-continue' behavior that has been broken |
| 11366 | for a while (I think since my change dated Dec 10 2002). When this header is |
| 11367 | used, libcurl should wait for a HTTP 100 (or timeout) before sending the |
| 11368 | post/put data. |
| 11369 | |
| 11370 | Daniel (14 Feb) |
| 11371 | - Matthew Clarke provided some info what to modify to make curl build |
| 11372 | flawlessly on AIX 3.2.5. |
| 11373 | |
| 11374 | - Martin C. Martin found and fixed a problem in the multi interface when |
| 11375 | running on Windows and trying to connect to a port without a listener. |
| 11376 | |
| 11377 | Daniel (13 Feb) |
| 11378 | - Christopher R. Palmer fixed Curl_base64_encode() to deal with zeroes in the |
| 11379 | data to encode. |
| 11380 | |
| 11381 | Daniel (4 Feb) |
| 11382 | - Jean-Philippe added the first code that enables the 'share' system. This |
| 11383 | should now enable sharing of DNS data between two curl easy handles. |
| 11384 | |
| 11385 | - Incorporated Nico Baggus' fixes to again compile flawlessly on VMS. |
| 11386 | |
| 11387 | - James Bursa corrected a bad comment in the public include file curl/multi.h |
| 11388 | |
| 11389 | - Peter Forret reported one of those error:00000000 cases in libcurl again |
| 11390 | when connecting to a HTTPS site, and this time I did discover some oddities |
| 11391 | in how curl reports SSL errors back. It could miss showing the actual error. |
| 11392 | |
| 11393 | Version 7.10.4-pre1 (3 Feb 2003) |
| 11394 | |
| 11395 | Daniel (3 Feb) |
| 11396 | - Removed things in the docs saying capath doesn't work on Windows, as Julian |
| 11397 | Noble told us it works fine. |
| 11398 | |
| 11399 | Daniel (31 Jan) |
| 11400 | - Kevin Roth fixed the zlib build stuff in the Mingw32 makefile. |
| 11401 | |
| 11402 | Daniel (30 Jan) |
| 11403 | - Kevin Roth found out that curl on Windows always checked for the CA cert |
| 11404 | bundle using the environment variable and the path scan, even though |
| 11405 | -k/--insecure was used. |
| 11406 | |
| 11407 | - Hamish Mackenzie pointed out that curl only did strict host name verifying |
| 11408 | if capath or cainfo was used. Now it'll always do it unless -k / --insecure |
| 11409 | is used! |
| 11410 | |
| 11411 | - Pavel Cenek pointed out that the Content-Type extraction was done wrongly |
| 11412 | as the full string was not fetched. Added test case 57 to verify that curl |
| 11413 | does it right now. |
| 11414 | |
| 11415 | Daniel (29 Jan) |
| 11416 | - Jamie Wilkinson provided a patch that now makes curl attempt to clear out |
| 11417 | "sensitive" command line arguments so that they don't appear in ps outputs |
| 11418 | (only on platforms that allow writing to argv[]). |
| 11419 | |
| 11420 | - John McGowan found out that the DEBUGFUNCTION could be called with bad |
| 11421 | arguments and thus cause the --trace outputs to go wrong. |
| 11422 | |
| 11423 | - Removed all the emacs local variables from all files. Mats Lidell provided |
| 11424 | the new sample.emacs file (for a sample of what to include in your .emacs) |
| 11425 | and the curl-style.el that sets a better c-style for editing curl sources. |
| 11426 | |
| 11427 | - Dave Halbakken found a problem with FTP downloads that could accidently |
| 11428 | return CURLE_PARTIAL_FILE when curl_easy_perform() was called with NOBODY |
| 11429 | set TRUE. |
| 11430 | |
| 11431 | Daniel (27 Jan) |
| 11432 | - The fopen.c example was flawed as Nick Humfrey noticed, and I fixed it to |
| 11433 | work again. |
| 11434 | |
| 11435 | Daniel (24 Jan) |
| 11436 | - Bertrand Demiddelaer found and fixed a memory leak (the content-type string) |
| 11437 | when following locations. |
| 11438 | |
| 11439 | Daniel (22 Jan 2003) |
| 11440 | - Ian Wilkes and Legoff Vincent both independently provided fixes for making |
| 11441 | curl/multi.h work properly when compiled with a C++ compiler. |
| 11442 | |
| 11443 | Daniel (20 Jan 2003) |
| 11444 | - Fixed 'buildconf' to check version number of the required tools before |
| 11445 | they're actually used. |
| 11446 | |
| 11447 | - Wrote 'testcurl.sh', a script targeted for automatic and distributed curl |
| 11448 | tests on various platforms. |
| 11449 | |
| 11450 | - David Thiel pointed out that the .netrc file was not being dealt with |
| 11451 | properly anymore. I broke this in the password prompting "fix". |
| 11452 | |
| 11453 | - Markus F.X.J. Oberhumer patched libcurl to allocate the scratch buffer only |
| 11454 | on demand and thus we save 32KB in each curl handle that don't use that |
| 11455 | buffer. This need appeared when some people started using thousands of |
| 11456 | simultaneous curl handles... :-) |
| 11457 | |
| 11458 | Daniel (16 Jan 2003) |
| 11459 | - Markus Oberhumer fixed curl-config --cflags when the includedir was not |
| 11460 | /usr/include. |
| 11461 | |
| 11462 | - Markus Oberhumer fixed CURLINFO_PRIVATE to properly return NULL if it was |
| 11463 | set to NULL! |
| 11464 | |
| 11465 | Version 7.10.3 (14 Jan 2003) |
| 11466 | |
| 11467 | Daniel (10 Jan 2003) |
| 11468 | - Steve Oliphant pointed out that test case 105 did not work anymore and this |
| 11469 | was due to a missing fix for the password prompting. |
| 11470 | |
| 11471 | Version 7.10.3-pre6 (10 Jan 2003) |
| 11472 | |
| 11473 | Daniel (9 Jan 2003) |
| 11474 | - Bryan Kemp pointed out that curl -u could not provide a blank password |
| 11475 | without prompting the user. It can now. -u username: makes the password |
| 11476 | empty, while -u username makes curl prompt the user for a password. |
| 11477 | |
| 11478 | - Kjetil Jacobsen found a remaining connect problem in the multi interface on |
| 11479 | ipv4 systems (Linux only?), that I fixed and Kjetil verified that it fixed |
| 11480 | his problems. |
| 11481 | |
| 11482 | - memanalyze.pl now reads a file name from the command line, and no longer |
| 11483 | takes the data on stdin as before. |
| 11484 | |
| 11485 | Version 7.10.3-pre5 (9 Jan 2003) |
| 11486 | |
| 11487 | Daniel (9 Jan 2003) |
| 11488 | - Fixed tests/memanalyze.pl to work with file names that contain colons (as on |
| 11489 | Windows). |
| 11490 | |
| 11491 | - Kjetil Jacobsen quickly pointed out that lib/share.h was missing... |
| 11492 | |
| 11493 | Version 7.10.3-pre4 (9 Jan 2003) |
| 11494 | |
| 11495 | Daniel (9 Jan 2003) |
| 11496 | - Updated lib/share.c quite a bit to match the design document at |
| 11497 | http://curl.haxx.se/dev/sharing.txt a lot more. |
| 11498 | |
| 11499 | I'll try to update the document soonish. share.c is still not actually used |
| 11500 | by libcurl, but the API is slowly getting there and we can start |
| 11501 | implementing code that takes advantage of this system. |
| 11502 | |
| 11503 | Daniel (8 Jan 2003) |
| 11504 | - Updated share stuff in curl/curl.h, including data types, structs and |
| 11505 | function prototypes. The corresponding files in lib/ were also modified |
| 11506 | of course to remain compilable. Based on input from Jean-Philippe and also |
| 11507 | to make it more in line with the design document. |
| 11508 | |
| 11509 | - Jean-Philippe Barrette-LaPierre patched a very trivial memory leak in |
| 11510 | curl_escape() that would happen when realloc() returns NULL... |
| 11511 | |
| 11512 | - Matthew Blain provided feedback to make the --create-dirs stuff build |
| 11513 | properly on Windows. |
| 11514 | |
| 11515 | - Fixed the #include in tests/libtest/first.c as Legoff Vincent pointed out. |
| 11516 | |
| 11517 | Daniel (7 Jan 2003) |
| 11518 | - Philippe Raoult provided a patch that now makes libcurl properly support |
| 11519 | wildcard checks for certificate names. |
| 11520 | |
| 11521 | - Simon Liu added CURLOPT_HTTP200ALIASES, to let an application set other |
| 11522 | strings recognized as "HTTP 200" to allow http-like protocols to get |
| 11523 | downloaded fine by curl. |
| 11524 | |
| 11525 | - Now using autoconf 2.57 and automake 1.7.2 |
| 11526 | |
| 11527 | - Doing "curl -I ftp://domain/non-existing-file" still outputed a date! |
| 11528 | Wayne Haigh reported. |
| 11529 | |
| 11530 | - The error message is now written properly with a newline in the --trace |
| 11531 | file. |
| 11532 | |
| 11533 | Daniel (6 Jan 2003) |
| 11534 | - Sterling Hughes fixed a possible bug: previously, if you called |
| 11535 | curl_easy_perform and then set the global dns cache, the global cache |
| 11536 | wouldn't be used. Pointed out by Jean-Philippe Barrette-LaPierre. |
| 11537 | |
| 11538 | - Matthew Blain's fixed the VC6 libcurl makefile to include better debug data |
| 11539 | on debug builds. |
| 11540 | Daniel (27 Dec 2002) |
| 11541 | - Philippe Raoult reported a bug with HTTPS connections which I evidently |
| 11542 | added in my 19 dec fix. I corrected it. |
| 11543 | |
| 11544 | Daniel (20 Dec) |
| 11545 | - Idea from the Debian latest patch: use AM_MAINTAINER_MODE in the configure |
| 11546 | script to make the default makefile less confusing "to the casual |
| 11547 | installer". |
| 11548 | |
| 11549 | Version 7.10.3-pre3 (20 Dec) |
| 11550 | |
| 11551 | Daniel (19 Dec) |
| 11552 | - Matthew Blain patched the Curl_base64_decode() function. |
| 11553 | |
| 11554 | - Evan Jordan reported in bug report #653022 that the SSL_read() usage was |
| 11555 | wrong, and it certainly was. It could lead to curl using too much CPU due to |
| 11556 | a stupid loop. |
| 11557 | |
| 11558 | Daniel (18 Dec) |
| 11559 | - As suggested by Margus Freudenthal, CURLE_HTTP_NOT_FOUND was renamed to |
| 11560 | CURLE_HTTP_RETURNED_ERROR since it is returned on any >= 400 code when |
| 11561 | CURLOPT_FAILONERROR is set. |
| 11562 | |
| 11563 | Daniel (17 Dec) |
| 11564 | - Bug reported #651464, reported by Christopher Palmer, provided an example |
| 11565 | source code using the multi interface that hang when trying to connect to a |
| 11566 | proxy on a localhost port where no proxy was listening. This bug was not |
| 11567 | repeatable on libcurls that were IPv6-enabled. |
| 11568 | |
| 11569 | Daniel (16 Dec) |
| 11570 | - Christopher Palmer also noticed what Vojtech Janota already was |
| 11571 | experiencing: The attempted name resolve fix for glibc 2.2.93 caused libcurl |
| 11572 | to crash when used on some older glibc versions. The problem is of course |
| 11573 | the silliness of the 2.2.93. I committed a fix that hopefully should make |
| 11574 | the binary run fine on either one of the versions, even though the solution |
| 11575 | is not as nice as I'd like it to be. |
| 11576 | |
| 11577 | Daniel (13 Dec) |
| 11578 | - Bug report #651460 by Christopher R. Palmer showed that when using libcurl |
| 11579 | to for example go over a proxy on localhost, it would attempt to connect |
| 11580 | through the proxy TWICE. |
| 11581 | |
| 11582 | I added test case 503 with which I managed to repeat this problem and I |
| 11583 | fixed the code to not re-attempt any connects (which also made it a nicer |
| 11584 | fix for the #650941 bug mentioned below). |
| 11585 | |
| 11586 | The sws server was extended to deal with CONNECT in order to make test |
| 11587 | case 503 do good. |
| 11588 | |
| 11589 | - Evan Jordan posted bug report #650989 about a memory leak in the public key |
| 11590 | retrieving code. He provided a suggested fix and I merely applied it! |
| 11591 | |
| 11592 | - Bug report #650941, posted by Christopher R. Palmer identified a problem |
| 11593 | with the multi interface and getting file:// URLs. This was now fixed and |
| 11594 | test case 502 was added to verify this. |
| 11595 | |
| 11596 | Daniel (12 Dec) |
| 11597 | - Test case 500 and 501 are the first ever libcurl test cases that run. |
| 11598 | |
| 11599 | - Made "configure --enable-debug" cut off all -O* options to the compiler |
| 11600 | |
| 11601 | - Finally fixed the test suite's ftp server so that test case 402 doesn't |
| 11602 | cause the following test case to fail anymore! |
| 11603 | |
| 11604 | Daniel (11 Dec) |
| 11605 | - CURL_MAX_WRITE_SIZE is now decreased to 16KB since it makes the Windows |
| 11606 | version perform uploads much faster!!! RBramante did lots of research on |
| 11607 | this topic. |
| 11608 | |
| 11609 | - Fixed the #include in curl/curl.h to include the other files outside the |
| 11610 | extern "C" scope. |
| 11611 | |
| 11612 | Daniel (10 Dec) |
| 11613 | - Moved around and added more logic: |
| 11614 | |
| 11615 | First, POST data is never sent as part of the request headers in the http.c |
| 11616 | code. It is always sent the "normal" read callback then send() way. This now |
| 11617 | enables a plain HTTP POST to be sent chunked if we want to. This also |
| 11618 | reduces the risk of having very big POSTs causing problems. |
| 11619 | |
| 11620 | Further, sending off the initial HTTP request is not done using a loop |
| 11621 | anymore. If it wasn't all sent off in the first send(), the rest of the |
| 11622 | request is sent off in the normal transfer select() loop. This makes several |
| 11623 | things possible, but mainly it makes libcurl block less when used from the |
| 11624 | multi interface and it also reduces the risk of problems with issuing very |
| 11625 | large requests. |
| 11626 | |
| 11627 | Daniel (9 Dec) |
| 11628 | - Moved the read callback pointer and data within the structs to a more |
| 11629 | suitable place. This in preparation for a better HTTP-request sending code |
| 11630 | without (a silly) loop. |
| 11631 | |
| 11632 | - The Dodds fix seems not to work. |
| 11633 | |
| 11634 | - Vojtech Janota tests proved that the resolve fix from oct 21st is not good |
| 11635 | enough since obviously older glibcs might return EAGAIN without this meaning |
| 11636 | that the buffer was too small. |
| 11637 | |
| 11638 | - [the other day] Made libcurl loop on recv() and send() now until done, and |
| 11639 | then get back to select(). Previously it went back to select() more often |
| 11640 | which really was a slight overhead. This was due to the reported performance |
| 11641 | problems on HTTP PUT on Windows. I couldn't see any notable difference on |
| 11642 | Linux... |
| 11643 | |
| 11644 | Version 7.10.3-pre2 (4 Dec 2002) |
| 11645 | |
| 11646 | Daniel (4 Dec 2002) |
| 11647 | - Lots of work with Malcolm Dodds made me add a temporary code fix that now |
| 11648 | shortens the timeout waiting for the 226 or 250 line after a completed |
| 11649 | FTP transfer. |
| 11650 | |
| 11651 | If no data is received within 60 seconds, this is taken as a sign of a dead |
| 11652 | control connection and we bail out. |
| 11653 | |
| 11654 | Daniel (3 Dec 2002) |
| 11655 | - Ralph's bug report #644841 identified a problem in which curl returned a |
| 11656 | timeout error code when in fact the problem was not a timeout. The proper |
| 11657 | error should now be propagated better when they're detected in the FTP |
| 11658 | response reading function. |
| 11659 | |
| 11660 | - Updated the Borland Makefiles. |
| 11661 | |
| 11662 | Daniel (2 Dec 2002) |
| 11663 | - Nicolas Berloquin provided a patch that introduced --create-dirs to the |
| 11664 | command line tool. When used in combination with -o, it lets curl create |
| 11665 | [non-existing] directories used in -o, suitably used with #-combinations |
| 11666 | such as: |
| 11667 | |
| 11668 | curl "www.images.com/{flowers,cities,parks,mountains}/pic_[1-100].jpg \ |
| 11669 | -o "dir_#1/pic#2.jpg" --create-dirs |
| 11670 | |
| 11671 | Version 7.10.3-pre1 |
| 11672 | |
| 11673 | Daniel (28 Nov 2002) |
| 11674 | - I visited Lars Nordgren and had a go with his problem, which lead me to |
| 11675 | implement this fix. If libcurl detects the added custom header |
| 11676 | "Transfer-Encoding: chunked", it will now enable a chunked transfer. |
| 11677 | |
| 11678 | Also, chunked transfer didn't quite work before but seems to do so now. |
| 11679 | |
| 11680 | - Kjetil Jacobsen pointed out that ./configure --disable-ipv6 --without-zlib |
| 11681 | didn't work on any platform... |
| 11682 | |
| 11683 | Daniel (26 Nov 2002) |
| 11684 | - Fixed a bad addrinfo free in the hostip.c code, hardly exposed anywhere |
| 11685 | |
| 11686 | - Dan Becker found and fixed a minor memory leak on persistent connnections |
| 11687 | using CURLOPT_USERPWD. |
| 11688 | |
| 11689 | Daniel (22 Nov 2002) |
| 11690 | - Based on Ralph Mitchell's excellent analysis I found a bug in the test suite |
| 11691 | web server (sws) which now lets test case 306 run fine even in combination |
| 11692 | with the other test cases. |
| 11693 | |
| 11694 | - Juan Ignacio Hervás found a crash in the verbose connect message that is |
| 11695 | used on persistent connections. This bug was added in 7.10.2 due to the |
| 11696 | rearranged name resolve code. |
| 11697 | |
| 11698 | Daniel (20 Nov 2002) |
| 11699 | - Kjetil Jacobsen provided a patch that introduces: |
| 11700 | |
| 11701 | CURLOPT_PRIVATE stores a private pointer in the curl handle. |
| 11702 | |
| 11703 | CURLINFO_PRIVATE retrieves the private pointer from the curl handle. |
| 11704 | |
| 11705 | - Karol Pietrzak pointed out how curl-config --cflags didn't output a good |
| 11706 | include dir so I've removed that for now. |
| 11707 | |
| 11708 | Version 7.10.2 (18 Nov 2002) |
| 11709 | |
| 11710 | Daniel (11 Nov 2002) |
| 11711 | - Dave Halbakken added curl_version_info to lib/libcurl.def to make libcurl |
| 11712 | properly build with MSVC on Windows. |
| 11713 | |
| 11714 | Daniel (8 Nov 2002) |
| 11715 | - Doing HTTP PUT without a specified file size now makes libcurl use |
| 11716 | Transfer-Encoding: chunked. |
| 11717 | |
| 11718 | Daniel (7 Nov 2002) |
| 11719 | - Bug report #634625 identified how curl returned timeout immediately when |
| 11720 | CURLOPT_CONNECTTIMEOUT was used and provided a fix. |
| 11721 | |
| 11722 | Version 7.10.2-pre4 (6 Nov 2002) |
| 11723 | |
| 11724 | Daniel (5 Nov 2002) |
| 11725 | - Lehel Bernadt found out and fixed. libcurl sent error message to the debug |
| 11726 | output when it stored the error message. |
| 11727 | |
| 11728 | - Avery Fay found some problems with the DNS cache (when the cache time was |
| 11729 | set to 0 we got a memory leak, but when the leak was fixed he got a crash |
| 11730 | when he used the CURLOPT_INTERFACE with that) that had me do some real |
| 11731 | restructuring so that we now have a reference counter in the dns cache |
| 11732 | entries to prevent an entry to get flushed while still actually in use. |
| 11733 | |
| 11734 | I also detected that we previously didn't update the time stamp when we |
| 11735 | extracted an entry from the cache so that must've been a reason for some |
| 11736 | very weird dns cache bugs. |
| 11737 | |
| 11738 | Version 7.10.2-pre3 |
| 11739 | |
| 11740 | Daniel (31 Oct 2002) |
| 11741 | - Downgraded automake to 1.6.3 in an attempt to fix cygwin problems. (It |
| 11742 | turned out this didn't help though.) |
| 11743 | |
| 11744 | - Disable the DNS cache (by setting the timeout to 0) made libcurl leak |
| 11745 | memory. Avery Fay brought the example code that proved this. |
| 11746 | |
| 11747 | Version 7.10.2-pre2 |
| 11748 | |
| 11749 | Daniel (28 Oct 2002) |
| 11750 | - Upgraded to autoconf 2.54 and automake 1.7 on the release-build host. |
| 11751 | |
| 11752 | - Kevin Roth made the command line tool check for a CURL_CA_BUNDLE environment |
| 11753 | variable (if --cacert isn't used) and if not set, the Windows version will |
| 11754 | check for a file named "curl-ca-bundle.crt" in the current directory or the |
| 11755 | directory where curl is located. That file is then used as CA root cert |
| 11756 | bundle. |
| 11757 | |
| 11758 | - Avery Fay pointed out that curl's configure scrip didn't get right if you |
| 11759 | used autoconf newer than 2.52. This was due to some badly quoted code. |
| 11760 | |
| 11761 | Version 7.10.2-pre1 |
| 11762 | |
| 11763 | Daniel (23 Oct 2002) |
| 11764 | - Emiliano Ida confirmed that we now build properly with the Borland C++ |
| 11765 | compiler too. We needed yet another fix for the ISO cpp check in the curl.h |
| 11766 | header file. |
| 11767 | |
| 11768 | - Yet another fix was needed to get the HTTP download without headers to work. |
| 11769 | This time it was needed if the first "believed header" was read all in the |
| 11770 | first read. Test 306 has not run properly since the 11th october fix. |
| 11771 | |
| 11772 | Daniel (21 Oct 2002) |
| 11773 | - Zvi Har'El pointed out a problem with curl's name resolving on Redhat 8 |
| 11774 | machines (running IPv6 disabled). Mats Lidell let me use an account on his |
| 11775 | machine and I could verify that gethostbyname_r() has been changed to return |
| 11776 | EAGAIN instead of ERANGE when the given buffer size is too small. This is |
| 11777 | glibc 2.2.93. |
| 11778 | |
| 11779 | - Albert Chin helped me get the -no-undefined option corrected in |
| 11780 | lib/Makefile.am since Cygwin builds want it there while Solaris builds don't |
| 11781 | want it present. Kevin Roth helped me try it out on cygwin. |
| 11782 | |
| 11783 | - Nikita Schmidt provided a bug fix for a FOLLOWLOCATION bug introduced when |
| 11784 | the ../ support got in (7.10.1). |
| 11785 | |
| 11786 | Daniel (18 Oct 2002) |
| 11787 | - Fabrizio Ammollo pointed out a remaining problem with FOLLOWLOCATION in |
| 11788 | the multi interface. |
| 11789 | |
| 11790 | Daniel (17 Oct 2002) |
| 11791 | - Richard Cooper's experimenting proved that -j (CURLOPT_COOKIESESSION) didn't |
| 11792 | work quite as supposed. You needed to set it *before* you use |
| 11793 | CURLOPT_COOKIEFILE, and we dont' want that kind of dependencies. |
| 11794 | |
| 11795 | Daniel (15 Oct 2002) |
| 11796 | - Andrés GarcÃa provided corrections for erratas in four libcurl man pages. |
| 11797 | |
| 11798 | Daniel (13 Oct 2002) |
| 11799 | - Starting now, we generate and include PDF versions of all the docs in the |
| 11800 | release archives. |
| 11801 | |
| 11802 | Daniel (12 Oct 2002) |
| 11803 | - Trying to connect to a host on a bad port number caused the multi interface |
| 11804 | to never return failure and it appeared to keep on trying forever (it just |
| 11805 | didn't do anything). |
| 11806 | |
| 11807 | Daniel (11 Oct 2002) |
| 11808 | - Downloading HTTP without headers didn't work 100%, some of the initial data |
| 11809 | got written twice. Kevin Roth reported. |
| 11810 | |
| 11811 | - Kevin Roth found out the "config file" parser in the client code could |
| 11812 | segfault, like if DOS newlines were used. |
| 11813 | |
| 11814 | Version 7.10.1 (11 Oct 2002) |
| 11815 | |
| 11816 | Daniel (10 Oct 2002) |
| 11817 | - Jeff Lawson fixed a few problems with connection re-use that remained when |
| 11818 | you set CURLOPT_PROXY to "". |
| 11819 | |
| 11820 | Daniel (9 Oct 2002) |
| 11821 | - Craig Davison found a terrible flaw and Cris Bailiff helped out in the |
| 11822 | search. Getting HTTP data from servers when the headers are split up in |
| 11823 | multiple reads, could cause junk data to get inserted among the saved |
| 11824 | headers. This only concerns HTTP(S) headers. |
| 11825 | |
| 11826 | Daniel (8 Oct 2002) |
| 11827 | - Vincent Penquerc'h gave us the good suggestion that when the ERRRORBUFFER |
| 11828 | is set internally, the error text is sent to the debug function as well. |
| 11829 | |
| 11830 | - I fixed the telnet code to timeout properly as the option tells it to. On |
| 11831 | non-windows platforms. |
| 11832 | |
| 11833 | Daniel (7 Oct 2002) |
| 11834 | - John Crow pointed out that libcurl-the-guide wasn't included in the release |
| 11835 | tarball! |
| 11836 | |
| 11837 | - Kevin Roth pointed out that make install didn't do right if build outside |
| 11838 | the source tree (ca-bundle wise). |
| 11839 | |
| 11840 | - FOLLOWLOCATION bugfix for the multi interface |
| 11841 | |
| 11842 | Daniel (4 Oct 2002) |
| 11843 | - Kevin Roth got problems with his cygwin build with -no-undefined was not |
| 11844 | present in lib/Makefile.am so I put it back in there again. The poor one who |
| 11845 | needs to remove it again must write a configure script to detect that need. |
| 11846 | |
| 11847 | - Ralph Mitchell pointed out that curl was a bit naive and didn't deal with ./ |
| 11848 | or ../ stuff in the string passed back in a Location: header when following |
| 11849 | locations. |
| 11850 | |
| 11851 | - Albert Chin helped me to work out a better configure.in check for zlib, and |
| 11852 | both --without-zlib and -with-zlib seem to work rather well right now. |
| 11853 | |
| 11854 | - Zvi Har'El improvied the OpenSSL ENGINE check in the configure script to |
| 11855 | become more accurate. |
| 11856 | |
| 11857 | Daniel (1 Oct 2002) |
| 11858 | - Detlef Schmier pointed out the lack of a --without-libz option to configure, |
| 11859 | so I added one. |
| 11860 | |
| 11861 | Version 7.10 (1 Oct 2002) |
| 11862 | |
| 11863 | Daniel (30 Sep 2002) |
| 11864 | - Modified the curl_version_info() proto and returned struct once again, and |
| 11865 | updated the man page accordingly. |
| 11866 | |
| 11867 | - Cris Bailiff found out that the pre-releases crashed on name lookups on |
| 11868 | names such as "a:" or "baz:" (on Linux versions not being IPv6-enabled) due |
| 11869 | to some weird return codes from gethostbyname_r(). I'll blame the complete |
| 11870 | lack of docs in that department. Cris provided a fix, which I modified only |
| 11871 | slightly. |
| 11872 | |
| 11873 | Daniel (27 Sep 2002) |
| 11874 | - After a suggestion from Christian Kurz to Debian curl package maintainer |
| 11875 | Domenico Andreoli, I made it possible to override the proxy environment |
| 11876 | variables better. Now, by setting -x "" you can explicitly tell libcurl to |
| 11877 | not use a proxy, no matter whan the environment variables say. |
| 11878 | |
| 11879 | Version 7.10-pre4 |
| 11880 | |
| 11881 | Daniel (26 Sep 2002) |
| 11882 | - Extended curl_version_info() more and wrote a man page for it. |
| 11883 | |
| 11884 | Daniel (25 Sep 2002) |
| 11885 | - libcurl could leak memory when downloading multiple files using http ranges, |
| 11886 | reported and fixed by Jean-Luc Guevel. |
| 11887 | |
| 11888 | - Walter J. Mack provided code and docs for the new curl_free() function that |
| 11889 | shall be used to free memory that is allocated by libcurl and returned back |
| 11890 | to the application, as curl_escape() and curl_unescape() do. |
| 11891 | |
| 11892 | - Yarram Sunil pointed out a flaw in the multi interface where a failed |
| 11893 | connection didn't close down properly and thus a second transfer using the |
| 11894 | same handle failed. |
| 11895 | |
| 11896 | - Andrés GarcÃa fixed a flaw that made (among other things) dict-fetches |
| 11897 | return a random value. |
| 11898 | |
| 11899 | Daniel (24 Sep 2002) |
| 11900 | - Wez Furlong brought his initial patch that introduced curl_version_info(). |
| 11901 | We might need to tweak it somewhat before release. |
| 11902 | |
| 11903 | Daniel (20 Sep 2002) |
| 11904 | - Craig Markwardt fixed another Tru64 IP resolve problem. |
| 11905 | |
| 11906 | Daniel (19 Sep 2002) |
| 11907 | - Dolbneff A.V and Spiridonoff A.V made the file:// code work with resumes |
| 11908 | in the same style other code does. |
| 11909 | |
| 11910 | - Ilguiz Latypov fixed a flaw in the client code when fetching multiple URLs |
| 11911 | and -C - was used. The first file's resume position was then accidentally |
| 11912 | reused on all the other files too. |
| 11913 | |
| 11914 | Daniel (18 Sep 2002) |
| 11915 | - The curl_easy_setopt.3 man page was greatly modified and the options have |
| 11916 | now been grouped in logical groups so that it should be somewhat easier to |
| 11917 | read it and find things you search for. |
| 11918 | |
| 11919 | Daniel (13 Sep 2002) |
| 11920 | - Kevin Roth pinpointed a scary flaw in libcurl, when the HTTP server doesn't |
| 11921 | send any headers back, only raw content. Right, that is a violation of the |
| 11922 | standard but still happens at times and we need to deal with it. Test case |
| 11923 | 306 was added to verify that we do right now. |
| 11924 | |
| 11925 | Version 7.10-pre3 |
| 11926 | |
| 11927 | Daniel (11 Sep 2002) |
| 11928 | - Lukasz Czekierda found out that curl didn't send a correct HTTP Host: header |
| 11929 | when you specified the URL with an IPv6 IP-address. |
| 11930 | |
| 11931 | Daniel (4 Sep 2002) |
| 11932 | - Sven Neuhaus made --silent being acknowledged even when multiple URLs |
| 11933 | were used. It used to output "[1/2]: http://host/a.html.de --> a.html.d" etc |
| 11934 | even when told to shut up. |
| 11935 | |
| 11936 | Daniel (3 Sep 2002) |
| 11937 | - Updated all source code headers to use MIT-license references only, and |
| 11938 | point to the COPYING file and the http://curl.haxx.se/docs/copyright.html |
| 11939 | URL. I've cut out all references to MPL that I could find. |
| 11940 | |
| 11941 | - Corected the makefiles to not always use -lz when linking |
| 11942 | |
| 11943 | Version 7.10-pre2 |
| 11944 | |
| 11945 | Daniel (2 Sep 2002) |
| 11946 | - James Gallagher added Content-Encoding support to libcurl so now curl and |
| 11947 | libcurl-using apps can request compressed contents using the 'deflate' |
| 11948 | method. See the special file lib/README.encoding for details. |
| 11949 | |
| 11950 | curl --compressed is now used to request compressed contents. |
| 11951 | |
| 11952 | curl-config --feature will include 'libz' if this feature was around when |
| 11953 | the library was built. |
| 11954 | |
| 11955 | Daniel (30 Aug 2002) |
| 11956 | - Applied an anonymous SOCKS5-proxy patch. Not properly working in all |
| 11957 | situations though, as all getaddrinfo()-using libcurls will fail on this. |
| 11958 | This is because of the somewhat naive way the current code tries to extract |
| 11959 | the IP address of the proxy. |
| 11960 | |
| 11961 | - Fixed up the SSL cert fixes from the other day even more after more inputs |
| 11962 | from Cris. Added three new SSL error codes to make the |
| 11963 | CURLE_SSL_CONNECT_ERROR slightly less overloaded. |
| 11964 | |
| 11965 | Daniel (27 Aug 2002) |
| 11966 | - After lots of talk with Tom Zerucha, Nick Gimbrone and Cris Bailiff I |
| 11967 | decided to talk the bold path and I now made libcurl do CA certificate |
| 11968 | verification by default. Thus library users need to explicitly turn this off |
| 11969 | if you want to connect to sites without proper checking. We also install a |
| 11970 | CA cert bundle on 'make install' now. |
| 11971 | |
| 11972 | The curl tool now requires the -k/--insecure option in order to allow |
| 11973 | connections and operations on SSL sites that aren't properly verified with |
| 11974 | -cafile or --capath. |
| 11975 | |
| 11976 | curl-config --ca displays the built-in path to the CA cert bundle. |
| 11977 | |
| 11978 | Daniel (26 Aug 2002) |
| 11979 | - Andrew Francis cleaned up some code that now compiles fine without the need |
| 11980 | for ugly MSVC pragmas. |
| 11981 | |
| 11982 | - Keith MacDonald found a minor bug in src/main.c that made it close stdin |
| 11983 | instead of the actual file handle. It shouldn't have resulted in much |
| 11984 | trouble as most operating systems close all file handles on process exit |
| 11985 | anyway. |
| 11986 | |
| 11987 | Daniel (22 Aug 2002) |
| 11988 | - Markus Oberhumer provided some documentation for his previously provided |
| 11989 | CURLOPT_NOSIGNAL fix. |
| 11990 | |
| 11991 | - Patched the lib/Makefile.am to hopefully no longer complain on undefined |
| 11992 | symbols that seemed to occur on builds with shared OpenSSL libraries on |
| 11993 | Solaris lately... |
| 11994 | |
| 11995 | Daniel (20 Aug 2002) |
| 11996 | - Fixed compiler warnings on MSCV++ compiles. We're looking for help here: |
| 11997 | remove the pragmas from lib/config-win32.h and adjust the sources where |
| 11998 | the warnings occur. Hiding them with pragmas like this is not the correct |
| 11999 | way of dealing with compiler warnings. |
| 12000 | |
| 12001 | Daniel (13 Aug 2002) |
| 12002 | - Ulrich Zadow made the global include files in curl/* include themselves |
| 12003 | using "curl.h" instead of <curl/curl.h> which thus allows people to more |
| 12004 | freely decide how to include curl and how to setup their include paths. |
| 12005 | |
| 12006 | - Sterling Hughes added the curl_share* interface, somewhat as discussed |
| 12007 | previously. |
| 12008 | |
| 12009 | - Jörn Hartroth pointed out that poll() was used in the pre1 source code and |
| 12010 | it isn't very portable, so now I check for it in the configure script and |
| 12011 | work around it. |
| 12012 | |
| 12013 | Version 7.9.9-pre1 |
| 12014 | |
| 12015 | Daniel (12 Aug 2002) |
| 12016 | - Applied my initial take on making the multi stuff more asynchronous. Connects |
| 12017 | should now return back without "hanging" until it has connected for real. |
| 12018 | This should also be the case for FTP-PASV connects. |
| 12019 | |
| 12020 | Daniel (9 Aug 2002) |
| 12021 | - Applied Markus F.X.J. Oberhumer's patch that introduces CURLOPT_NOSIGNAL, |
| 12022 | which effectively prevents libcurl from doing anything that may cause |
| 12023 | signals to get sent. This is basicly for multi-threaded applications that |
| 12024 | now can use timeouts properly, without risking any signals to burst in and |
| 12025 | ruin the party. |
| 12026 | |
| 12027 | Daniel (5 Aug 2002) |
| 12028 | - Lukasz Czekierda reported that RFC2732-style literal IPv6 addresses didn't |
| 12029 | work. When did that code vanish? Anyway, it's back again now and seems to |
| 12030 | work! |
| 12031 | |
| 12032 | - Jonatan Lander found out that POSTing an empty string didn't work with the |
| 12033 | command line tool. |
| 12034 | |
| 12035 | Daniel (3 Aug 2002) |
| 12036 | - Jörn Hartroth fixed the libcurl.def file to build the windows DLL with |
| 12037 | the multi interface enabled. |
| 12038 | |
| 12039 | Daniel (1 Aug 2002) |
| 12040 | - The ftp PORT command now uses a better default IP address, as it will |
| 12041 | extract and use the local IP address used by the control connection. |
| 12042 | |
| 12043 | - Modified the #include lines in curl/multi.h to work better on more |
| 12044 | platforms. |
| 12045 | |
| 12046 | Daniel (31 Jul 2002) |
| 12047 | - Attempted a fix for Ray DeGennaro's reported HP-UX host name resolve |
| 12048 | problems. |
| 12049 | |
| 12050 | Daniel (30 Jul 2002) |
| 12051 | - Priya Ramakrishnan and Ryan Jones compiles curl/curl.h with a C++ compiler |
| 12052 | and don't get __STDC__ defined, which required us to extend the preprocessor |
| 12053 | check for the ## operator usage. |
| 12054 | |
| 12055 | - Correct the description for CURLOPT_PASSWDFUNCTION, if set to NULL the |
| 12056 | internal default function will be put back. |
| 12057 | |
| 12058 | - danfuzz at milk.com found out that libcurl badly assumed a space after |
| 12059 | 'Set-Cookie:' so if it wasn't present, it caused the first letter of the |
| 12060 | cookie name to fall off! |
| 12061 | |
| 12062 | Daniel (29 Jul 2002) |
| 12063 | - The password prompt asking for user password used stdout and now uses |
| 12064 | stderr instead to better allow redirecting. It also leaked a fopen() file |
| 12065 | handle that is now fixed. |
| 12066 | |
| 12067 | Daniel (28 Jul 2002) |
| 12068 | - HAVE_SETVBUF was left out from src/main.c which made -N not work. Found out |
| 12069 | by M T. |
| 12070 | |
| 12071 | Daniel (26 Jun 2002) |
| 12072 | - Glen Nakamura solved a crash in the name resolving function for IP-only |
| 12073 | addresses on Alpha Linux (at least). |
| 12074 | |
| 12075 | - T. Bharath corrected the high resolution timer introduced in 7.9.8. |
| 12076 | |
| 12077 | Daniel (22 Jun 2002) |
| 12078 | - Andrés GarcÃa pointed out man page errors in curl_formadd.3. I fixed. |
| 12079 | |
| 12080 | Daniel (19 Jun 2002) |
| 12081 | - Chris Combes pointed out a flaw in curl_escape(). I fixed. We no longer |
| 12082 | tries to generate nor parse '+' in URLs. Spaces become %20, and only %-codes |
| 12083 | are translated by curl_unescape(). |
| 12084 | |
| 12085 | Daniel (15 Jun 2002) |
| 12086 | - Added --limit-rate to the curl tool. Allows the user to set a maxmimum |
| 12087 | upper limit to how much bandwidth to use for transfers. |
| 12088 | |
| 12089 | - CURLOPT_BUFFERSIZE was added to libcurl. This sets a prefered size for the |
| 12090 | receive buffer in libcurl. The main point of this would be that the write |
| 12091 | callback gets called more often and with smaller chunks. |
| 12092 | |
| 12093 | Daniel (14 Jun 2002) |
| 12094 | - Yarram Sunil found out that the SocketIsDead() function performed a lot |
| 12095 | faster on Windows when removing the 1 microsecond timeout. |
| 12096 | |
| 12097 | - Hanno L. Kranzhoff fixed the VC++ project files. |
| 12098 | |
| 12099 | - Tom Mattison found out that ftp transfers closed the connection a little |
| 12100 | too often. |
| 12101 | |
| 12102 | - Miklos Nemeth posted a VC++ makefile fix and some INSTALL comments on how |
| 12103 | to disable specific protocols when building for Windows. |
| 12104 | |
| 12105 | Version 7.9.8 |
| 12106 | |
| 12107 | Daniel (13 Jun 2002) |
| 12108 | - Time to let this baby go. |
| 12109 | |
| 12110 | Daniel (12 Jun 2002) |
| 12111 | - Chris Combes added three new options for curl_formadd(): CURLFORM_BUFFER, |
| 12112 | CURLFORM_BUFFERPTR, CURLFORM_BUFFERLENGTH. They are used to create a |
| 12113 | multipart that appears as a regular file upload, but the data is provided |
| 12114 | with a pointer and length. |
| 12115 | |
| 12116 | - Nico Baggus made the VMS version use sigsetjmp() too. |
| 12117 | |
| 12118 | - Jörn Hartroth fixed the mingw32 build using the mm lib. |
| 12119 | |
| 12120 | - Applied patches by Kris Kennaway that correct format string problems in |
| 12121 | lib/ftp.c and lib/ldap.c. |
| 12122 | |
| 12123 | Version 7.9.8-pre3 |
| 12124 | |
| 12125 | Daniel (11 Jun 2002) |
| 12126 | - James Cone brought the idea of using sigsetjmp() in the signal handler to |
| 12127 | make the time-out of name lookups to work, even when the underlying name |
| 12128 | resolver library traps EINTR. The use of sigsetjmp() and siglongjmp() for |
| 12129 | this may be a bit drastic, and also not likely to exist on all platforms. I |
| 12130 | added careful checking for this in the configure script, even checks for it |
| 12131 | being a macro (which seems to be the case in for example Linux). |
| 12132 | |
| 12133 | sigsetjmp() seems to be mentioned in the Single Unix specification. |
| 12134 | |
| 12135 | - Miklos Nemeth brought a patch that allows libcurl to get built with specific |
| 12136 | protocols disabled. This is done by running ./configure |
| 12137 | --disable-[protocol]. |
| 12138 | |
| 12139 | - FTP range downloads could make CURLE_FTP_WRITE_ERROR get returned. We now |
| 12140 | make precautions to not return this for range downloads. |
| 12141 | |
| 12142 | Added test case 135 that makes an ftp range download. Had to tweak the |
| 12143 | runtests.pl script a bit too. |
| 12144 | |
| 12145 | - Bug report #566835 identified a strlen() on a NULL pointer. Added additional |
| 12146 | check to prevent this. |
| 12147 | |
| 12148 | Daniel (10 Jun 2002) |
| 12149 | - Found and corrected a connect failure problem that didn't create a human |
| 12150 | error text. |
| 12151 | |
| 12152 | - Added code to compile with OpenSSL 0.9.7. Based on patch from Jacob Meuser |
| 12153 | and comments from Götz Babin-Ebell. |
| 12154 | |
| 12155 | - Gautam Mani found a socket descriptor leak that happened when FTP transfers |
| 12156 | failed and you reinvoked curl_easy_perform(). |
| 12157 | |
| 12158 | Daniel (5 Jun 2002) |
| 12159 | - Gustaf Hui corrected curl_multi_remove_handle() so that it won't crash no |
| 12160 | matter when you decide to remove the CURL handle. |
| 12161 | |
| 12162 | - HAVE_RAND_STATUS was added to lib/config-win32.h by Andreas Olsson, as it |
| 12163 | makes windows builds stop complaining about "weak seeding" when it in fact |
| 12164 | isn't. |
| 12165 | |
| 12166 | - Another 64bit architecture crash that was introduced in 7.9.7 was now |
| 12167 | removed, as bug report #564585 clarified. This happened due to our attempts |
| 12168 | to only allocate only as much memory as is actually needed for name |
| 12169 | resolving (using realloc) which called for a function that could 'move' a |
| 12170 | hostent struct in memory. |
| 12171 | |
| 12172 | Version 7.9.8-pre2 |
| 12173 | |
| 12174 | Daniel (3 Jun 2002) |
| 12175 | - T. Bharath fixed the CURLINFO_REDIRECT_TIME to return a correct time and |
| 12176 | made the CURLINFO_REQUEST_SIZE return the correct total request size. He |
| 12177 | also made the win32 timers use higher resolution than before. |
| 12178 | |
| 12179 | Daniel (29 May 2002) |
| 12180 | - Renaud Chaillat made me aware of the fact that libcurl returned an error if |
| 12181 | you tried to get an empty FTP file. This seemed like a wrong thing to do, so |
| 12182 | now it no longer does that! I just hope that no one built anything fancy |
| 12183 | upon this unexpected behavior... |
| 12184 | |
| 12185 | Daniel (28 May 2002) |
| 12186 | - Cris Bailiff brought CURLOPT_CAPATH that works like CURLOPT_CAINFO but |
| 12187 | specifies a path to a directory with certificates rather than a single file |
| 12188 | with them all concatenated. --capath was added to the command line tool |
| 12189 | for the same function. |
| 12190 | |
| 12191 | Windows users need to pay attention that the directory should be setup with |
| 12192 | the c_rehash tool of the OpenSSL package, and that creates symlinks by |
| 12193 | default that need to be replaced with actual copies to work on Windows. |
| 12194 | |
| 12195 | - Gustaf Hui provided new code that changes how curl_multi_info_read() |
| 12196 | messages are stored, so that they don't have to be kept around for the multi |
| 12197 | handle's entire life time. He also made it return failure codes properly |
| 12198 | which it didn't do before. |
| 12199 | |
| 12200 | Daniel (27 May 2002) |
| 12201 | - Gustaf Hui pointed out that running curl_multi_perform() without doing |
| 12202 | curl_multi_fdset() first was not really a working combo. I added an internal |
| 12203 | check for this and have some extra select() code without timeout to make the |
| 12204 | library internals work identically nevertheless. We might need to somehow |
| 12205 | either document that once you've used the *_fdset() you should remain using |
| 12206 | them in select() or you should blank them somehow so that libcurl won't go |
| 12207 | crazy. |
| 12208 | |
| 12209 | Version 7.9.8-pre1 |
| 12210 | |
| 12211 | Daniel (22 May 2002) |
| 12212 | - James Cone brought an excellent patch, including several tests and docs! |
| 12213 | CURLOPT_NETRC now takes an enum as argument instead of the previous boolean. |
| 12214 | --netrc-optional was introduced as an addition to --netrc to allow the |
| 12215 | command line client to take use of all that new netrc stuff. |
| 12216 | |
| 12217 | - Bug report #558888 showed a case where libcurl re-used the previous host |
| 12218 | name when a connection over a proxy was re-used but to a different target |
| 12219 | host. |
| 12220 | |
| 12221 | Daniel (21 May 2002) |
| 12222 | - Edin Kadribasic helped me sort out a problem to made libcurl crash when |
| 12223 | trying to HTTP POST an empty string. |
| 12224 | |
| 12225 | - Clarified that Juergen Wilke donated the original tests/server/sws.c code. |
| 12226 | |
| 12227 | - Jean-Philippe Barrette-LaPierre made curl_formadd() return a typedef named |
| 12228 | CURLFORMcode instead of the previous 'int', and the various return codes are |
| 12229 | now globally exported. It allows applications to better figure out what goes |
| 12230 | wrong when curl_formadd() returns errors. |
| 12231 | |
| 12232 | Daniel (20 May 2002) |
| 12233 | - Roland Zimmermann pointed out that SSL_CTX_use_certificate_chain_file() |
| 12234 | is prefered to SSL_CTX_use_certificate_file(). |
| 12235 | |
| 12236 | Daniel (17 May 2002) |
| 12237 | - Bug report #556869 pointed out that src/writeout.c didn't compile on freebsd |
| 12238 | after my AIX fixes the other week. |
| 12239 | |
| 12240 | - Bug report #556930 pointed out a FreeBSD core dump introduced in 7.9.7 in |
| 12241 | the DNS struct realloc stuff. Actually, this crash could happen on all |
| 12242 | systems that made the pack_hostent() function get invoked. |
| 12243 | |
| 12244 | - I removed several compiler warnings in the test suite's HTTP server. |
| 12245 | |
| 12246 | Version 7.9.7 |
| 12247 | |
| 12248 | Daniel (10 May 2002) |
| 12249 | - Kevin Roth adjusted the --trace-ascii output slightly. |
| 12250 | |
| 12251 | - Paul Harrington found out that src/writeout.c needed an additional header |
| 12252 | file included for AIX builds |
| 12253 | |
| 12254 | Version 7.9.7-pre2 |
| 12255 | |
| 12256 | Daniel (7 May 2002) |
| 12257 | - Updated the man page with --trace-ascii and -j/--junk-session-cookies. |
| 12258 | |
| 12259 | - Made --trace-ascii do pretty much the same as --trace but without the hex |
| 12260 | part in the output. |
| 12261 | |
| 12262 | - Added CURLOPT_COOKIESESSION that when enabled makes libcurl ignore session |
| 12263 | cookies read from a file. This option is enforced by the curl command line |
| 12264 | tool using the new -j/--junk-session-cookies option. After discussions with |
| 12265 | Kevin Roth. This makes it easier to use curl to fully emulate a browser's |
| 12266 | behavior, even when it comes to "session cookies". Session cookies are |
| 12267 | cookies that a normal browser discards when the browser is shut |
| 12268 | down. They're identified by not having any expire date/time. |
| 12269 | |
| 12270 | - When CURLOPT_DEBUGDATA was set, it ruined the CURLOPT_STDERR setting and |
| 12271 | this was discovered when --trace was made to crash. |
| 12272 | |
| 12273 | - Using -v and --trace at the same time confused matters. -v is now pretty |
| 12274 | much ignored when --trace or --trace-ascii is used. |
| 12275 | |
| 12276 | - Made --trace (and --trace-ascii) support - as file name to pass output to |
| 12277 | stdout instead. It makes it consistent with how other options work. |
| 12278 | |
| 12279 | Version 7.9.7-pre1 |
| 12280 | |
| 12281 | Daniel (6 May 2002) |
| 12282 | - Added multi-post.c to the examples directory. I got the basic source for |
| 12283 | this from Gustaf Hui. |
| 12284 | |
| 12285 | Daniel (3 May 2002) |
| 12286 | - CURL_MAX_WRITE_SIZE is now an exported #define in the curl/curl.h header and |
| 12287 | can be used to figure out the maximum buffer size your write callback can |
| 12288 | get. |
| 12289 | |
| 12290 | - CURLOPT_READDATA is now an alias for CURLOPT_INFILE and CURLOPT_WRITEDATE is |
| 12291 | an alias for CURLOPT_FILE. These two were added for conformity. Most other |
| 12292 | callback function's userdata are provided with options using a similar name- |
| 12293 | scheme. |
| 12294 | |
| 12295 | - Added "--trace [file]" to the command line tool. It makes a very detailed |
| 12296 | trace dump get stored, with a full protocol dump that includes all received |
| 12297 | and transmitted data. This could be a very effective tool for debugging what |
| 12298 | goes wrong. This dump includes every byte the way it is sent to/received |
| 12299 | from the server. The dump is the plain-text version, so SSL transfers will |
| 12300 | still be readable. |
| 12301 | |
| 12302 | - I found out that the DEBUGFUNCTION was not called properly everywhere as we |
| 12303 | wanted it to. I fixed it. |
| 12304 | |
| 12305 | - -D now stores all headers to the same file if multiple URLs are given on the |
| 12306 | command line! Kevin Roth made me aware of that it didn't already do this! |
| 12307 | |
| 12308 | - Gustaf Hui wrote an excellent formpost example that used the multi |
| 12309 | interface. Unfortunately, it didn't work due to several bugs in how |
| 12310 | transfers were made when the multi interface was used. |
| 12311 | |
| 12312 | Daniel (2 May 2002) |
| 12313 | - Hanno Kranzhoff found out that when doing multiple transfers on the same |
| 12314 | easy handle, the progress meter would show a bad "currently downloaded |
| 12315 | value" when the transfer starts. |
| 12316 | |
| 12317 | Daniel (1 May 2002) |
| 12318 | - Applied another patch by Jacky Lam to make the name resolve info realloc() |
| 12319 | stuff work properly. |
| 12320 | |
| 12321 | Daniel (28 April 2002) |
| 12322 | - curl_multi_info_read() is now implemented! |
| 12323 | |
| 12324 | Daniel (27 April 2002) |
| 12325 | - Updated BUGS, TODO, FAQ, INSTALL and added BINDINGS. |
| 12326 | |
| 12327 | - I think I fixed the DNS cache prune crach Jacky Lam found and reported. |
| 12328 | |
| 12329 | - I cleaned up the name prefix stuff in the hash and llist modules. |
| 12330 | |
| 12331 | - FTP responses should now be better on timing out properly. The timeout value |
| 12332 | is maximum timeout for the entire request operation, but before this, the |
| 12333 | timeout was used as a maximum allowed time between two reads... |
| 12334 | |
| 12335 | Daniel (26 April 2002) |
| 12336 | - Fixed the test suite http server to not use snprintf() anymore due to better |
| 12337 | portability. |
| 12338 | |
| 12339 | Daniel (25 April 2002) |
| 12340 | - With Sterling Hughes' new DNS pruning, Jacky Lam asked if this wouldn't |
| 12341 | cause problems since the pruning is only checking the entry time, and it |
| 12342 | sure could cause problems. Therefor, I've now added and changed code so that |
| 12343 | this should not be a problem. Nowhere in the code will be store name |
| 12344 | resolved information around so that a sunsequent DNS cache prune should |
| 12345 | cause a problem. This of course called for some mild internal changes. |
| 12346 | |
| 12347 | Daniel (23 April 2002) |
| 12348 | - Improved the 'no_proxy' check, as using port numbers in the URL confused it |
| 12349 | previously. Reported by Erwan Legrand in bug report #547484. |
| 12350 | |
| 12351 | - The --interface option now works even on IPv6 enabled builds. Reported by |
| 12352 | 'thor'. |
| 12353 | |
| 12354 | Daniel (22 April 2002) |
| 12355 | - The #defines names starting with TIMECOND now has CURL_ prefixes. (The old |
| 12356 | names are still #defined too.) Pointed out by Robert Olson. |
| 12357 | |
| 12358 | - Jacky Lam brought code that lets the name resolve function only use as much |
| 12359 | memory as it actually needs. This only works on certain operating systems, |
| 12360 | but is totally transparant to all users. |
| 12361 | |
| 12362 | Daniel (19 April 2002) |
| 12363 | - Bjorn Reese fixed pack_hostent to work properly with 64 bit pointers. |
| 12364 | |
| 12365 | Daniel (18 April 2002) |
| 12366 | - Sterling Hughes added code to prune old DNS cache entries, since Jacky Lam |
| 12367 | experienced very big caches. |
| 12368 | |
| 12369 | Daniel (17 April 2002) |
| 12370 | - Dirk Manske patched the 301 response to work against the RFC but more like |
| 12371 | common browsers do. If a POST get a 301 back, it'll switch to GET in the |
| 12372 | next request (if location-following is enabled). |
| 12373 | |
| 12374 | Daniel (16 April 2002) |
| 12375 | - Dirk Manske posted a patch originally written by Ingo Wilken that introduced |
| 12376 | two new CURLINFO_* values: CURLINFO_REDIRECT_TIME and |
| 12377 | CURLINFO_REDIRECT_COUNT. |
| 12378 | |
| 12379 | Daniel (15 April 2002) |
| 12380 | - Jonatan Lander patched the verbose text 'Disables POST, goes with GET' to |
| 12381 | reflect reality better, like when the first request isn't POST and when |
| 12382 | the second isn't GET... :-) |
| 12383 | |
| 12384 | - Craig Davison pointed out that when curl_formadd()ing a file that doesn't |
| 12385 | exist, libcurl doesn't return error. Now, curl_easy_perform() will return |
| 12386 | CURLE_READ_ERROR if that is the case. Test 41 was added to verify this. |
| 12387 | |
| 12388 | Version 7.9.6 |
| 12389 | |
| 12390 | Daniel (14 April 2002) |
| 12391 | - Dirk Manske brought a fix that makes libcurl strip off white spaces from the |
| 12392 | beginning of cookie contents. |
| 12393 | |
| 12394 | - Had to patch include/curl/curl.h since MSVC doesn't set the __STDC__ define. |
| 12395 | Moonesamy pointed out the problem, Bjorn Reese the solution. |
| 12396 | |
| 12397 | Version 7.9.6-pre5 |
| 12398 | |
| 12399 | Daniel (12 April 2002) |
| 12400 | - Fixed the TIMER_CONNECT to be more accurate for FTP transfers. Previously |
| 12401 | FTP transfers got the "connect done" time set after the initial FTP commands |
| 12402 | and not directly after the TCP/IP connect as it should. |
| 12403 | |
| 12404 | I also made the time stamp get set even if the connect itself fails, which |
| 12405 | it didn't do previously. |
| 12406 | |
| 12407 | - Jean-Philippe Barrette-LaPierre provided his patch that introduces |
| 12408 | CURLOPT_DEBUGFUNCTION and CURLOPT_DEBUGDATA. They allow a program to a set a |
| 12409 | callback to receive debug/information data. That includes headers and data |
| 12410 | that is received and sent. CURLOPT_VERBOSE still controls it. |
| 12411 | |
| 12412 | By default, there is an internal debugfunction that will make things look |
| 12413 | and work as before if not changed. |
| 12414 | |
| 12415 | Daniel (10 April 2002) |
| 12416 | - Sebastien Willemijns found out that -x didn't use the default port number as |
| 12417 | is documented. It does now. |
| 12418 | |
| 12419 | - libcurl-errors.3 is a new man page attempting to document all libcurl error |
| 12420 | codes |
| 12421 | |
| 12422 | - Added two new error codes and changed the behaviour of two old ones |
| 12423 | slightly: |
| 12424 | |
| 12425 | CURLE_WRITE_ERROR |
| 12426 | This error was returned *both* for errors that occured when writing |
| 12427 | received data to a local file, as well as when we get problems writing data |
| 12428 | to a remote server. CURLE_SEND_ERROR has now been added for the latter |
| 12429 | error. |
| 12430 | |
| 12431 | CURLE_READ_ERROR |
| 12432 | This error was similarly returned *both* for errors when reading a local |
| 12433 | file, as well as when getting problems when reading network data. |
| 12434 | CURLE_RECV_ERROR has now been added for the latter error. |
| 12435 | |
| 12436 | (Two test cases were adjusted accordingly.) |
| 12437 | |
| 12438 | Daniel (9 April 2002) |
| 12439 | - runtests.pl now sets the HOME variable before running curl, to prevent any |
| 12440 | actual ~/.curlrc file to fool the tests! |
| 12441 | |
| 12442 | Version 7.9.6-pre4 |
| 12443 | |
| 12444 | Daniel (8 April 2002) |
| 12445 | - Michael Curtis provided new functionality for curl on some platforms. Using |
| 12446 | the --environment option, curl will *set* a bunch of environment variables |
| 12447 | to values. The names are the same ones as for the -w/--writeout option. |
| 12448 | |
| 12449 | For now, this only works on the RISC OS version, as this feature relies on |
| 12450 | both OS support and that it matches OS paradigms. |
| 12451 | |
| 12452 | - Jacky Lam provided a fix for getting headers-only when the reply is HTTP/1.0 |
| 12453 | and 304, I edited it slightly. |
| 12454 | |
| 12455 | Daniel (5 April 2002) |
| 12456 | - As requested by Jay Graves, the '.curlrc' file (or _curlrc as it is called |
| 12457 | when used in windows), is now loaded from the current directory if the HOME |
| 12458 | environment variable isn't set (or if it is too long). I also enlarged the |
| 12459 | array used to store the full file path in, to 512 bytes. |
| 12460 | |
| 12461 | - Kevin Roth pointed out to me why the "19 March" change regarding -G and -I |
| 12462 | was stupid and the change was reverted. Added test case 48 to verify the |
| 12463 | functionality. |
| 12464 | |
| 12465 | Version 7.9.6-pre3 |
| 12466 | |
| 12467 | Daniel (4 April 2002) |
| 12468 | - Jonatan Lander brought a patch that makes curl/curl.h compile nicely on |
| 12469 | pre-ISO compilers, like when using gcc -traditional. |
| 12470 | |
| 12471 | Daniel (3 April 2002) |
| 12472 | - Jacky Lam identified a glitch when getting headers-only, where libcurl would |
| 12473 | "hang" 1 second in vain in the select() loop before returning back. |
| 12474 | |
| 12475 | - Tor Arntsen brought a patch for multipart formposts. It turned out that the |
| 12476 | "CGI_Lite Perl package" makes some bad assumptions on what letters that may |
| 12477 | be used in boundary strings and thus curl could confuse it by including '+' |
| 12478 | and '/'. While this is standards-compliant, we change the behavior to work |
| 12479 | smoothly with existing software based on that package. |
| 12480 | |
| 12481 | Daniel (2 April 2002) |
| 12482 | - Gerhard Herre filed bug report #536238 where he pointed out a crash in |
| 12483 | verbose FTP passive transfers for AIX. |
| 12484 | |
| 12485 | - Clarence Gardner pointed out a minor flaw in how libcurl didn't properly |
| 12486 | take care of all errors that SSL_read() could return. |
| 12487 | |
| 12488 | - Jacky Lam fixed a MALLOCDEBUG problem in lib/getinfo.c |
| 12489 | |
| 12490 | Daniel (27 March 2002) |
| 12491 | - T. Bharath pointed out a flaw in the connection re-use function that didn't |
| 12492 | check proxy connections properly for "deadness" before they were re-used. |
| 12493 | |
| 12494 | - Pedro Neves found out that HTTP POSTing with --data-binary did not properly |
| 12495 | work under Windows as the file specified wasn't read fully binary! |
| 12496 | |
| 12497 | Daniel (25 March 2002) |
| 12498 | - Jacky Lam brought a fix that improves treatment of cookies using identical |
| 12499 | domains but with leading dots properly. |
| 12500 | |
| 12501 | Daniel (22 March 2002) |
| 12502 | - Miklos Nemeth updated the windows section of the docs/INSTALL file and the |
| 12503 | windows makefiles. |
| 12504 | |
| 12505 | - Jon Dillon provided us with several good-looking curl images for |
| 12506 | promotion. View them here http://curl.haxx.se/icons.html |
| 12507 | |
| 12508 | Daniel (20 March 2002) |
| 12509 | - Peter Verhas found out that CRLF replacement in uploads was not working. I |
| 12510 | fixed it, and added test case 128 that verifies the functionality. |
| 12511 | |
| 12512 | - The list formerly known as curl-main is now named curl-users and is hosted |
| 12513 | by sourceforge. Susbcribe to the new list, get off the old one. |
| 12514 | |
| 12515 | Version 7.9.6-pre2 |
| 12516 | |
| 12517 | Daniel (19 March 2002) |
| 12518 | - Made -G and -I on the same command line cause an error. |
| 12519 | |
| 12520 | - Moved the multi.h file to the "public" include directory and made it get |
| 12521 | included by curl.h so that no extra include files will be necessary to use |
| 12522 | it. |
| 12523 | |
| 12524 | Added docs and man pages for the multi interface to the release archive. |
| 12525 | Added the three example source codes too. |
| 12526 | |
| 12527 | Necessary steps in my campaign to sneak in the multi interface... ;-) |
| 12528 | |
| 12529 | - Updated the year in all copyright notices in all C and H files. |
| 12530 | |
| 12531 | Daniel (18 March 2002) |
| 12532 | - Tomas Szepe found out that -d and -G didn't mix as they should. I broke this |
| 12533 | in 7.9.5... Added test case 32 for this. |
| 12534 | |
| 12535 | Version 7.9.6-pre1 |
| 12536 | |
| 12537 | Daniel (16 March 2002) |
| 12538 | - Peter Verhas pointed out that the curl_escape and curl_unscape man pages |
| 12539 | contained factual errors. |
| 12540 | |
| 12541 | - Albert Choy found and corrected a problem with the verbose output when doing |
| 12542 | PASV ftp transfers. It could make libcurl crash. |
| 12543 | |
| 12544 | Details in bug report #530562: |
| 12545 | http://sourceforge.net/tracker/?func=detail&atid=100976&aid=530562&group_id=976 |
| 12546 | |
| 12547 | Daniel (15 March 2002) |
| 12548 | - Jun-ichiro itojun Hagino filed bug report #530204 that clearly pointed out |
| 12549 | the PF_INET fix from February 19 as a not-very-good fix as it broke IPv6 |
| 12550 | capability! That patch is now reverted. |
| 12551 | |
| 12552 | The problem with slow name lookups with getaddrinfo() on non-IPv6 enabled |
| 12553 | hosts are instead made by first checking if the stack is IPv6-enabled and if |
| 12554 | not, the PF_INET is used and otherwise we go with the full PF_UNSPEC. |
| 12555 | |
| 12556 | - T. Bharath pointed out that when we return an "error" from a WRITEFUNCTION |
| 12557 | as described in the man page, libcurl did not return the documented error |
| 12558 | code (CURLE_WRITE_ERROR) but would instead return CURLE_READ_ERROR. This is |
| 12559 | now corrected. |
| 12560 | |
| 12561 | Daniel (14 March 2002) |
| 12562 | - Setting CURLOPT_POST without setting CURLOPT_POSTFIELDS now read the POST- |
| 12563 | data from the callback. |
| 12564 | |
| 12565 | - The GOPHER support seems to be broken. I don't think I'll even start fixing |
| 12566 | it until someone else finds out... :-) |
| 12567 | |
| 12568 | Daniel (13 March 2002) |
| 12569 | - Trying 'curl -I ftp.sunet.se' or similar did a SIZE on a silly "(nil)" |
| 12570 | string. If such a file would be present, curl returned the size of it! Now |
| 12571 | we prevent this. |
| 12572 | |
| 12573 | - Curl_sendf() was fixed to deal with situation where Curl_write() would've |
| 12574 | blocked and thus return -1. |
| 12575 | |
| 12576 | - Setting CURLOPT_PROGRESSFUNCTION to NULL now restores the internal function. |
| 12577 | |
| 12578 | - All CURLFORM_* options can now be used in a CURLFORM_ARRAY except the |
| 12579 | CURLFORM_ARRAY itself. This was necessary since we couldn't expand the |
| 12580 | CURLFORM_* list proprely and unrestricted until this was the case. It was |
| 12581 | also a bit peculiar to users why some options could be used in an array |
| 12582 | while others couldn't. |
| 12583 | |
| 12584 | - Removed some silly CRLF lines that had accidentally slipped into src/main.c |
| 12585 | Nico Baggus pointed them out to me. |
| 12586 | |
| 12587 | Daniel (11 March 2002) |
| 12588 | - CURLFORM_FILENAME was added. This can be set when creating a file upload |
| 12589 | part, to set the 'filename' field to a custom value. If this isn't used, |
| 12590 | the actually used filename will be included instead (as libcurl always has |
| 12591 | done). curl was adjusted accordingly, and now -F accepts a 'filename=' field |
| 12592 | too, and allows constructs such as: |
| 12593 | |
| 12594 | -F 'name=@filename;filename=/dev/null' |
| 12595 | |
| 12596 | and this can be combined with type= too, in a manner similar to: |
| 12597 | |
| 12598 | -F "file=@log/test39.txt;filename=fakerfile;type=moo/foobar" |
| 12599 | |
| 12600 | Test case 39 was added to verify this functionality. |
| 12601 | |
| 12602 | - The struct formerly known as HttpPost is now named curl_httppost to properly |
| 12603 | use the curl name space. I added a #define for the old name to make existing |
| 12604 | programs compile even when this new include file is used. |
| 12605 | |
| 12606 | Daniel (8 March 2002) |
| 12607 | - Clifford also discovered that if the client code failed early, as when doing |
| 12608 | "curl -O" only, it would do fclose(NULL) which caused a segmentation fault |
| 12609 | on some systems. |
| 12610 | |
| 12611 | - Clifford Wolf provided a patch that made --progress-bar work again. |
| 12612 | |
| 12613 | - I closed bug report #527032 by making sure that we add a newline after a |
| 12614 | transfer when --progress-bar has been used. Before, without the newline, it |
| 12615 | made the subsequent text come out wrong. |
| 12616 | |
| 12617 | Version 7.9.5 |
| 12618 | |
| 12619 | Daniel (7 March 2002) |
| 12620 | - Added docs/KNOWN_BUGS to the release archive. |
| 12621 | |
| 12622 | Daniel (6 March 2002) |
| 12623 | - Kevin Roth corrected a flaw in the curl client globbing code that made it |
| 12624 | mess up backslashes. This was most notable on windows (cygwin) machines when |
| 12625 | using file://. |
| 12626 | |
| 12627 | - Brad provided another fix for building outside the source-tree. |
| 12628 | |
| 12629 | - Ralph Mitchell patched away a few compiler warnings in tests/server/sws.c |
| 12630 | |
| 12631 | Daniel (5 March 2002) |
| 12632 | - I noticed that the typedef in curl.h for the progress callback prototype was |
| 12633 | wrong and thus applications that used it would not get the proper input |
| 12634 | data. It used size_t where the implementation actually uses doubles! |
| 12635 | |
| 12636 | I wish I could blame someone else, but this was my fault. Again. |
| 12637 | |
| 12638 | Version 7.9.5-pre6 |
| 12639 | |
| 12640 | Daniel (4 March 2002) |
| 12641 | - Cut off the changes done during 2001 from this changelog file and put them |
| 12642 | in a separate file (CHANGES.2001), available from CVS of course. |
| 12643 | |
| 12644 | - I removed the multi directory. The example sources were moved to the |
| 12645 | docs/examples directory where they belong. |
| 12646 | |
| 12647 | - Wrote 7 new man pages for the current functions in the new multi interface. |
| 12648 | They're all still pretty basic, but we can use them as a start and add more |
| 12649 | contents to them when we figure out what to write. The large amount of man |
| 12650 | pages for libcurl now present made me decide to put them in a new separate |
| 12651 | subdirectory in the docs directory. Named libcurl. |
| 12652 | |
| 12653 | - Giuseppe Corbelli provided a template file for the EPM package manager, it |
| 12654 | gets generated nicely by the configure script now. |
| 12655 | |
| 12656 | Version 7.9.5-pre5 |
| 12657 | |
| 12658 | Daniel (1 March 2002) |
| 12659 | - Moved the memanalyze.pl script into the tests/ dir and added it to the |
| 12660 | release archives. It was previously only present in the CVS tree. |
| 12661 | |
| 12662 | - Modified the February 17th Host: fix, as bug report #523718 pointed out that |
| 12663 | it caused crashes! |
| 12664 | |
| 12665 | - Nico Baggus added more error codes to the VMS stuff. |
| 12666 | |
| 12667 | - Wesley Laxton brought the code that introduced the new CURLOPT_PREQUOTE |
| 12668 | option. It is just another FTP quote option that allows the user to specify |
| 12669 | a list of FTP commands to issue *just before* the transfer command (RETR or |
| 12670 | STOR etc). It has turned up a few systems that really need this. |
| 12671 | |
| 12672 | The curl command line tool can also take advantage of this by prefixing the |
| 12673 | quote commands with a plus (+) in similar style that post transfer quote |
| 12674 | commands are specified. |
| 12675 | |
| 12676 | This is not yet documented. There is no test case for this yet. |
| 12677 | |
| 12678 | Daniel (28 February 2002) |
| 12679 | - Ralph Mitchell made some serious efforts and put a lot of sweat in setting |
| 12680 | up scripts and things for me to be able to repeat his problems, and I |
| 12681 | finally could. I found a problem with the header byte counter that wasn't |
| 12682 | increased properly and thus we could return CURLE_GOT_NOTHING when we in |
| 12683 | fact had received data. |
| 12684 | |
| 12685 | Daniel (27 February 2002) |
| 12686 | - I had to revert the non-space parsing cookie fix I posted to the mailing |
| 12687 | list. Expire dates do have spaces and still need to get parsed properly! |
| 12688 | Instead we just ignore trailing white space and it seems to work... |
| 12689 | |
| 12690 | Daniel (26 February 2002) |
| 12691 | - Made the cookie property 'Max-Age' work, just since we already tried to |
| 12692 | support it, it is better to do it right. No one uses this anyway. |
| 12693 | |
| 12694 | - The cookie parser could crash if a really weird (illegal) cookie line was |
| 12695 | received. I also made it better discard really oddly formatted lines better. |
| 12696 | |
| 12697 | Made the cookie jar store the second field from the left using the syntax |
| 12698 | that Netscape and Mozilla probably like. Curl itself ignores it. |
| 12699 | |
| 12700 | Added test case 31 for these cases. |
| 12701 | |
| 12702 | Clay Loveless' email regarding some cookie issues started my cleanup. |
| 12703 | |
| 12704 | - Kevin Roth pointed out that my automake fiddles broke the ability to build |
| 12705 | outside the source-tree and I posted a patch to the mailing list that brings |
| 12706 | this ability back. |
| 12707 | |
| 12708 | Version 7.9.5-pre4 |
| 12709 | |
| 12710 | Daniel (25 February 2002) |
| 12711 | - Fiddled with the automake files to make all source files in the lib |
| 12712 | directory not have ../src in the include path, and the src sources shouldn't |
| 12713 | have ../lib! |
| 12714 | |
| 12715 | - All 79 test cases ran OK under Linux and Solaris using the new HTTP server |
| 12716 | in the test suite. The new HTTP server was first donated by Georg Horn and |
| 12717 | subsequently modified to work with the test suite. It is currently still not |
| 12718 | portable enough to run on "all over" but this is a start and I can run all |
| 12719 | curl tests on my machines. This is an important requirement for the upcoming |
| 12720 | public release. |
| 12721 | |
| 12722 | - Using -d and -I on the same command line now reports an error, as it implies |
| 12723 | two different HTTP requests that can't be mixed. |
| 12724 | |
| 12725 | - Jeffrey Pohlmeyer provided a patch that made the -w/--write-out option |
| 12726 | support %{content_type} to get the content type of the recent download. |
| 12727 | |
| 12728 | - Kevin Roth reported that pre2 and pre3 didn't compile properly on cygwin, |
| 12729 | and this was because I used #ifdef HAVE_WINSOCK_H in lib/multi.h to figure |
| 12730 | out if we could include winsock.h which turns out not to be a wise choice to |
| 12731 | do on cygwin since it has the file but can't include it! |
| 12732 | |
| 12733 | Daniel (22 February 2002) |
| 12734 | - Added src/config-vms.h to the release archive. |
| 12735 | |
| 12736 | - Fixed the connection timeout value again, the change from February 18 wasn't |
| 12737 | complete. |
| 12738 | |
| 12739 | Version 7.9.5-pre3 |
| 12740 | |
| 12741 | Daniel (21 February 2002) |
| 12742 | - Kevin Roth and Andrés GarcÃa both found out that lib/config.h.in was missing |
| 12743 | in the pre-release archive and thus the configure script failed. |
| 12744 | |
| 12745 | Version 7.9.5-pre2 |
| 12746 | |
| 12747 | Daniel (20 February 2002) |
| 12748 | - Andrés GarcÃa provided a solution to bug report #515228. the total time |
| 12749 | counter was not set correctly when -I was used during some conditions (all |
| 12750 | headers were read in one single read). |
| 12751 | |
| 12752 | - Nico Baggus provided a huge patch with minor tweaks all over to make curl |
| 12753 | compile nicely on VMS. |
| 12754 | |
| 12755 | Daniel (19 February 2002) |
| 12756 | - Rick Richardson found out that by replacing PF_UNSPEC with PF_INET in the |
| 12757 | getaddrinfo() calls, he could speed up some name resolving calls with an |
| 12758 | order of magnitudes on his Redhat Linux 7.2. |
| 12759 | |
| 12760 | - Philip Gladstone found a second INADDR_NONE problem where we used long |
| 12761 | intead of in_addr_t which caused 64bit problemos. We really shouldn't define |
| 12762 | that on two different places. |
| 12763 | |
| 12764 | Daniel (18 February 2002) |
| 12765 | - Philip Gladstone found a problem in how HTTP requests were sent if the |
| 12766 | request couldn't be sent all at once. |
| 12767 | |
| 12768 | - Emil found and corrected a bad connection timeout comparison that made curl |
| 12769 | use the longest of connect-timeout and timout as a timeout value, instead of |
| 12770 | the shortest as it was supposed to! |
| 12771 | |
| 12772 | - Aron Roberts provided updated information about LDAP URL syntax to go into |
| 12773 | the manual as a replacement for the old references. |
| 12774 | |
| 12775 | Daniel (17 February 2002) |
| 12776 | - Philip Gladstone pointed out two missing include files that made curl core |
| 12777 | dump on 64bit architectures. We need to pay more attention on these details. |
| 12778 | It is *lethal* to for example forget the malloc() prototype, as 'int' is |
| 12779 | 32bit and malloc() must return a 64bit pointer on these platforms. |
| 12780 | |
| 12781 | - Giaslas Georgios fixed a problem with Host: headers on repeated requests on |
| 12782 | the same handle using a proxy. |
| 12783 | |
| 12784 | Daniel (8 February 2002) |
| 12785 | - Hanno L. Kranzhoff accurately found out that disabling the Expect: header |
| 12786 | when doing multipart formposts didn't work very well. It disabled other |
| 12787 | parts of the request header too, resulting in a broken header. When I fixed |
| 12788 | this, I also noticed that the Content-Type wasn't possible to disable. It is |
| 12789 | now, even though it probably is really stupid to try to do this (because of |
| 12790 | the boundary string that is included in the internally generated header, |
| 12791 | used as form part separator.) |
| 12792 | |
| 12793 | Daniel (7 February 2002) |
| 12794 | - I moved the config*.h files from the root directory to the lib/ directory. |
| 12795 | |
| 12796 | - I've added the new test suite HTTP server to the CVS repository, It seems to |
| 12797 | work pretty good now, but we must make it get used by the test scripts |
| 12798 | properly and then we need to make sure that it compiles, builds and runs on |
| 12799 | most operating systems. |
| 12800 | |
| 12801 | Version 7.9.5-pre1 |
| 12802 | |
| 12803 | Daniel (6 February 2002) |
| 12804 | - Miklos Nemeth provided updated windows makefiles and INSTALL docs. |
| 12805 | |
| 12806 | - Mr Larry Fahnoe found a problem with formposts and I managed to track down |
| 12807 | and patch this bug. This was actually two bugs, as the posted size was also |
| 12808 | said to be two bytes too large. |
| 12809 | |
| 12810 | - Brent Beardsley found out and brought a correction for the |
| 12811 | CURLINFO_CONTENT_TYPE parser that was off one byte. This was my fault, I |
| 12812 | accidentaly broke Giaslas Georgios' patch. |
| 12813 | |
| 12814 | Daniel (5 February 2002) |
| 12815 | - Kevin Roth found yet another SSL download problem. |
| 12816 | |
| 12817 | Version 7.9.4 |
| 12818 | |
| 12819 | - no changes since pre-release |
| 12820 | |
| 12821 | Version 7.9.4-pre2 |
| 12822 | |
| 12823 | Daniel (3 February 2002) |
| 12824 | - Eric Melville provided a few spelling corrections in the curl man page. |
| 12825 | |
| 12826 | Daniel (1 February 2002) |
| 12827 | - Andreas Damm corrected the unconditional use of gmtime() in getdate, it now |
| 12828 | uses gmtime_r() on all hosts that have it. |
| 12829 | |
| 12830 | Daniel (31 January 2002) |
| 12831 | - An anonymous bug report identified a problem in the DNS caching which made it |
| 12832 | sometimes allocate one byte too little to store the cache entry in. This |
| 12833 | happened when the port number started with 1! |
| 12834 | |
| 12835 | - Albert Chin provided a patch that improves the gethostbyname_r() configure |
| 12836 | check on HP-UX 11.00. |
| 12837 | |
| 12838 | Version 7.9.4-pre1 |
| 12839 | |
| 12840 | Daniel (30 January 2002) |
| 12841 | - Georg Horn found another way the SSL reading failed due to the non-blocking |
| 12842 | state of the sockets! I fixed. |
| 12843 | |
| 12844 | Daniel (29 January 2002) |
| 12845 | - Multipart formposts now send the full request properly, including the CRLF. |
| 12846 | They were previously treated as part of the post data. |
| 12847 | |
| 12848 | - The upload byte counter bugged. |
| 12849 | |
| 12850 | - T. Bharath pointed out that we seed SSL on every connect, which is a time- |
| 12851 | consuming operation that should only be needed to do once. We patched |
| 12852 | libcurl to now only seed on the first connect when unseeded. The seeded |
| 12853 | status is global so it'll now only happen once during a program's life time. |
| 12854 | |
| 12855 | If the random_file or egdsocket is set, the seed will be re-made though. |
| 12856 | |
| 12857 | - Giaslas Georgios introduced CURLINFO_CONTENT_TYPE that lets |
| 12858 | curl_easy_getinfo() read the content-type from the previous request. |
| 12859 | |
| 12860 | Daniel (28 January 2002) |
| 12861 | - Kjetil Jacobsen found a way to crash curl and after much debugging, it |
| 12862 | turned out it was a IPv4-linux only problem introduced in 7.9.3 related to |
| 12863 | name resolving. |
| 12864 | |
| 12865 | - Andreas Damm posted a huge patch that made the curl_getdate() function fully |
| 12866 | reentrant! |
| 12867 | |
| 12868 | - Steve Marx pointed out that you couldn't mix CURLOPT_CUSTOMREQUEST with |
| 12869 | CURLOPT_POSTFIELDS. You can now! |
| 12870 | |
| 12871 | Daniel (25 January 2002) |
| 12872 | - Krishnendu Majumdar pointed out that the header length counter was not reset |
| 12873 | between multiple requests on the same handle. |
| 12874 | |
| 12875 | - Pedro Neves rightfully questioned why curl always append \r\n to the data |
| 12876 | that is sent in HTTP POST requests. Unfortunately, this broke the test suite |
| 12877 | as the test HTTP server is lame enough not to deal with this... :-O |
| 12878 | |
| 12879 | - Following Location: headers when the connection didn't close didn't work as |
| 12880 | libcurl didn't properly stop reading. This problem was added in 7.9.3 due to |
| 12881 | the restructured internals. 'Frank' posted a bug report about this. |
| 12882 | |
| 12883 | Daniel (24 January 2002) |
| 12884 | - Kevin Roth very quickly spotted that we wrongly installed the example |
| 12885 | programs that were built in the multi directory, when 'make install' was |
| 12886 | used. :-/ |
| 12887 | |
| 12888 | Version 7.9.3 |
| 12889 | |
| 12890 | Daniel (23 January 2002) |
| 12891 | - Andrés GarcÃa found a persistancy problem when doing HTTP HEAD, that made |
| 12892 | curl "hang" until the connection was closed by the server. This problem has |
| 12893 | been introduced in 7.9.3 due to internal rewrites, this was not present in |
| 12894 | 7.9.2. |
| 12895 | |
| 12896 | Version 7.9.3-pre4 |
| 12897 | |
| 12898 | Daniel (19 January 2002) |
| 12899 | - Antonio filed bug report #505514 and provided a fix! When doing multipart |
| 12900 | formposts, libcurl would include an error text in the actual post if a |
| 12901 | specified file wasn't found. This is not libcurl's job. Instead we add an |
| 12902 | empty part. |
| 12903 | |
| 12904 | Daniel (18 January 2002) |
| 12905 | - Played around with stricter compiler warnings for gcc (when ./configure |
| 12906 | --enable-debug is used) and changed some minor things to stop the warnings. |
| 12907 | |
| 12908 | - Commented out the 'long long' and 'long double' checks in configure.in, as |
| 12909 | we don't currently use them anyway and the code in lib/mprintf.c that use |
| 12910 | them causes warnings. |
| 12911 | |
| 12912 | - Saul Good and jonatan pointed out Mac OS X build problems with pre3 and how |
| 12913 | to correct them. Two compiler warnings were removed as well. |
| 12914 | |
| 12915 | - Andrés GarcÃa fixed two minor mingw32 building problems. |
| 12916 | |
| 12917 | Version 7.9.3-pre3 |
| 12918 | |
| 12919 | Daniel (17 January 2002) |
| 12920 | - docs/libcurl-the-guide is a new tutorial for our libcurl programming |
| 12921 | friends. |
| 12922 | |
| 12923 | - Richard Archer brought back the ability to compile and build with OpenSSL |
| 12924 | versions before 0.9.5. |
| 12925 | [http://sourceforge.net/tracker/?func=detail&atid=100976&aid=504163&group_id=976] |
| 12926 | |
| 12927 | - The DNS cache code didn't take the port number into account, which made it |
| 12928 | work rather bad on IPv6-enabled hosts (especially when doing passive |
| 12929 | FTP). Sterling fixed it. |
| 12930 | |
| 12931 | Daniel (16 January 2002) |
| 12932 | - Georg Horn could make a transfer time-out without error text. I found it and |
| 12933 | corrected it. |
| 12934 | |
| 12935 | - SSL writes didn't work, they return an uninitialized value that caused |
| 12936 | havoc all over. Georg Horn experienced this. |
| 12937 | |
| 12938 | - Kevin Roth patched the curl_version() function to use the proper OpenSSL |
| 12939 | function for version information. This way, curl will report the version of |
| 12940 | the SSL library actually running right now, not the one that had its headers |
| 12941 | installed when libcurl was built. Mainly intersting when running with shared |
| 12942 | OpenSSL libraries. |
| 12943 | |
| 12944 | Version 7.9.3-pre2 |
| 12945 | |
| 12946 | Daniel (16 January 2002) |
| 12947 | - Mofied the main transfer loop and related stuff to deal with non-blocking |
| 12948 | sockets in the upload section. While doing this, I've now separated the |
| 12949 | connection oriented buffers to have one for downloads and one for uploads |
| 12950 | (as two can happen simultaneously). I also shrunk the buffers to 20K |
| 12951 | each. As we have a scratch buffer twice the size of the upload buffer, we |
| 12952 | arrived at 80K for buffers compared with the previous 150K. |
| 12953 | |
| 12954 | - Added the --cc option to curl-config command as it enables so very cool |
| 12955 | one-liners. Have a go a this one, building the simple.c example: |
| 12956 | |
| 12957 | $ `curl-config --cc --cflags --libs` -o example simple.c |
| 12958 | |
| 12959 | Daniel (14 January 2002) |
| 12960 | - I made all socket reads (recv) handle EWOULDBLOCK. I hope nicely. Now we |
| 12961 | only need to address all writes (send) too and then I'm ready for another |
| 12962 | pre-release... |
| 12963 | |
| 12964 | - Stoned Elipot patched the in_addr_t configure test to make it work better on |
| 12965 | more platforms. |
| 12966 | |
| 12967 | Daniel (9 January 2002) |
| 12968 | - Cris Bailiff found out that filling up curl's SSL session cache caused a |
| 12969 | crash! |
| 12970 | |
| 12971 | - Posted the curl questionnaire on the web site. If you haven't posted your |
| 12972 | opinions there yet, go there and do it now while it is still there: |
| 12973 | |
| 12974 | http://curl.haxx.se/q/ |
| 12975 | |
| 12976 | - Georg Horn quickly found out that the SSL reading no longer worked as |
| 12977 | supposed since the switch to non-blocking sockets. I've made a quick patch |
| 12978 | (for reading only) but we should improve it even further. |
| 12979 | |
| 12980 | Version 7.9.3-pre1 |
| 12981 | |
| 12982 | Daniel (7 January 2002) |
| 12983 | - I made the 'bool' typedef use an "unsigned char". It makes it the same on |
| 12984 | all platforms, no matter what the platform thinks the default format for |
| 12985 | char is. This was noticed since we made a silly comparison involving such a |
| 12986 | bool variable, and only one compiler/platform combination (on Debian Linux) |
| 12987 | complained about it (that happened to have its char unsigned by default). |
| 12988 | |
| 12989 | - Bug report #495290 identified a cookie parsing problem that was corrected. |
| 12990 | When a Set-Cookie: line is received without a trailing semicolon, libcurl |
| 12991 | didn't read the last "name=value" pair of the line, leading to confusions... |
| 12992 | |
| 12993 | - Sterling committed his updated DNS cache code. |
| 12994 | |
| 12995 | - I worked with Georg Horn and comments from Götz Babin-Ebell and switched |
| 12996 | curl's socket operations completely over to non-blocking for the entire |
| 12997 | operation (previously we used non-blocking only for the connection phase). |
| 12998 | We had to do this to make the SSL connection phase timeout properly without |
| 12999 | the use of signals. A little extra code to deal with this was added. |
| 13000 | |
| 13001 | - T. Bharath pointed out a slightly obscure cookie engine flaw. |
| 13002 | |
| 13003 | - Pete Su pointed out that libcurl didn't treat HTTP code 204 as it should. |
| 13004 | 204-replies never provides a response-body. This resulted in bad persistant |
| 13005 | behavior when 204 was received. |
| 13006 | |
| 13007 | Daniel (5 January 2002) |
| 13008 | - SM updated the VC++ library Makefiles for the new source files. |
| 13009 | |
| 13010 | Daniel (4 January 2002) |
| 13011 | - I discovered that we wrongly used inet_ntoa() (instead of inet_ntoa_r() in |
| 13012 | two places in the source code). One happened with VERBOSE set on connects, |
| 13013 | and the other when VERBOSE was on and krb4 over nat was used... I honestly |
| 13014 | don't think anyone has suffered from these mistakes. |
| 13015 | |
| 13016 | - I replaced a lot of silly occurances of printf() to instead use the more |
| 13017 | appropriate Curl_infof() or Curl_failf(). The krb4 and telnet code were |
| 13018 | affected. |
| 13019 | |
| 13020 | - Philip Gladstone found a few more problems with 64-bit archs (the 64-bit |
| 13021 | sparc on solaris 8). |
| 13022 | |
| 13023 | - After discussions on the libcurl list with Raoul Cridlig, I just made FTP |
| 13024 | response lines get passed to the header callback if such a one is |
| 13025 | registered. It'll make it possible for any application to get all the |
| 13026 | responses an FTP server sends to libcurl. |
| 13027 | |
| 13028 | Daniel (3 January 2002) |
| 13029 | - Sterling Hughes brought a few buckets of code. Now, libcurl will |
| 13030 | automatically cache DNS lookups and re-use the previous results first if any |
| 13031 | such is available. It greatly improves speed when doing many repeated |
| 13032 | operations to the same host. |
| 13033 | |
| 13034 | - As the test case uses --include and then --head, I had to modify src/main.c |
| 13035 | to deal with this situation slightly better than previously. When done, we |
| 13036 | have 100% good tests again in the main branch. |
| 13037 | |
| 13038 | Daniel (2 January 2002) |
| 13039 | - Made test case 25 run again in the multi-dev branch. But it seems that the |
| 13040 | changes done on dec-20 made test case 104 cease to work (in both branches). |
| 13041 | |
| 13042 | - Philip Gladstone pointed out a few portability problems in the source code |
| 13043 | that didn't compile on 64-bit sparcs using Sun's native compiler. |
| 13044 | Daniel (20 December 2001) |
| 13045 | - Björn Stenberg caught an unpleasent (but hard-to-find) bug that could cause |
| 13046 | libcurl to hang on transfers over proxy, when the proxy was specified with |
| 13047 | an environment variable! |
| 13048 | |
| 13049 | - Added code to make ftp operations treat the NO_BODY and HEADERS options |
| 13050 | better: |
| 13051 | |
| 13052 | NO_BODY set TRUE and HEADERS set TRUE: |
| 13053 | Return a set of headers with file info |
| 13054 | |
| 13055 | NO_BODY set FALSE |
| 13056 | Transfer data as usual, HEADERS is ignored |
| 13057 | |
| 13058 | NO_BODY set TRUE and HEADERS set FALSE |
| 13059 | Don't transfer any data, don't return any headers. Just perform the set |
| 13060 | of FTP commands. |
| 13061 | |
| 13062 | Daniel (17 December 2001) |
| 13063 | - Götz Babin-Ebell dove into the dark dungeons of the OpenSSL ENGINE stuff and |
| 13064 | made libcurl support it! This allows libcurl to do SSL connections with the |
| 13065 | private key stored in external hardware. |
| 13066 | |
| 13067 | To make this good, he had to add a bunch of new library options that'll be |
| 13068 | useful to others as well: |
| 13069 | |
| 13070 | CURLOPT_SSLCERTTYPE set SSL cert type (PEM/DER) |
| 13071 | CURLOPT_SSLKEY set SSL private key (file) |
| 13072 | CURLOPT_SSLKEYTYPE: set SSL key type (PEM/DER/ENG) |
| 13073 | CURLOPT_SSLKEYPASSWD: set the passphrase for your private key |
| 13074 | (CURLOPT_SSLCERTPASSWD is an alias) |
| 13075 | CURLOPT_SSLENGINE: set the name of the crypto engine |
| 13076 | (returns CURLE_SSL_ENGINE_NOTFOUND on error) |
| 13077 | CURLOPT_SSLENGINE_DEFAULT: set the default engine |
| 13078 | |
| 13079 | There are two new failure codes: |
| 13080 | |
| 13081 | CURLE_SSL_ENGINE_NOTFOUND |
| 13082 | CURLE_SSL_ENGINE_SETFAILED |
| 13083 | |
| 13084 | Daniel (14 December 2001) |
| 13085 | - We have "branched" the source-tree at a few places. Checkout the CVS sources |
| 13086 | with the 'multi-dev' label to get the latest multi interface development |
| 13087 | tree. The idea is to only branch affected files and to restrict the branch |
| 13088 | to the v8 multi interface development only. |
| 13089 | |
| 13090 | *NOTE* that if we get bug reports and patches etc, we might need to apply |
| 13091 | them in both branches! |
| 13092 | |
| 13093 | The multi-dev branch is what we are gonna use as main branch in the future |
| 13094 | if it turns out successful. Thus, we must maintain both now in case we need |
| 13095 | them. The current main branch will be used if we want to release a 7.9.3 or |
| 13096 | perhaps a 7.10 release before version 8. Which is very likely. |
| 13097 | |
| 13098 | - Marcus Webster provided code for the new CURLFORM_CONTENTHEADER option for |
| 13099 | curl_formadd(), that lets an application add a set of headers for that |
| 13100 | particular part in a multipart/form-post. He also provided a section to the |
| 13101 | man page that describes the new option. |
| 13102 | |
| 13103 | Daniel (11 December 2001) |
| 13104 | - Ben Greear made me aware of the fact that the Curl_failf() usage internally |
| 13105 | was a bit sloppy with adding newlines or not to the error messages. Let's |
| 13106 | once and for all say that they do not belong there! |
| 13107 | |
| 13108 | - When uploading files with -T to give a local file name, and you end the URL |
| 13109 | with a slash to have the local file name used remote too, we now no longer |
| 13110 | use the local directory as well. Only the file part of the -T file name |
| 13111 | will be appended to the right of the slash in the URL. |
| 13112 | |
| 13113 | Daniel (7 December 2001) |
| 13114 | - Michal Bonino pointed out that Digital Unix doesn't have gmtime_r so the |
| 13115 | link failed. Added a configure check and corrected source code. |
| 13116 | |
| 13117 | Version 7.9.2 |
| 13118 | |
| 13119 | Daniel (5 December 2001) |
| 13120 | - Jon Travis found out that if you used libcurl and CURLOPT_UPLOAD and then |
| 13121 | on the same handle used CURLOPT_HTTPGET it would still attempt to upload. |
| 13122 | His suggested fix was perfect. |
| 13123 | |
| 13124 | Daniel (4 December 2001) |
| 13125 | - Incorporated more macos fixes and added four specific files in a new |
| 13126 | subdirectory below src. |
| 13127 | |
| 13128 | Daniel (3 December 2001) |
| 13129 | - Eric Lavigne reported two problems: |
| 13130 | |
| 13131 | First one in the curl_strnequal() function. I think this problem is rather |
| 13132 | macos 9 specific, as most platform provides a function to use instead of the |
| 13133 | one provided by libcurl. |
| 13134 | |
| 13135 | A second, more important, was in the way we take care of FTP responses. The |
| 13136 | code would read a large chunk of data and search for the end-of-response |
| 13137 | line within that chunk. When found, it would just skip the rest of the |
| 13138 | data. However, when the network connections are special, or perhaps the |
| 13139 | server is, we could actually get more than one response in that chunk of |
| 13140 | data so that when the next invoke to this function was done, the response |
| 13141 | had already been read and thrown away. Now, we cache the data not used in |
| 13142 | one call, as it could be useful in the subsequent call. Test case 126 was |
| 13143 | added and the test ftp server modified, to exercise this particular case. |
| 13144 | |
| 13145 | Version 7.9.2-pre8 |
| 13146 | |
| 13147 | Daniel (2 December 2001) |
| 13148 | - Bug report #487825 correctly identified a problem when using a proxy and |
| 13149 | following a redirection from HTTP to HTTPS. libcurl then re-used the same |
| 13150 | proxy connection but without doing a proper HTTPS request. |
| 13151 | |
| 13152 | - Fixed win32 compiling quirks. |
| 13153 | |
| 13154 | Version 7.9.2-pre7 |
| 13155 | |
| 13156 | Daniel (30 November 2001) |
| 13157 | - Documented --disable-epsv and CURLOPT_FTP_USE_EPSV. |
| 13158 | |
| 13159 | Daniel (29 November 2001) |
| 13160 | - Added --disable-epsv as an option. When used, curl won't attempt to use the |
| 13161 | EPSV command when doing passive FTP downloads. Wrote a test case for it. |
| 13162 | |
| 13163 | - Eric provided a few more fixes for building on Macs. He also pointed out |
| 13164 | a flaw in the signal handler restoration code. |
| 13165 | |
| 13166 | Daniel (28 November 2001) |
| 13167 | - Fiddled with some Tru64 problems reported by Dimitris Sarris. They appeared |
| 13168 | only when using VERBOSE ftp transfers. Do we use a too small buffer for |
| 13169 | gethostbyaddr_r(), was the lack of using in_addr_t wrong or is it that the |
| 13170 | hostent struct must be blanked before use? With Dimitris help and these |
| 13171 | patches, the problems seem to be history. |
| 13172 | |
| 13173 | - CURLOPT_FTP_USE_EPSV was added and can be set to FALSE to prevent libcurl |
| 13174 | from using the EPSV command before trying the normal PASV. Heikki Korpela |
| 13175 | pointed out that some firewalls and similar don't like the EPSV so we must |
| 13176 | be able to shut if off to work everywhere. |
| 13177 | |
| 13178 | - I added a configure check for 'in_addr_t' and made the ftp code use that to |
| 13179 | receive the inet_addr() return code in. Works on Solaris and Linux at |
| 13180 | least. The Linux man page for inet_addr() doesn't even mention in_addr_t... |
| 13181 | |
| 13182 | - Adjusted (almost) all FTP tests to the new command sequence. |
| 13183 | |
| 13184 | - FTP command sequence changes: |
| 13185 | |
| 13186 | EPSV is now always attempted before PASV. It is the final touch to make IPv6 |
| 13187 | passive FTP downloads to work, but EPSV is not restricted to IPv6 but works |
| 13188 | fine with IPv4 too on the servers that support it. |
| 13189 | |
| 13190 | SIZE is now always issued before RETR. It makes curl know the actual |
| 13191 | download size before the download takes place, as it makes it less important |
| 13192 | to find the size sent in RETR responses. Many sites don't include the size |
| 13193 | in there. |
| 13194 | |
| 13195 | Both these changes made it necessary to change the test suite's ftp server |
| 13196 | code, and all FTP test cases need to be checked and adjusted! |
| 13197 | |
| 13198 | Daniel (27 November 2001) |
| 13199 | - Hans Steegers pointed out that the telnet code read from stdout, not stdin |
| 13200 | as it is supposed to do! |
| 13201 | |
| 13202 | Version 7.9.2-pre6 |
| 13203 | |
| 13204 | Daniel (27 November 2001) |
| 13205 | - Eric Lavigne's minor changes to build on MacOS before OS X were applied. |
| 13206 | |
| 13207 | - greep at mindspring.com provided a main index.html page for our release |
| 13208 | archive docs directory. It just links to all the existing HTML files, but |
| 13209 | I think it may come useful to people. |
| 13210 | |
| 13211 | - There's now some initial code to support the EPSV FTP command. That should |
| 13212 | be used to do passive transfers IPv6-style. The code is still #if 0'ed in |
| 13213 | lib/ftp.c as I have no IPv6 ftp server to test this with. |
| 13214 | |
| 13215 | Daniel (26 November 2001) |
| 13216 | - Robert Schlabbach had problems to understand how to do resumed transfers, |
| 13217 | and I clarified the man page -C section somewhat. |
| 13218 | |
| 13219 | Version 7.9.2-pre5 |
| 13220 | |
| 13221 | Daniel (22 November 2001) |
| 13222 | - Andrés GarcÃa helped me out to track down the roots of bug report #479537, |
| 13223 | which was concerning curl returning the wrong error code when failing to |
| 13224 | connect. This didn't happen on all systems, and more specificly I've so far |
| 13225 | only seen this happen on IPv4-only Linux hosts. |
| 13226 | |
| 13227 | - I applied the fixes for the two bugs Eric Lavigne found when doing his MacOS |
| 13228 | port. A missing comma in arpa_telnet.h and a pretty wild write in the FTP |
| 13229 | response reader function. The latter write is however likely to occur in our |
| 13230 | own buffer unless very big FTP server replies (>25K) are read. I've never |
| 13231 | seen such a reply ever, so I think this is a relatively minor risk. |
| 13232 | |
| 13233 | Daniel (21 November 2001) |
| 13234 | - Moonesamy provided code to prevent junk from being output when libcurl |
| 13235 | returns an error code but no error description and that corrects how make is |
| 13236 | run in the Makefile.dist file (that appears as root Makefile in release |
| 13237 | archives). |
| 13238 | |
| 13239 | - Eric Lavigne mailed me bugfixes and patches for building libcurl on MacOS |
| 13240 | (non-X). |
| 13241 | |
| 13242 | - Kevin Roth modified the cygwin files once again, now to build against the |
| 13243 | shared OpenSSL DLLs. |
| 13244 | |
| 13245 | Version 7.9.2-pre4 |
| 13246 | |
| 13247 | Daniel (20 November 2001) |
| 13248 | - Georg Horn brought a patch that introduced CURLINFO_STARTTRANSFER_TIME, |
| 13249 | complete with man page updates! |
| 13250 | |
| 13251 | Daniel (19 November 2001) |
| 13252 | - Miklos Nemeth provided details enough to update the Borland makefile |
| 13253 | properly. |
| 13254 | |
| 13255 | - Lars M Gustafsson found a case with a bad free(). In fact, it was so bad I'm |
| 13256 | amazed we never saw this before! |
| 13257 | |
| 13258 | - Kevin Roth patched the cygwin Makfile. |
| 13259 | |
| 13260 | Daniel (16 November 2001) |
| 13261 | - Klevtsov Vadim fixed a bug in how time-conditionals were sent when doing |
| 13262 | HTTP. |
| 13263 | |
| 13264 | Version 7.9.2-pre3 |
| 13265 | |
| 13266 | Daniel (14 November 2001) |
| 13267 | - Samuel Listopad patched away the problem with SSL we got when someone call |
| 13268 | curl_global_init() => curl_global_cleanup() => curl_global_init(). The |
| 13269 | second init would not "take" and SSL would be unusable with curl from that |
| 13270 | point. This doesn't change the fact that calling the functions that way is |
| 13271 | wrong. curl_global_init() should be called exactly once and not more. |
| 13272 | |
| 13273 | Daniel (13 November 2001) |
| 13274 | - Fixed some minor variable type mixups in ftp.c that caused compiler warnings |
| 13275 | on HP-UX 11.00. |
| 13276 | |
| 13277 | - The FTP fix I did yesterday used an uninitialized variable that caused |
| 13278 | spurious errors when doing FTP. |
| 13279 | |
| 13280 | Version 7.9.2-pre2 |
| 13281 | |
| 13282 | Daniel (12 November 2001) |
| 13283 | - Ricardo Cadime fell over a multiple-requests problem when first a FTP |
| 13284 | directory fetch failed and then a second request is made after that. The |
| 13285 | second request happened to get the FTP server response back from the |
| 13286 | previous request, when it did its initial CWD command. |
| 13287 | |
| 13288 | - Bjorn Reese pointed out that we could improve the time diff function to |
| 13289 | prevent truncation a bit. |
| 13290 | |
| 13291 | - Kai-Uwe Rommel made me aware that -p (http proxy tunnel) silly enough didn't |
| 13292 | work for plain HTTP requests! So I made that work. |
| 13293 | |
| 13294 | Version 7.9.2-pre1 |
| 13295 | |
| 13296 | Daniel (12 November 2001) |
| 13297 | - Rewrote the Curl_ConnectHTTPProxyTunnel(). It should now not only work a lot |
| 13298 | faster, it should also support such ("broken") proxies that John Lask |
| 13299 | previously have reported problems with. His proxy sends a trailing zero byte |
| 13300 | after the end of the (proxy-) headers. I've tested this myself and it seems |
| 13301 | to work on a proxy the previous version also worked with...! This rewrite is |
| 13302 | due to the problems John Lask previously experienced. |
| 13303 | |
| 13304 | - Andrés GarcÃa found out why the "current speed" meter sometimes showed 2048K |
| 13305 | for very quick transfers. It turned out the "time diff"-function returned a |
| 13306 | zero millisecond diff. We now always say it is at least one millisecond! In |
| 13307 | reality, these timers very rarely have that good resolution so even though |
| 13308 | the time diff was longer than 1 millisecond, it was reported as no diff. |
| 13309 | |
| 13310 | - I also modified the getinfo() again when returning times, as Paul Harrington |
| 13311 | reports that 7.9.1 only returns times with 1 second accuracy, which indeed |
| 13312 | is wrong. |
| 13313 | |
| 13314 | Daniel (8 November 2001) |
| 13315 | - Marcus Webster found out that curl_formadd() could read one byte outside a |
| 13316 | buffer boundary, which then of course could lead to a crash. Marcus also |
| 13317 | gracefully provided a patch for this this. |
| 13318 | |
| 13319 | - Glen Scott ran configure on his Cobalt Qube and it didn't figure out the |
| 13320 | correct way of calling gethostbyname_r() and thus failed to resolve hosts. |
| 13321 | This is two errors: it shouldn't continue the configure script if it finds |
| 13322 | gethostbyname_r() but can't figure out how to use it, and it should really |
| 13323 | figure out how to use it as it was running Linux and we know how that |
| 13324 | works... |
| 13325 | |
| 13326 | Daniel (7 November 2001) |
| 13327 | - docs/VERSIONS is a new file in the archive that explains the version number |
| 13328 | system we use in the curl project. |
| 13329 | |
| 13330 | - Did some more fixes that now makes libcurl only ignore signals as long as |
| 13331 | it needs to, and then restore (if any) previous signal handler again. |
| 13332 | |
| 13333 | Daniel (6 November 2001) |
| 13334 | - Enrik Berkhan posted bug report #478780, in which he very correctly pointed |
| 13335 | out two bad timeout matters in libcurl: we didn't restore the sigaction |
| 13336 | struct (the alarm handler for SIGALRM) nor did we restore the previous |
| 13337 | alarm() timeout that could've been set by a "parent" process or similar. |
| 13338 | |
| 13339 | - Kevin Roth made the cygwin binary get stripped before install. |
| 13340 | |
| 13341 | Daniel (5 November 2001) |
| 13342 | - Detlef Schmier reported that curl didn't compile using Solaris 8 with the |
| 13343 | native cc compiler. It was due to a bad function prototype. Fixed now. |
| 13344 | Unfortunately, I can't enable the -Wstrict-prototypes in my debug builds |
| 13345 | though, as gcc then complains like crazy on OpenSSL include files... :-( |
| 13346 | |
| 13347 | - John Lask provided SSL over HTTP proxy fixes. They'll need some tweaking |
| 13348 | to work on all platforms. |
| 13349 | |
| 13350 | - John Lask added the -1/--TLSv1 options that forces SSL into using TLS |
| 13351 | version 1 when speaking HTTPS. |
| 13352 | |
| 13353 | - John Lask brought a brand new VC++ makefile for the lib directory, that |
| 13354 | works a lot better than the previous! |
| 13355 | |
| 13356 | - Ramana Mokkapati brought some clever insights on the LDAP failures (bug |
| 13357 | report #475407), and his suggested changes are now applied. |
| 13358 | |
| 13359 | Version 7.9.1 |
| 13360 | |
| 13361 | Daniel (4 November 2001) |
| 13362 | - I've added a number of new test cases the last few days. A few of them since |
| 13363 | I got reports that hinted on problems on timeouts, so I added four tests |
| 13364 | with timeouts for all sorts of protocols and stuff. I also came to think of |
| 13365 | a few other error scenarios that we currently didn't test properly, so I |
| 13366 | wrote up tests for a few of those too. |
| 13367 | |
| 13368 | Daniel (2 November 2001) |
| 13369 | - Replaced read() and write() with recv() and send() for socket operations |
| 13370 | even under normal unixes. |
| 13371 | |
| 13372 | Daniel (1 November 2001) |
| 13373 | - When an FTP transfer was aborted due to a timeout, it wasn't really aware of |
| 13374 | how many bytes that had been transferred and the error text always said 0 |
| 13375 | bytes. I modified this to output the actually transferred amount! :-) |
| 13376 | |
| 13377 | - The FTP fixes in pre7 didn't compile on IPv6 enabled hosts. Does now. I also |
| 13378 | added more comments in the lib/ftp.c source file. |
| 13379 | |
| 13380 | - Minor updates to the FAQ, added a brand new section to the web site about |
| 13381 | the name issue (who owns "curl"? will someone sue us? etc etc): |
| 13382 | http://curl.haxx.se/legal/thename.html |
| 13383 | |
| 13384 | Version 7.9.1-pre7 |
| 13385 | |
| 13386 | Daniel (31 October 2001) |
| 13387 | - The curl_easy_getinfo() timers accidentally lost their subsecond accuracy as |
| 13388 | the calculations used longs instead of doubles! Paul Harrington reported. |
| 13389 | |
| 13390 | - The SSL SocketIsDead() checks weren't good enough (as expected really), so I |
| 13391 | had to add a generic internal try-it-out system. If the request on a re-used |
| 13392 | connection seems to fail, then we go back and get a new (fresh) connection |
| 13393 | and re-tries the request on that instead. It kind of makes the |
| 13394 | SocketIsDead() check obsolete, but I think it is a quicker way for those |
| 13395 | cases where it actually discovers that the connection is dead. |
| 13396 | |
| 13397 | - When fixing the above, I noticed that we did quite a few writes to sockets |
| 13398 | in libcurl where we didn't check the return code (that it actually worked to |
| 13399 | send the data). With the new "attempted request" system we must detect those |
| 13400 | situations so I went over a bunch of functions, changed return types and |
| 13401 | added checks for what they actually return. |
| 13402 | |
| 13403 | Version 7.9.1-pre6 |
| 13404 | |
| 13405 | Daniel (31 October 2001) |
| 13406 | - Paul Harrington detected a problem with persistant SSL connections. Or to be |
| 13407 | more exact, we didn't properly detect that the connection was dead and then |
| 13408 | a second connection would try to re-use it wrongly. The solution to this |
| 13409 | problem is still not very clear and I'm working on it. One OpenSSL insider |
| 13410 | said there is no way to know if the SSL connection is alive or not without |
| 13411 | actually trying an operation. |
| 13412 | |
| 13413 | Daniel (30 October 2001) |
| 13414 | - If a cookie was read from a file, it could accidentally strdup() a NULL |
| 13415 | pointer. Paul Harrington reported. [http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/curl/curl/lib/cookie.c.diff?r1=1.25&r2=1.26] |
| 13416 | |
| 13417 | - The MANUAL file now documents -t correctly. I also fixed the -T description |
| 13418 | in the curl.1 man page. |
| 13419 | |
| 13420 | Daniel (29 October 2001) |
| 13421 | - John Janssen found out that curl_formadd was missing in the libcurl.def file |
| 13422 | and that the docs stated the wrong return type for the function. |
| 13423 | |
| 13424 | - Andrés GarcÃa found a bug with multiple files in the curl_formadd() function, |
| 13425 | that I removed with this patch [http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/curl/curl/lib/formdata.c.diff?r1=1.25&r2=1.26]. |
| 13426 | |
| 13427 | - Kevin Roth brought another patch that moved the cygwin package files to the |
| 13428 | packages/Win32/cygwin directory. |
| 13429 | |
| 13430 | - A bug in the connection re-use logic made repeated requests to the same FTP |
| 13431 | server (when using name+pasword in the URL) sometimes use more than one |
| 13432 | connection. [http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/curl/curl/lib/url.c.diff?r1=1.166&r2=1.167] |
| 13433 | |
| 13434 | - Moonesamy tracked down and fixed a problem with the new 7.9.1 connect |
| 13435 | code. This corrected the error Kevin Roth reported on the 7.9.1-pre5 release |
| 13436 | (test 19)... |
| 13437 | [http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/curl/curl/lib/connect.c.diff?r1=1.13&r2=1.14] |
| 13438 | |
| 13439 | Daniel (26 October 2001) |
| 13440 | - Added test28 which verifies that "Location:"-following works even if the |
| 13441 | contents is separated with more than one space. |
| 13442 | |
| 13443 | Daniel (25 October 2001) |
| 13444 | - Ramana Mokkapati pointed out that LDAP transfers would 'hang' after the |
| 13445 | correct data has been output. |
| 13446 | |
| 13447 | Version 7.9.1-pre5 |
| 13448 | |
| 13449 | Daniel (24 October 2001) |
| 13450 | - T. Bharath found a memory leak in the cookie engine. When we update a cookie |
| 13451 | that we already knew about, we lost a chunk of memory in the progress... The |
| 13452 | brand new test case 27 now tests for this occurrence. [http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/curl/curl/lib/cookie.c.diff?r1=1.24&r2=1.25] |
| 13453 | |
| 13454 | Daniel (23 October 2001) |
| 13455 | - pack_hostent() didn't properly align some pointers, so at least SPARC CPUs |
| 13456 | would core. [http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/curl/curl/lib/hostip.c.diff?r1=1.34&r2=1.35] |
| 13457 | |
| 13458 | Daniel (22 October 2001) |
| 13459 | - Tom Benoist reported that this SGI IRIX compiler didn't handle indented |
| 13460 | preprocessor instructions, so they're no longer in the source code! |
| 13461 | |
| 13462 | - Applied Kevin Roth's patches to make it easier to build cygwin packages from |
| 13463 | the out-of-the-box curl release archives. |
| 13464 | |
| 13465 | - I forgot to mention it below, but libcurl now closes connections that report |
| 13466 | transfer failures. Unconditionally. This could be made more nicely in the |
| 13467 | future if we set a flag or something that the connection is still good to be |
| 13468 | used for the errors that know that for a fact. We have to close the |
| 13469 | connection for the cases where we abort for example a HTTP transfer in the |
| 13470 | middle, or otherwise we might re-use that connection later with lots of data |
| 13471 | still being sent to us on it. [http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/curl/curl/lib/transfer.c.diff?r1=1.63&r2=1.64] |
| 13472 | |
| 13473 | Daniel (19 October 2001) |
| 13474 | - CURLE_GOT_NOTHING is now returned when a HTTP server doesn't return |
| 13475 | anything, not even a header. test case 37 was added to test for this. |
| 13476 | |
| 13477 | - T. Bharath made curl_easy_duphandle() properly clone the cookie status as |
| 13478 | well. |
| 13479 | |
| 13480 | Version 7.9.1-pre4 |
| 13481 | |
| 13482 | Daniel (18 October 2001) |
| 13483 | - CURLOPT_FAILONERROR, set with "curl --fail" no longer returns an error if |
| 13484 | the HTTP return code is below 400. |
| 13485 | |
| 13486 | Daniel (17 October 2001) |
| 13487 | - The test suite now kills any running test http server when you re-start the |
| 13488 | tests. |
| 13489 | |
| 13490 | - We had to remove 'use strict' from two perl scripts, as the cygwin |
| 13491 | adjustments didn't play nicely otherwise for some reason. Any perl wizard |
| 13492 | out there who can put the scrict back and still make it run good on unix and |
| 13493 | cygwin? |
| 13494 | |
| 13495 | - A potential memory leak pointed out to us by Yanick Pelletier was removed. |
| 13496 | It would occur when a http file transfer fails. [http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/curl/curl/lib/transfer.c.diff?r1=1.60&r2=1.61] |
| 13497 | |
| 13498 | - The memory debugging system should no longer display anything to stderr |
| 13499 | if the curl_memdebug() hasn't been used to explicitly say so. This makes it |
| 13500 | easier to use the memory debug system and switch the logging on/off. |
| 13501 | |
| 13502 | Daniel (16 October 2001) |
| 13503 | - Kevin Roth provided fixes for building curl nicer in cygwin environments. |
| 13504 | |
| 13505 | Daniel (12 October 2001) |
| 13506 | - Cleaning up the progress meter/info code. The "current speed" is now more |
| 13507 | accurate than before as we now use the true time spent between the measures, |
| 13508 | and not just "assuming" every-second-update like before. The output should |
| 13509 | now also be of the same width at all times, never to show "extra" zeroes on |
| 13510 | the right edge. |
| 13511 | |
| 13512 | - After talking about possible Location: bugs on the mailing list, I modified |
| 13513 | the "absolute URL" checker in lib/transfer.c to be more strict when checking |
| 13514 | if the redirected URL is absolute. |
| 13515 | |
| 13516 | Daniel (11 October 2001) |
| 13517 | - Kevin Roth provided patches that make the test suite run fine on Windows |
| 13518 | 2000 running cygwin. |
| 13519 | |
| 13520 | Daniel (10 October 2001) |
| 13521 | - Setting the -c or the CURLOPT_COOKIEJAR option now enables the cookie parser. |
| 13522 | Previously -b or CURLOPT_COOKIEFILE was also required for the jar to work. |
| 13523 | |
| 13524 | Version 7.9.1-pre3 |
| 13525 | |
| 13526 | Daniel (9 October 2001) |
| 13527 | - Added a new option to the command line client: -0/--http1.0. It uses the new |
| 13528 | libcurl option CURLOPT_HTTP_VERSION to request that libcurl uses HTTP 1.0 |
| 13529 | requests instead of the default version (1.1). It should only be used if you |
| 13530 | really MUST do that because of a silly remote server. |
| 13531 | |
| 13532 | - Renamed the 'TimeCond' typedef in curl/curl.h to use a 'curl_' prefix as |
| 13533 | all public curl-symbols should. |
| 13534 | |
| 13535 | - libcurl now explicitly ignores the SIGPIPE signal. |
| 13536 | |
| 13537 | Daniel (8 October 2001) |
| 13538 | - Kevin Roth's change to the cookie-jar comment (in the stored file) was |
| 13539 | applied. |
| 13540 | |
| 13541 | - Lucas Adamski's minor bug in the bind error code failf() was fixed. |
| 13542 | |
| 13543 | Daniel (5 October 2001) |
| 13544 | - Moonesamy fixed the Curl_connecthost() function to not give compiler errors |
| 13545 | on a bunch of compilers, due to the argument named 'socket'. |
| 13546 | |
| 13547 | - Moonesamy also provided updated VC++ makefiles and project files. |
| 13548 | |
| 13549 | Version 7.9.1-pre2 |
| 13550 | |
| 13551 | Daniel (4 October 2001) |
| 13552 | - Albert Chin provided a configure patch that makes the script detect proper |
| 13553 | gethostbyname_r() method without actually running any code, only compiling |
| 13554 | is necessary. This also removes the need of having a resolving 'localhost' |
| 13555 | name. |
| 13556 | |
| 13557 | - Found and removed memory leakage (name resolve data) in libcurl on |
| 13558 | IPv6-enabled hosts. These could sneak through because we didn't have any |
| 13559 | resource tracing on the IPv6-related functions. We do now. |
| 13560 | |
| 13561 | Daniel (3 October 2001) |
| 13562 | - Keith McGuigan patched away a (mainly Windows-) problem with the name |
| 13563 | resolver data being kept in the static memory area, which is removed when a |
| 13564 | thread is killed. The curl handle itself though perfectly handles being |
| 13565 | passed between threads. |
| 13566 | |
| 13567 | - Dirk Eddelbuettel reported an odd bug that turned out to be his proxy that |
| 13568 | required an Authorization: header. Now, proxies are not supposed to require |
| 13569 | that header, that is for true servers... |
| 13570 | |
| 13571 | - I accidentally ruined Georg's curl_formadd(). Uh, bad me. Corrected now. |
| 13572 | |
| 13573 | Version 7.9.1-pre1 |
| 13574 | |
| 13575 | Daniel (3 October 2001) |
| 13576 | - Georg Huettenegger once again made an effort beyond the call of duty and not |
| 13577 | only improved the curl_formadd() function, but also took care of adjusting |
| 13578 | the curl command line client to use this new function instead of the |
| 13579 | obsoleted curl_formparse. |
| 13580 | |
| 13581 | Daniel (2 October 2001) |
| 13582 | - Major fix in how libcurl does TCP connects. It now does non-blocking |
| 13583 | connects to enable good timeouts without signals, and it now tries all IP |
| 13584 | addresses for any given host (if it resolves more than one and the first |
| 13585 | one(s) don't connect). Added a new source file 'connect.c' to deal with all |
| 13586 | the TCP connect stuff. |
| 13587 | |
| 13588 | - We now support IPv4-style IP-addresses in rfc2732-format, to better support |
| 13589 | people writing scripts without knowing what address there is. |
| 13590 | |
| 13591 | Daniel (28 September 2001) |
| 13592 | - Cleanups in the FTP source code. Divided the code into even more smaller |
| 13593 | functions and generally tried to make the differences between IPv4 and IPv6 |
| 13594 | get less noticable in the sources. |
| 13595 | |
| 13596 | - If the remote file time is not readable/accessable/understood by libcurl, |
| 13597 | libcurl now returns -1 in the CURLINFO_FILETIME data, not 0 as it previously |
| 13598 | did. This should make curl not touch the file data unless there was a known |
| 13599 | remote date when -R is used. |
| 13600 | |
| 13601 | Daniel (27 September 2001) |
| 13602 | - Working on getting non-blocking connects working platform independent. We |
| 13603 | will also make curl try all IPs for a given host if the first one should |
| 13604 | fail. |
| 13605 | |
| 13606 | Daniel (26 September 2001) |
| 13607 | - Kevin Roth provided a cookie example that proved the cookie jar |
| 13608 | functionality wasn't working properly. I added test case 46 and made it |
| 13609 | work. |
| 13610 | |
| 13611 | Daniel (25 September 2001) |
| 13612 | - Jörn Hartroth updated the mingw32 makefiles. |
| 13613 | |
| 13614 | Version 7.9 |
| 13615 | |
| 13616 | Daniel (23 September 2001) |
| 13617 | - Found and removed a 'socket leak' that would occur on IPv6 enabled hosts |
| 13618 | when FTP RETR failed. |
| 13619 | |
| 13620 | - Made the FTP upload tests run fine on machines with IPv6 enabled. |
| 13621 | |
| 13622 | Version 7.9-pre8 |
| 13623 | |
| 13624 | Daniel (19 September 2001) |
| 13625 | - Vojtech Minarik set up a special-purpose test server and provided me with |
| 13626 | test certificates in order for me to repeat the bug reports #440068 and |
| 13627 | #440373. It turned out we didn't check all the error codes properly. We do |
| 13628 | now, and connecting with a unacceptable certificate will make libcurl fail |
| 13629 | to connect with an error code returned. |
| 13630 | |
| 13631 | - Ramana Mokkapati found a case when the Location: following code did wrong. |
| 13632 | I wrote a test case for this (45). |
| 13633 | |
| 13634 | Version 7.9-pre7 |
| 13635 | |
| 13636 | Daniel (17 September 2001) |
| 13637 | - Linus Nielsen Feltzing fixed telnet for win32. It makes libcurl require |
| 13638 | winsock 2.0. |
| 13639 | |
| 13640 | Version 7.9-pre6 |
| 13641 | |
| 13642 | - libtool 1.4.2 is now in use! |
| 13643 | |
| 13644 | Version 7.9-pre5 |
| 13645 | |
| 13646 | Daniel (14 September 2001) |
| 13647 | - Added another 14 ftp tests. |
| 13648 | |
| 13649 | Daniel (13 September 2001) |
| 13650 | - Added curl_easy_duphandle() to the easy.h header file. It has now been |
| 13651 | tested and proved to work in a real-world tests by T Bharath. We still need |
| 13652 | to write up some docs for this function. |
| 13653 | |
| 13654 | - Added four more ftp tests to the test suite. |
| 13655 | |
| 13656 | Daniel (12 September 2001) |
| 13657 | - CURLOPT_SSL_CIPHER_LIST was added, and the curl tool option is named |
| 13658 | --ciphers. Use them to specify a list of ciphers to use in the SSL |
| 13659 | connection. |
| 13660 | |
| 13661 | - T. Bharath found a memory leak in libcurl's windows version. It turned out |
| 13662 | to be the new duphandle() that didn't quite work yet. |
| 13663 | |
| 13664 | Version 7.9-pre4 |
| 13665 | |
| 13666 | Daniel (11 September 2001) |
| 13667 | - Added verbose output for SSL connections that output the server |
| 13668 | certificate's start and expire dates. As suggested by Paul Harrington. |
| 13669 | |
| 13670 | - Heikki Korpela found problems in the perl ftp server used for the test |
| 13671 | suite, when he runs on on OpenBSD with perl 5.6. Some changes have been |
| 13672 | made, but nothing really certain. |
| 13673 | |
| 13674 | - T. Bharath has experienced problems with libcurl's stack usage on windows |
| 13675 | and works on reducing it. |
| 13676 | |
| 13677 | Daniel (10 September 2001) |
| 13678 | - Cris Bailiff fixed the perl interface. It stopped working since the changed |
| 13679 | behavior with WRITEHEADER and NULL pointers. |
| 13680 | |
| 13681 | - The "output cookies" function could dump core if no cookies were enabled. |
| 13682 | |
| 13683 | Daniel (7 September 2001) |
| 13684 | - SM pointed out that the SSL code didn't compile any longer if SSL was |
| 13685 | disabled... Also, we needed to correct the #include for the utime stuff on |
| 13686 | windows. |
| 13687 | |
| 13688 | Daniel (6 September 2001) |
| 13689 | - T. Bharath pointed out a flaw in the SSL session cache code that made it |
| 13690 | sometimes read from a NULL pointer. |
| 13691 | |
| 13692 | Version 7.9-pre3 |
| 13693 | |
| 13694 | Daniel (3 September 2001) |
| 13695 | - Added the -R/--remote-time option, that uses the remote file's datestamp to |
| 13696 | set the local file's datestamp. Thus, when you get a remote file your local |
| 13697 | file will get the same time and date. Note that this only works when you use |
| 13698 | -o or -O. |
| 13699 | |
| 13700 | - Installed libtool 1.4.1, libtoolized and everything. |
| 13701 | |
| 13702 | Daniel (1 September 2001) |
| 13703 | - Heikki Korpela pointed out that I did not ship the proper libtool stuff in |
| 13704 | the pre-releases, even though that was my intention. libtoolize has now |
| 13705 | been re-run. |
| 13706 | |
| 13707 | - Heikki also patched away the bad use of 'make -C' in the test suite |
| 13708 | makefile. make -C is not very portable and is now banned from here. |
| 13709 | |
| 13710 | Version 7.9-pre2 |
| 13711 | |
| 13712 | Daniel (31 August 2001) |
| 13713 | - I just made a huge internal struct rehaul, and all the big internally used |
| 13714 | structs have been renamed, redesigned and stuff have been moved around a bit |
| 13715 | to make the source easier to follow, more logically grouped and to hopefully |
| 13716 | decrease future bugs. I also hope that this will make new functions to get |
| 13717 | easier to add, and make it less likely that we have bugs left like the URL- |
| 13718 | free bug from August 23. |
| 13719 | |
| 13720 | Version 7.9-pre1 |
| 13721 | |
| 13722 | Daniel (29 August 2001) |
| 13723 | - The new cookie code have enabled the brand new '-c/--cookie-jar' option. Use |
| 13724 | that to specify the file name in which you want to have all cookies curl |
| 13725 | knows of, dumped to. It'll be written using the netscape cookie format. |
| 13726 | |
| 13727 | This is internally done with the new CURLOPT_COOKIEJAR option to libcurl, |
| 13728 | which in turn dumps this information when curl_easy_cleanup() is invoked. |
| 13729 | There might be reasons to re-consider my choice of putting it there. Perhaps |
| 13730 | it is better placed to get done just before *_perform() is done. It is all |
| 13731 | of course depending on how you guys want to use this feature... |
| 13732 | |
| 13733 | - Added ftpupload.c in the source examples section, based on source code posted |
| 13734 | by Erick Nuwendam. |
| 13735 | |
| 13736 | Daniel (28 August 2001) |
| 13737 | - Now running libtool CVS branch-1-4 to generate stuff. Should fix problems |
| 13738 | on OpenBSD and hopefully on FreeBSD as well! |
| 13739 | |
| 13740 | - Georg Huettenegger modified the curl_formadd() functionality slightly, and |
| 13741 | added support for error code 417 when doing form post and using the Expect: |
| 13742 | header. Great work! |
| 13743 | |
| 13744 | - Made some tests with cached SSL session IDs, and they seem to work. There |
| 13745 | should be a significant speed improvement in the SSL connection phase, but |
| 13746 | in my tiny tests it just isn't possible to notice any difference. Like other |
| 13747 | caching in libcurl, you must reuse the same handle for the caching to take |
| 13748 | effect. SSL session ID caching is done on a per host-name and destination |
| 13749 | port number basis. |
| 13750 | |
| 13751 | Set verbose, and you'll get informational tests when libcurl detects and |
| 13752 | uses a previous SSL session ID. |
| 13753 | |
| 13754 | - Upgraded to automake 1.5 on my development/release machine. |
| 13755 | |
| 13756 | Daniel (27 August 2001) |
| 13757 | - Slowly started writing SSL session ID caching code |
| 13758 | |
| 13759 | Daniel (24 August 2001) |
| 13760 | - T. Bharath removed compiler warnings on windows and updated the MS project |
| 13761 | files. |
| 13762 | |
| 13763 | - Kevin Roth reported two kinds of command line constructs with the new -G that |
| 13764 | curl didn't really deal with the way one would like. |
| 13765 | |
| 13766 | - Tim Costello patched away a use of strcasecmp() in the SSL code. We have our |
| 13767 | own portable version named strequal() that should be used! |
| 13768 | |
| 13769 | - Tim also pointed out a problem in the lib/Makefile.vc6 file that made it mix |
| 13770 | debug object modules causing confusions. |
| 13771 | |
| 13772 | Daniel (23 August 2001) |
| 13773 | - T. Bharath accurately found a libcurl bug that would happen when doing a |
| 13774 | second invoke of curl_easy_perform() with a new URL when the previous invoke |
| 13775 | followed a Location: header. |
| 13776 | |
| 13777 | - Started the improvement work on the cookie engine: |
| 13778 | - Now keeps cookies in the same order as the cookie file |
| 13779 | - A write to the possibly static string was removed |
| 13780 | - Added a function that can output all cookies |
| 13781 | - Now supports reading multiple cookie files |
| 13782 | |
| 13783 | - Steve Lhomme corrected a DLL naming issue in the MSVC++ project file. |
| 13784 | |
| 13785 | - Split up the monster function in lib/ftp.c to use more smallish functions to |
| 13786 | increase readability and maintainability. |
| 13787 | |
| 13788 | Daniel (21 August 2001) |
| 13789 | - Georg Huettenegger's big patch was applied. Now we have: |
| 13790 | o "Expect: 100-continue" support. We will from now on send that header in |
| 13791 | all rfc1867-posts, as that makes us abort much faster when the server |
| 13792 | rejects our POST. Posting without the Expect: header is still possible in |
| 13793 | the standard replace-internal-header style. |
| 13794 | o curl_formadd() is a new formpost building function that is introduced to |
| 13795 | replace the now deprecated curl_formparse() function. The latter function |
| 13796 | will still hang around for a while, but the curl_formadd() is the new way |
| 13797 | and correct way to build form posts. |
| 13798 | o Documentation has been updated to reflect these changes |
| 13799 | |
| 13800 | These changes are reason enough to name the next curl release 7.9... |
| 13801 | |
| 13802 | - We now convert man pages to HTML pages and include them in the release |
| 13803 | archive. For the pleasure of everyone without nroff within reach. |
| 13804 | |
| 13805 | - Andrés GarcÃa's suggested flushing of the progress meter output stream was |
| 13806 | added. It should make the progress meter look better on Windows. |
| 13807 | |
| 13808 | - Troy Engel pointed out a mistake in the configure script that made it fail |
| 13809 | on many Red Hat boxes! |
| 13810 | |
| 13811 | Daniel (20 August 2001) |
| 13812 | - We need an updated libtool to make a better build environment for OpenBSD |
| 13813 | as well as FreeBSD |
| 13814 | |
| 13815 | Version 7.8.1 |
| 13816 | |
| 13817 | Daniel (20 August 2001) |
| 13818 | - Brad pointed out that we ship two extra libtool files in the tarballs that |
| 13819 | we really don't need to! Removing them makes the gz-archive about 60K |
| 13820 | smaller! |
| 13821 | |
| 13822 | - Albert Chin brought fixes for the configure script to detect socklen_t |
| 13823 | properly as well as moving lots of our custom autoconf macros to |
| 13824 | acinclude.m4. |
| 13825 | |
| 13826 | Daniel (19 August 2001) |
| 13827 | - Moonesamy improved his -G feature for host names only URLs... |
| 13828 | |
| 13829 | Daniel (17 August 2001) |
| 13830 | - Finally cleaned up the kerberos code to use Curl_ prefixes on all global |
| 13831 | symbols and to not use global variables. |
| 13832 | |
| 13833 | Version 7.8.1-pre6 |
| 13834 | |
| 13835 | Daniel (16 August 2001) |
| 13836 | - S. Moonesamy added the -G option to curl, that converts the data specified |
| 13837 | with -d to a GET request. Default action when using -d is POST. When -G is |
| 13838 | used, the -d specified data will be appended to the URL with a '?' |
| 13839 | separator. As suggested previously by Kevin Roth. |
| 13840 | |
| 13841 | - curl-config --libs should now display all linker options required to link |
| 13842 | with libcurl. It includes the path and options for libcurl itself. |
| 13843 | curl-config --cflags displays the compiler option(s) needed to compile |
| 13844 | source files that use libcurl functions. Basically, that sets the include |
| 13845 | path correct. |
| 13846 | |
| 13847 | Daniel (15 August 2001) |
| 13848 | - Arkadiusz Miskiewicz pointed out a mistake in how IPv6-style IP-addresses |
| 13849 | were parsed and used. (RFC2732-format) |
| 13850 | |
| 13851 | - Bug #12733 over on php.net identified a problem in libcurl that made it core |
| 13852 | dump if you used CURLOPT_POST without setting any data to post with |
| 13853 | CURLOPT_POSTFIELDS! This is no longer the case. Not using CURLOPT_POSTFIELDS |
| 13854 | now equals setting it to no data at all. |
| 13855 | |
| 13856 | - Ramana Mokkapati reported that curl with '-w %{http_code}' didn't work |
| 13857 | properly when used for multiple URLs on a single command line. Indeed, the |
| 13858 | variable was not reset between the requests. This is now fixed. |
| 13859 | |
| 13860 | - David James fixed the Borland makefile so that libcurl still compiles and |
| 13861 | builds with that compiler. |
| 13862 | |
| 13863 | Daniel (14 August 2001) |
| 13864 | - Oops. I ruined Nico's socklen_t define in config-vms.h, corrected it now. |
| 13865 | |
| 13866 | - An older item not mentioned here before: CURL_GLOBAL_WIN32 is a define for |
| 13867 | windows users to curl_global_init(), that makes libcurl init the winsock |
| 13868 | stuff. If libcurl is all socket stuff you do, then allowing it to fiddle |
| 13869 | with this is a comfortable shortcut to fame. |
| 13870 | |
| 13871 | Version 7.8.1-pre5 |
| 13872 | |
| 13873 | Daniel (14 August 2001) |
| 13874 | - Nico Baggus provided more feedback from his VMS porting efforts and a few |
| 13875 | minor changes were necessary. |
| 13876 | |
| 13877 | - I modified configure.in so that --enable-debug sets more picky gcc options. |
| 13878 | I then removed almost all the new warnings that appeared, and by doing so I |
| 13879 | corrected the size_t-treated-as-signed problem that has been discussed on |
| 13880 | the mailing list previously. I also removed a bunch of the just recently |
| 13881 | added #ifdef VMS lines. |
| 13882 | |
| 13883 | - I removed the use of a global variable in the SSL code. It was once |
| 13884 | necessary but hasn't been needed since OpenSSL 0.9.4. The old code should |
| 13885 | (hopefully) still work if libcurl is built against an ancient version of |
| 13886 | OpenSSL. |
| 13887 | |
| 13888 | Daniel (13 August 2001) |
| 13889 | - Peter Todd posted a patch that now allows non-file rc1867-style form posts |
| 13890 | to be larger than 4K. |
| 13891 | |
| 13892 | Daniel (10 August 2001) |
| 13893 | - S. Moonesamy fixed bugs for building debug and SSL lib in VC makefile |
| 13894 | |
| 13895 | Daniel (9 August 2001) |
| 13896 | - The redirected error stream was closed before the curl_easy_cleanup() call |
| 13897 | was made, and when VERBOSE was enabled, the cleanup function tried to use |
| 13898 | the stream. It could lead to a segmentation fault. Also, the stream was |
| 13899 | closed even if we looped to get more files. Corrects Dustin Boswell's bug |
| 13900 | report #441610 |
| 13901 | |
| 13902 | - Now generates the release configure script with autoconf 2.52 |
| 13903 | |
| 13904 | Version 7.8.1-pre4 |
| 13905 | |
| 13906 | Daniel (8 August 2001) |
| 13907 | - curl -E uses a colon to separate a file name from a passphrase. This turned |
| 13908 | out really bad for the windows people who wants to include a drive letter in |
| 13909 | the file name like "c:\cert.pem". There's now a win32 work-around |
| 13910 | implemented that tries work around that, when the colon seems to be used for |
| 13911 | this kind of construct. |
| 13912 | |
| 13913 | - Patrick Bihan-Faou introduced CURLOPT_SSL_VERIFYHOST, which makes curl |
| 13914 | verify the server's CN field when talking https://. If --cacert is not used, |
| 13915 | any failures in matching is only displayed as information (-v). |
| 13916 | |
| 13917 | Daniel (7 August 2001) |
| 13918 | - Wrote up nine more test cases, more or less converted from the former test |
| 13919 | suite. |
| 13920 | |
| 13921 | Daniel (6 August 2001) |
| 13922 | - Heikki Korpela posted a patch that makes 'curl-config --libs' include the |
| 13923 | directory in which libcurl itself is installed in. While this wasn't my |
| 13924 | initial intention with this option, it makes sense and makes linking with |
| 13925 | libcurl easier. |
| 13926 | |
| 13927 | - Stefan Ulrich pointed out to us that other tools and libraries treat file:// |
| 13928 | URLs with only one slash after the host name slighly different than libcurl |
| 13929 | does. Since all the others seem to agree, we better follow them. |
| 13930 | |
| 13931 | - Nico Baggus provided us with a huge set of fixes to make curl compile and |
| 13932 | build under OpenVMS. |
| 13933 | |
| 13934 | Version 7.8.1-pre3 |
| 13935 | |
| 13936 | Daniel (6 August 2001) |
| 13937 | - Jonathan Hseu noticed that you couldn't get a header callback unless you |
| 13938 | set CURLOPT_WRITEHEADER to non-NULL, even if you didn't care about that |
| 13939 | data. This is now fixed. |
| 13940 | |
| 13941 | Daniel (5 August 2001) |
| 13942 | - Sergio Ballestrero provided a patch for reading responses from NCSA httpd |
| 13943 | 1.5.x servers, as they return really screwed up response headers when asked |
| 13944 | for with HTTP 1.1. |
| 13945 | |
| 13946 | - curl_escape() no longer treats already encoded characters in the input |
| 13947 | string especially. |
| 13948 | |
| 13949 | Daniel (3 August 2001) |
| 13950 | - I replaced the former lib/arpa_telnet.h file with one I wrote myself, to |
| 13951 | avoid the BSD annoucement clause of the license in the former file. |
| 13952 | |
| 13953 | - Andrew Francis provided a new version of base64.c to work around the license |
| 13954 | boiler plate that came with the previous one. I patched it, but the glory |
| 13955 | should go to Andrew for his heads up. |
| 13956 | |
| 13957 | - Tomasz Lacki noticed that when you do repeated transfers with libcurl you |
| 13958 | couldn't always reliably change HTTP request. This has now been fixed and a |
| 13959 | new libcurl option was added: CURLOPT_HTTPGET, that can force the HTTP |
| 13960 | requestr (back) to GET. |
| 13961 | |
| 13962 | - Linus Nielsen Feltzing pointed out that httpsserver.pl wasn't included in |
| 13963 | release archives. It should be now. |
| 13964 | |
| 13965 | Daniel (2 August 2001) |
| 13966 | - Frank Keeney pointed out a manual mistake for certificate convertions. |
| 13967 | |
| 13968 | - Tomasz Lacki pointed out a problem in the transfer loop that could make the |
| 13969 | select() loop use far too much CPU. |
| 13970 | |
| 13971 | - Pawel A. Gajda pointed out an output mistake done when using libcurl's |
| 13972 | progress callback. |
| 13973 | |
| 13974 | Daniel (29 June 2001) |
| 13975 | - Naveen Noel noticed that the Borland library makefile wasn't updated. |
| 13976 | |
| 13977 | - Nic Roets brought a fix for the certificate verification when using SSL. |
| 13978 | |
| 13979 | Daniel (27 June 2001) |
| 13980 | - Made the FTP tests run OK even on machines running curl IPv6-enabled. |
| 13981 | |
| 13982 | - Troy Engel corrected some RPM package details. |
| 13983 | |
| 13984 | Version 7.8.1-pre2 |
| 13985 | |
| 13986 | Daniel (25 June 2001) |
| 13987 | - Björn Stenberg correctly identified a problem that occurred when downloading |
| 13988 | several files with curl, and using resume. The first file's resume index was |
| 13989 | then used for all files, resulting in weird results... |
| 13990 | |
| 13991 | - Anton Kalmykov provided a fix that makes curl work with form field names |
| 13992 | with spaces like when -F is used. |
| 13993 | |
| 13994 | Version 7.8.1-pre1 |
| 13995 | |
| 13996 | Daniel (20 June 2001) |
| 13997 | - Mike Bytnar provided a fine report that proved that the --with-ssl option |
| 13998 | for configure needed tweaking. It no longer searches the default directories |
| 13999 | for OpenSSL libs or directories when a specified path is given. |
| 14000 | |
| 14001 | Daniel (19 June 2001) |
| 14002 | - When an FTP transfer is cut off during transfer, curl could present a truly |
| 14003 | garbaged error message and in worst case dump core. Thanks to detailed |
| 14004 | reports from Shawn Poulson we nailed this. |
| 14005 | |
| 14006 | Daniel (12 June 2001) |
| 14007 | - Salvador Dávila provided a fix for FTP range downloads. |
| 14008 | |
| 14009 | - Added a few more test cases from the former test suite to the new file |
| 14010 | format. We're now at a total of 26 tests. |
| 14011 | |
| 14012 | Daniel (11 June 2001) |
| 14013 | - libcurl's version-info was wrong, as noted by both Domenico Andreoli and |
| 14014 | David Odin. |
| 14015 | |
| 14016 | Daniel (7 June 2001) |
| 14017 | - Jörn fixed the curl_unescape duplicate entry in lib/libcurl.def |
| 14018 | |
| 14019 | - I made SSL certificate failure messages to be more detailed. |
| 14020 | |
| 14021 | Version 7.8 |
| 14022 | |
| 14023 | Daniel (7 June 2001) |
| 14024 | - SDavila provided a resumed download fix. |
| 14025 | |
| 14026 | Version 7.8-pre4 |
| 14027 | |
| 14028 | Daniel (1 June 2001) |
| 14029 | - Sterling provided some new PHP examples. |
| 14030 | |
| 14031 | - Changed the CVS hierarchy and the older checkout instruction does no longer |
| 14032 | work. We moved the entire source code into a CVS module named 'curl'. |
| 14033 | |
| 14034 | Daniel (31 May 2001) |
| 14035 | - CURLOPT_MUTE does not exist anymore. It is still present in the include file |
| 14036 | to not cause compiler errors for applications using it, but it isn't used |
| 14037 | anywhere in the library. |
| 14038 | |
| 14039 | Version 7.8-pre3 |
| 14040 | |
| 14041 | Daniel (31 May 2001) |
| 14042 | - Once and for all fixed the _REENTRANT mess for Solaris compiles to present |
| 14043 | less warnings. |
| 14044 | |
| 14045 | - Sterling Hughes tirelessly points out and corrects my mistakes...! So, |
| 14046 | curl_global_init() now lets the argument flags *SET* what parts to |
| 14047 | init. CURL_GLOBAL_DEFAULT makes a nice default, CURL_GLOBAL_ALL inits all |
| 14048 | known subsystems and CURL_GLOBAL_NONE inits nothing more than absolutely |
| 14049 | necessary. Man page updated accordingly. |
| 14050 | |
| 14051 | - Fixed the strtok.h include file as it wouldn't compile on all platforms! |
| 14052 | |
| 14053 | Daniel (30 May 2001) |
| 14054 | - Made libcurl by default act as if CURLOPT_MUTE and CURLOPT_NOPROGRESS were |
| 14055 | set TRUE. Set them to FALSE to make libcurl more talkative. The *_MUTE |
| 14056 | option is subject for complete removal... |
| 14057 | |
| 14058 | Version 7.8-pre2 |
| 14059 | |
| 14060 | Daniel (30 May 2001) |
| 14061 | - Cris Bailiff wrote a makefile for building Solaris packages. |
| 14062 | |
| 14063 | - Sterling Hughes brought fixes for 'buildconf' (the build-from-CVS tool) and |
| 14064 | we discussed and added a few CURL_GLOBAL_* flags in include/curl.h |
| 14065 | |
| 14066 | - Kjetil Jacobsen privately announced his python interface to libcurl, |
| 14067 | available at http://pycurl.sourceforge.net/ |
| 14068 | |
| 14069 | Daniel (29 May 2001) |
| 14070 | - Sterling Hughes fixed a strtok() problem in libcurl. It is not a thread- |
| 14071 | safe function. Now configure checks for a thread-safe version, and |
| 14072 | lib/strtok.c offers one for the systems that don't come with one included! |
| 14073 | |
| 14074 | - Mettgut Jamalla correctly pointed out that the -# progress bar was written |
| 14075 | to stderr even though --stderr redirection was used. This is now corrected. |
| 14076 | |
| 14077 | - I moved out the list of contributors from the curl.1 man page and made a |
| 14078 | separate docs/THANKS file. It makes the list easier to find, and made it |
| 14079 | easier for me to make a separate web page with that same information. |
| 14080 | |
| 14081 | I really do want all you guys mentioned in there to feel you get the credit |
| 14082 | you deserve. |
| 14083 | |
| 14084 | - lib/easy.c didn't compile properly in the 7.8-pre1 due to a silly mistake |
| 14085 | |
| 14086 | Version 7.8-pre1 |
| 14087 | |
| 14088 | Daniel (28 May 2001) |
| 14089 | - curl-config now supports '--vernum' that outputs a plain hexadecimal version |
| 14090 | of the libcurl version number (using 8 bits for each 3 numbers). Version |
| 14091 | 7.7.4 appears as 070704 |
| 14092 | |
| 14093 | - Wrote man pages for curl_global_init and curl_global_cleanup... |
| 14094 | |
| 14095 | - T. Bharath brought news about the usage of the OpenSSL interface that was |
| 14096 | not previously taken into consideration and thus caused libcurl to leak |
| 14097 | memory. The only somewhat sane approach to fix this dilemma, is adding two |
| 14098 | two new functions curl_global_init() and curl_global_cleanup() that should |
| 14099 | be called *ONCE* by the application using libcurl. The init should be done |
| 14100 | only at startup, no matter how many threads the application is gonna use, |
| 14101 | and the cleanup should be called when the application has finished using |
| 14102 | libcurl completely. |
| 14103 | |
| 14104 | *** UPGRADE NOTICE *** |
| 14105 | |
| 14106 | If you write applications using libcurl, you really want to use the two |
| 14107 | functions mentioned above !!! |
| 14108 | |
| 14109 | I can't say I think this is a very beautiful solution, but as OpenSSL |
| 14110 | insists on making lots of stuff on a "global" scope, we're forced to walk |
| 14111 | the path they point us to. |
| 14112 | |
| 14113 | - Moving more test cases into the new file format. |
| 14114 | |
| 14115 | Version 7.7.4-pre3 |
| 14116 | |
| 14117 | Daniel (23 May 2001) |
| 14118 | - Introduced a new file format for storing test cases, and thus I had to |
| 14119 | modify all the perl test scripts and more (I added a new one). I have not |
| 14120 | "ported" all the old test cases to the new format yet, but it'll come. |
| 14121 | |
| 14122 | The main advantage of this new format is that all test data for each test |
| 14123 | case is stored in a single file. It gives a better overview for each test |
| 14124 | case and a lot less files. |
| 14125 | |
| 14126 | - Andrés GarcÃa brought a fix for the netscape/mozilla cookie file parsing |
| 14127 | function, as it turns out it doesn't always store the path! |
| 14128 | |
| 14129 | Daniel (22 May 2001) |
| 14130 | - As was reported anonymously, when FAILONERROR was used, the httpcode was |
| 14131 | not stored properly and thus wasn't possibly to read after a transfer with |
| 14132 | the curl_easy_getinfo() function. This is now corrected. |
| 14133 | |
| 14134 | - Installed and made use of the following tool versions: |
| 14135 | autoconf 2.50 |
| 14136 | libtool 1.4 |
| 14137 | automake 1.4-p1 |
| 14138 | |
| 14139 | I wouldn't recommend any developer to try to generate things with older |
| 14140 | versions than these. Building from CVS will probably more or less require |
| 14141 | at least these versions. |
| 14142 | |
| 14143 | As a result of this, the configure script grew to more than double its |
| 14144 | previous size! |
| 14145 | |
| 14146 | Arkadiusz Miskiewicz helped me by pointing out I had to remove my |
| 14147 | acinclude.m4 file before I could get it working! |
| 14148 | |
| 14149 | Daniel (21 May 2001) |
| 14150 | - I made ftps:// work. Added test case 400 to the release archive, as the |
| 14151 | first ftps:// test case. Requires stunnel. |
| 14152 | |
| 14153 | - Also made the test cases that runs ssl tests not run if libcurl isn't built |
| 14154 | with ssl support. |
| 14155 | |
| 14156 | Daniel (19 May 2001) |
| 14157 | - Made the configure not add any extra -L LDFLAGS or -I CPPFLAGS unless they |
| 14158 | are actually needed. Albert Chin's and Domenico Andreoli's suggestions |
| 14159 | helped out. |
| 14160 | |
| 14161 | Version 7.7.4-pre2 |
| 14162 | |
| 14163 | Daniel (18 May 2001) |
| 14164 | - Nicer configure-check for the OpenSSL headers, which then sets the proper |
| 14165 | variable to have curl-config be good. (Albert Chin provided the fix) |
| 14166 | |
| 14167 | - For systems that don't have theiw own 'strlcat()' libcurl provides its own. |
| 14168 | It was now renamed to prevent collides with other libs. (After discussions |
| 14169 | with Sterling Hughes and the implications this had on PHP builds.) |
| 14170 | |
| 14171 | Daniel (17 May 2001) |
| 14172 | - Colm Buckley posted a detailed bug report on (the debianized) 7.7.3, that |
| 14173 | turned out to be a problem with the debian-built 7.7.3-package that |
| 14174 | contained files from the 7.7.2 release! |
| 14175 | |
| 14176 | - I added the CURLE_ALREADY_COMPLETE again, but with a fake value, just to |
| 14177 | make programs that use it, not fail when compiling against this version of |
| 14178 | libcurl. |
| 14179 | |
| 14180 | Daniel (14 May 2001) |
| 14181 | - Pawel A. Gajda fixed a problem with resumed transfers on re-used persistent |
| 14182 | connections. |
| 14183 | |
| 14184 | Version 7.7.4-pre1 |
| 14185 | |
| 14186 | Daniel (14 May 2001) |
| 14187 | - Jun-ichiro itojun Hagino fixed FTP PORT for IPv6-enabled libcurl. |
| 14188 | |
| 14189 | - Added the first HTTPS test to the test suite in the release archive. |
| 14190 | |
| 14191 | Daniel (12 May 2001) |
| 14192 | - Jukka Pihl suggested that if (lib)curl is told to verify the peer's |
| 14193 | certificate and the peer can't be verified, it should fail and return a |
| 14194 | proper error code. I added a brand new error code named |
| 14195 | CURLE_SSL_PEER_CERTIFICATE for this purpose. |
| 14196 | |
| 14197 | Daniel (11 May 2001) |
| 14198 | - As was discussed with Frederic Lepied a while ago, I now made libcurl not |
| 14199 | return error even though no data was transfered on upload/download resume |
| 14200 | when the no transfer is needed. The CURLE_ALREADY_COMPLETE error was removed |
| 14201 | from the header file to make any implemenator that uses that to be aware of |
| 14202 | the fact that it can't be returned anymore! |
| 14203 | |
| 14204 | - Improved general header-parsing to better allow white spaces and more. |
| 14205 | |
| 14206 | - Rodney Simmons proved the fix I did yesterday was bad and I had to post |
| 14207 | another one. |
| 14208 | |
| 14209 | - Ingo Wilken patched away two redirect problems more! |
| 14210 | |
| 14211 | Daniel (10 May 2001) |
| 14212 | - Cris Bailiff correctly noted that the space-after-header problem with |
| 14213 | Location: is present on several other places in the libcurl sources. |
| 14214 | |
| 14215 | - Ingo Wilken patched away a problem libcurl had when following Location: |
| 14216 | headers with an extra space after the colon. |
| 14217 | |
| 14218 | - Rodney Simmons found out that multiple FTP transfers did not treat relative |
| 14219 | directories correctly. |
| 14220 | |
| 14221 | Daniel (9 May 2001) |
| 14222 | - Getting an FTP file with CURLOPT_NOBODY set (or -I from the command line), |
| 14223 | makes curl use the non-standard ftp command "SIZE". If it failed, libcurl |
| 14224 | returned error. Starting now, it just don't output the file size instead. |
| 14225 | Anonymous bug report. |
| 14226 | |
| 14227 | - stunnel.pm was accidentally left out from the release archive, it is now |
| 14228 | added (stunnel is needed to run the https-tests in the test suite) |
| 14229 | |
| 14230 | Daniel (7 May 2001) |
| 14231 | - Corrected two minor compiler warnings due to the FILE * to void * conversion |
| 14232 | that I missed at two places. Jörn Hartroth brought me patches. Sander Gates |
| 14233 | filed a bug report on this. |
| 14234 | |
| 14235 | Version 7.7.3 |
| 14236 | |
| 14237 | Daniel (4 May 2001) |
| 14238 | - All callback functions now take 'void *' instead of 'FILE *'. This is made |
| 14239 | this way to make it more obvious to people that anything can be passed to |
| 14240 | them (by using the apropriate option). After discussions with Sterling |
| 14241 | Hughes. |
| 14242 | |
| 14243 | Daniel (3 May 2001) |
| 14244 | - Cris Bailiff fixed a chunked transfer encoding problem with persistent |
| 14245 | connection that made libcurl fail if the persistent connection used mixed |
| 14246 | chunked and non-chunked transfers. |
| 14247 | |
| 14248 | - Cris Bailiff fixed a bad treatment of 304-replies, as they would not be |
| 14249 | treated as content-length 0 replies but would cause a "hang" until the |
| 14250 | server timed-out and closed the connection. |
| 14251 | |
| 14252 | - Brad Burdick found a minor problem in the docs/examples/Makefile.am |
| 14253 | |
| 14254 | Daniel (27 April 2001) |
| 14255 | - Updated the INTERALS document again. It was lagging a bit. I think I made it |
| 14256 | more easy to follow now as well. |
| 14257 | |
| 14258 | - Brad Burdick found a problem with persistent connections when curl received |
| 14259 | a "Content-Length: 0" header. |
| 14260 | |
| 14261 | - Giuseppe D'Ambrosio was first out to report that TELNET doesn't work in curl |
| 14262 | compiled/built on win32. It seems to work for unixes though! |
| 14263 | |
| 14264 | - Dave Hamilton reported weird problems with CURL/PHP that I really can't |
| 14265 | explain at the moment. I'm hoping on some help from the PHP crew. |
| 14266 | |
| 14267 | Daniel (26 April 2001) |
| 14268 | - I rewrote the FTP command response function. I had to do it to make ftps |
| 14269 | work, as the OpenSSL read()-function didn't work the same way the normal |
| 14270 | unix read() does, but it was also a huge performance boost. Previously the |
| 14271 | function read one byte at a time, now it reads very large chunks, and it |
| 14272 | makes a notable speed difference. |
| 14273 | |
| 14274 | Daniel (25 April 2001) |
| 14275 | - Connection re-use when not using a proxy didn't work properly for |
| 14276 | non-default port numbers. |
| 14277 | |
| 14278 | Daniel (24 April 2001) |
| 14279 | - I've noticed that FTPS doesn't work. We attempt to use ssl even for the |
| 14280 | data transfer, which causes the transfer to 'hang'... We need to fix this. |
| 14281 | |
| 14282 | - Improved the test suite to use 'stunnel' to do HTTPS and FTPS testing on |
| 14283 | the alredy written perl servers easily. |
| 14284 | |
| 14285 | Daniel (23 April 2001) |
| 14286 | - The OpenSSL version string recently modified didn't zero terminate one |
| 14287 | of the generated strings properly, which could lead to a crash or simply |
| 14288 | weird version string output! |
| 14289 | |
| 14290 | Version 7.7.2 |
| 14291 | |
| 14292 | Daniel (22 April 2001) |
| 14293 | - Rosimildo da Silva updated the Makefiles for Borland/Windows. |
| 14294 | |
| 14295 | - Eric Rautman pointed out a problem with persistent connections that would |
| 14296 | lead to broken Host: headers in the second HTTP request. |
| 14297 | |
| 14298 | Daniel (20 April 2001) |
| 14299 | - Added man pages for the curl_strequal() and curl_mprintf() families. Wrote |
| 14300 | a 'libcurl overview' man page. |
| 14301 | |
| 14302 | - Spell-fixed some documents. |
| 14303 | |
| 14304 | - S. Moonesamy corrected mistakes in the man page. |
| 14305 | |
| 14306 | - Cris Bailiff fixed the curl_slists options in the perl interface, present |
| 14307 | separately in the Curl::easy 1.1.4 package. |
| 14308 | |
| 14309 | Daniel (19 April 2001) |
| 14310 | - Linus Nielsen Feltzing removed the decimals from the size variables in the |
| 14311 | --write-out output. We hardly ever get fraction of bytes! :-) |
| 14312 | |
| 14313 | Version 7.7.2-pre1 |
| 14314 | |
| 14315 | Daniel (19 April 2001) |
| 14316 | |
| 14317 | - Albert Chin provided a configure patch for the AC_SYS_LARGEFILE macro. |
| 14318 | |
| 14319 | Daniel (18 April 2001) |
| 14320 | - Input from Michael Mealling made me add --feature to curl-config. It |
| 14321 | displays a list of features that have been built-in in the current |
| 14322 | libcurl. The currently available features that can be listed are: SSL, KRB4 |
| 14323 | and IPv6. |
| 14324 | |
| 14325 | - I committed Cris and Georg's perl interface work. They've got callbacks |
| 14326 | working and options that receives those slist pointers. |
| 14327 | |
| 14328 | - Puneet Pawaia detected a problem with resumed downloads that use persistent |
| 14329 | connections and I made a rather large writeup to correct this. It is |
| 14330 | important that all session-data is stored in the connectdata struct and not |
| 14331 | in the main struct as this previously did. |
| 14332 | |
| 14333 | Daniel (17 April 2001) |
| 14334 | - Frederic Lepied fixed a ftp resumed download problem and introduced a new |
| 14335 | error code that lets applications be able to detect when a resumed download |
| 14336 | actually didn't download anything since the whole file is already present. |
| 14337 | Should this return OK instead? |
| 14338 | |
| 14339 | - I added 'curl-config.in' to the root dir and configure script. Now, a |
| 14340 | curl-config script is made when curl is built. The script can be used to |
| 14341 | figure out compile time options used when libcurl was built, which in turn |
| 14342 | should be options YOU should use to build applications that use libcurl. |
| 14343 | |
| 14344 | This *-config style is not a new idea, but something that has been used |
| 14345 | successfully in other (library based) projects. |
| 14346 | |
| 14347 | - Phil Karn pointed out that libcurl wrongly did not always use GMT time zone |
| 14348 | for the If-Modified-Since style headers. |
| 14349 | |
| 14350 | - Georg Schwarz pointed out an extra needed #include file needed in src/main.c |
| 14351 | for curl to build on Ultrix. |
| 14352 | |
| 14353 | Daniel (11 April 2001) |
| 14354 | - Cris Bailiff pointed out two problems that I corrected. First, libcurl's use |
| 14355 | of the environment variable HTTP_PROXY in uppercase may become a security |
| 14356 | hazard when people use libcurl in a server/cgi situation where the server |
| 14357 | sets the HTTP_*-variables according to incoming headers in the HTTP |
| 14358 | request. Thus, a "Proxy:"-header would set that environment variable! |
| 14359 | |
| 14360 | Then, invoking curl_easy_perform() without having an URL set caused a crash. |
| 14361 | |
| 14362 | - S. Moonesamy brought a patch that make curl use non-blocking connects on |
| 14363 | windows when connection timeout is set, as it allows windows users to set |
| 14364 | that timeout! |
| 14365 | |
| 14366 | - Hirotaka Matsuyuki wrote a Ruby interface to libcurl! |
| 14367 | |
| 14368 | - Cris Bailiff, Forrest Cahoon and Georg Horn work on the Perl interface. |
| 14369 | |
| 14370 | - I've written a first shot at a Java interface to libcurl. Many thanks to |
| 14371 | Daniel Marell for tirelessly answering to all my basic Java questions. It |
| 14372 | works, but it is still very basic. |
| 14373 | |
| 14374 | Daniel (10 April 2001) |
| 14375 | - The progress display could get silly when doing multiple file transfers, as |
| 14376 | it wasn't properly reset between transfers! |
| 14377 | |
| 14378 | - Discussions with Cris Bailiff who writes a Perl interface to libcurl, made |
| 14379 | me add CURLOPT_HEADERFUNCTION. It can be used to set a separate callback |
| 14380 | function for writing headers. Previously you could only set a different FILE |
| 14381 | * when headers are written from within libcurl. |
| 14382 | |
| 14383 | Daniel (7 April 2001) |
| 14384 | - Andrés GarcÃa fixed a problem in curl_escape() and pointed out a flaw in |
| 14385 | the curl_easy_setopt man page. |
| 14386 | |
| 14387 | Daniel (6 April 2001) |
| 14388 | - Adjusted the version code to properly display OpenSSL 0.9.6a. They sure |
| 14389 | change their version define format often... |
| 14390 | |
| 14391 | - curl_formfree() now accepts a NULL pointer without crashing! |
| 14392 | |
| 14393 | Version 7.7.1 |
| 14394 | |
| 14395 | Daniel (3 April 2001) |
| 14396 | - Puneet Pawaia pointed out two serious problems. Libcurl would attempt to |
| 14397 | read bad memory during situations when an (ftp) connection attempt failed. |
| 14398 | Also, the lib/Makefile.vc6 was corrected. |
| 14399 | |
| 14400 | - More investigations in the Location: following code made me realize that |
| 14401 | it was not clean enough to work transparantly with persistent and non- |
| 14402 | persistent connections. I think I've fixed it now. |
| 14403 | |
| 14404 | Daniel (29 March 2001) |
| 14405 | - Georg Horn mailed me some corrections for the Curl::easy perl interface. |
| 14406 | |
| 14407 | - Experimental ftps:// support added. It is basically FTP over SSL for the |
| 14408 | control connection. It still makes all data transfers going over unencrypted |
| 14409 | connections. Rainer Weikusat's ftpd-ssl server hack supports this and I used |
| 14410 | that to verify the functionality. |
| 14411 | |
| 14412 | Daniel (27 March 2001) |
| 14413 | - Guenole Bescon discovered that if you set a CURLOPT_TIMEOUT and then tried |
| 14414 | to get a file from a site and it fails, the SIGALRM would still be sent |
| 14415 | after the timeout-time, quite inexpectedly! |
| 14416 | |
| 14417 | - I added an ftp transfer example to docs/examples/ and I also wrote a tiny |
| 14418 | example makefile that can be used as a start when building one of the |
| 14419 | examples. |
| 14420 | |
| 14421 | Version 7.7.1-beta1 |
| 14422 | |
| 14423 | Daniel (26 March 2001) |
| 14424 | - Mohamed Lrhazi reported problems with 7.6.1 and persistent HTTP/1.0 |
| 14425 | connections (when the server replied a Connection: Keep-Alive) and this |
| 14426 | problem was not properly dealt with in 7.7 either. A patch was posted to the |
| 14427 | curl-and-php mailing list. |
| 14428 | |
| 14429 | Daniel (24 March 2001) |
| 14430 | - Colin Watson reported about a problem and brought a patch that corrected it, |
| 14431 | which was about the man page and lines starting with a single quote (') in a |
| 14432 | way that gnroff doesn't like. |
| 14433 | |
| 14434 | Daniel (23 March 2001) |
| 14435 | - Peter Bray reported correctly that the root makefile used make instead of |
| 14436 | $(MAKE) for the test target. |
| 14437 | |
| 14438 | - Corrected the Curl::easy perl interface to use curl_easy_setopt() and not |
| 14439 | curl_setopt() which was removed in 7.7! |
| 14440 | |
| 14441 | - S. Moonesamy provided updates on three documents (MANUAL, INSTALL and FAQ). |
| 14442 | |
| 14443 | - When following a Location:, libcurl would sometimes write to the URL string |
| 14444 | in a way it shouldn't. As the pointer is passed-in to libcurl from an |
| 14445 | application, we can't be allowed to write to it. The particular bug report |
| 14446 | from 'nk' that brought this up was because he had a read-only URL that then |
| 14447 | caused a libcurl crash! |
| 14448 | |
| 14449 | - No longer reads HEAD responses longer than to the last header. Previously, |
| 14450 | curl would read the full reply if the connection was a "close" one. |
| 14451 | |
| 14452 | - libcurl did re-use connections way too much. Doing "curl |
| 14453 | http://www.{microsoft,ibm}.com" would make it re-use the connection which |
| 14454 | made the second request return very odd results. |
| 14455 | |
| 14456 | Daniel (22 March 2001) |
| 14457 | - Edin Kadribasic made me aware that curl should not re-send POST requests |
| 14458 | when following 302-redirects. I made 302 work like 303 which means curl uses |
| 14459 | GET in the following request(s). |
| 14460 | |
| 14461 | - libcurl now reset the "followed-location" counter on each invoke of |
| 14462 | curl_easy_perform() as it otherwise would sum up all redirects on the same |
| 14463 | connection and thus could reach the maxredirs counter wrongly. |
| 14464 | |
| 14465 | - Jim Drash suggested curl_escape() should not re-encode what already looks |
| 14466 | like an encoded sequence and I think that's a fair suggestion. |
| 14467 | |
| 14468 | Version 7.7 |
| 14469 | |
| 14470 | Daniel (22 March 2001) |
| 14471 | - The configure script now fails with an error message if gethostbyname_r() is |
| 14472 | detected but it couldn't figure out how to invoke it (what amount of |
| 14473 | arguments it is supposed to get). Reports from Andrés GarcÃa made me aware |
| 14474 | of this need. |
| 14475 | |
| 14476 | - Talking with Jim Drash made me finally put the curl_escape and curl_unescape |
| 14477 | functions in the curl.h include file and write man pages for them. The |
| 14478 | escape function was modified to use the same interface as the unescape one |
| 14479 | had. |
| 14480 | |
| 14481 | - No bug reports at all on the latest betas. Release time coming up. |
| 14482 | |
| 14483 | Version 7.7-beta5 |
| 14484 | |
| 14485 | Daniel (19 March 2001) |
| 14486 | - Georg Ottinger reported problems with using -C together with -L in the sense |
| 14487 | that the -C info got lost when it was redirected. I could not repeat this |
| 14488 | problem on the 7.7 branch why I leave this for the moment. Test case 39 was |
| 14489 | added to do exactly this, and it seems to do right. |
| 14490 | |
| 14491 | - Christian Robottom Reis reported how his 7.7 beta didn't successfully do |
| 14492 | form posts as elegantly as 7.6.1 did. Indeed, this was a flaw in the header |
| 14493 | engine, as HTTP 1.1 has introduced a new 100 "transient" return code for PUT |
| 14494 | and POST operations that I need to add support for. Section 8.2.3 in RFC2616 |
| 14495 | has all the details. Seems to work now! |
| 14496 | |
| 14497 | Daniel (16 March 2001) |
| 14498 | - After having experienced another machine break-down, we're back. |
| 14499 | |
| 14500 | - Georg Horn's perl interface Curl::easy is now included in the curl release |
| 14501 | archive. The perl/ directory is now present. Please help me with docs, |
| 14502 | examples and updates you think fit. |
| 14503 | |
| 14504 | - Made a new php/ directory in the release archive and moved the PHP examples |
| 14505 | into a subdirectory in there. Not much PHP info yet, but I plan to. Please |
| 14506 | help me here as well! |
| 14507 | |
| 14508 | - Made libcurl return error if a transfer is aborted in the middle of a |
| 14509 | "chunk". It actually enables libcurl to discover premature transfer aborts |
| 14510 | even if the Content-Length: size is unknown. |
| 14511 | |
| 14512 | Daniel (15 March 2001) |
| 14513 | - Added --connect-timeout to curl, which sets the new CURLOPT_CONNECTTIMEOUT |
| 14514 | option in libcurl. It limits the time curl is allowed to spend in the |
| 14515 | connection phase. This differs from -m/--max-time that limits the entire |
| 14516 | file transfer operation. Requested by Larry Fahnoe and others. |
| 14517 | |
| 14518 | I also updated the curl.1 and curl_easy_setopt.3 man pages and removed the |
| 14519 | item from the TODO. |
| 14520 | |
| 14521 | Version 7.7-beta4 |
| 14522 | |
| 14523 | Daniel (14 March 2001) |
| 14524 | - Made curl grok IPv6 with HTTP proxies and got everything to compile nicely |
| 14525 | again when ENABLE_IPV6 is set. |
| 14526 | |
| 14527 | I need to remake things in the test suite. I can't test the FTP parts with |
| 14528 | curl built for IPv6 as it uses a different set of FTP commands then! |
| 14529 | |
| 14530 | - I fell onto a bug report on php.net (posted by Lars Torben Wilson) that was |
| 14531 | a report meant for our project. Anyway, it said the .netrc parsing didn't |
| 14532 | work as supposed, and as I agreed with Lars, I made the netrc parser use |
| 14533 | getpwuid() to figure out the home directory of the effective user and try |
| 14534 | that netrc. It still uses the environment variable HOME for those that don't |
| 14535 | have that function or if the user doesn't return valid pwd info. |
| 14536 | |
| 14537 | - Edin Kadribaic posted a bug report where he got a crash when a fetch with |
| 14538 | user+password in the URL followed a Location: to a second URL (absolute, |
| 14539 | without name+password). This bug has been around for a long while and |
| 14540 | crashes due to a read at address zero. Fixed now. Wrote test case 38, that |
| 14541 | tests this. |
| 14542 | |
| 14543 | - Modified the test suite's httpserver slightly to append all client request |
| 14544 | data to its log file so that the test script now better can verify a range |
| 14545 | of requests and not only the last one, as it did previously. |
| 14546 | |
| 14547 | - Updated the curl man page with --random-file and --egd-file details. |
| 14548 | |
| 14549 | Version 7.7-beta3 |
| 14550 | |
| 14551 | Daniel (14 March 2001) |
| 14552 | - Björn Stenberg provided similar fixes as Jörn did and some additional patches |
| 14553 | for non-SSL compiles. |
| 14554 | |
| 14555 | - I increased the interface number for libcurl as I've removed the low level |
| 14556 | functions from the interface. I also took this opportunity to rename the |
| 14557 | Curl_strequal function to curl_strequal and Curl_strnequal to |
| 14558 | curl_strnequal, as they're public libcurl functions (even if they're still |
| 14559 | undocumented). |
| 14560 | |
| 14561 | This will make older programs not capable of using the new libcurl with |
| 14562 | just a drop-in replacement. |
| 14563 | |
| 14564 | - Jörn Hartroth updated stuff for win32 compiles: |
| 14565 | o config-win32.h was fixed for socklen_t |
| 14566 | o lib/ssluse.c had a bad #endif placement |
| 14567 | o lib/file.c was made to compile on win32 again |
| 14568 | o lib/Makefile.m32 was updated with the new files |
| 14569 | o lib/libcurl.def matches the current interface state |
| 14570 | |
| 14571 | Daniel (13 March 2001) |
| 14572 | - It only took an hour or so before Jörn Hartroth found a problem in the |
| 14573 | chunked transfer-encoding. Given his fine example-site, I could easily spot |
| 14574 | the problem and when I re-read the spec (the part I have pasted in the top |
| 14575 | of the http_chunks.h file), I realized I had made my state-machine slightly |
| 14576 | wrong and didn't expect/handle the trailing CRLF that comes after the data |
| 14577 | in each chunk (and those extra two bytes sure feel wasted). |
| 14578 | |
| 14579 | Had to modify test case 34 to match this as well. |
| 14580 | |
| 14581 | Version 7.7-beta2 |
| 14582 | |
| 14583 | Daniel (13 March 2001) |
| 14584 | - Added the policy stuff to the curl_easy_setopt man page for the two supported |
| 14585 | policies. |
| 14586 | |
| 14587 | - Implemented some support for the CURLOPT_CLOSEPOLICY option. The policies |
| 14588 | CURLCLOSEPOLICY_LEAST_RECENTLY_USED and CURLCLOSEPOLICY_OLDEST are now |
| 14589 | supported, and the "least recently used" is used as default if no policy |
| 14590 | is chosen. |
| 14591 | |
| 14592 | Daniel (12 March 2001) |
| 14593 | - Added CURLOPT_RANDOM_FILE and CURLOPT_EGDSOCKET to libcurl for seeding the |
| 14594 | SSL random engine. The random seeding support was also brought to the curl |
| 14595 | client with the new options --random-file <file> and --egd-file <file>. I |
| 14596 | need some people to really test this to know they work as supposed. Remember |
| 14597 | that libcurl now informs (if verbose is on) if the random seed is considered |
| 14598 | weak (HTTPS connections). |
| 14599 | |
| 14600 | - Made the chunked transfer-encoding engine detected bad formatted data length |
| 14601 | and return error if so (we can't possibly extract sensible data if this is |
| 14602 | the case). Added a test case that detects this. Number 36. Now there are 60 |
| 14603 | test cases. |
| 14604 | |
| 14605 | - Added 5 new libcurl options to curl/curl.h that can be used to control the |
| 14606 | persistent connection support in libcurl. They're also documented (fairly |
| 14607 | thoroughly) in the curl_easy_setopt.3 man page. Three of them are now |
| 14608 | implemented, although not really tested at this point... Anyway, the new |
| 14609 | implemented options are named CURLOPT_MAXCONNECTS, CURLOPT_FRESH_CONNECT, |
| 14610 | CURLOPT_FORBID_REUSE. The ones still left to write code for are: |
| 14611 | CURLOPT_CLOSEPOLICY and its related option CURLOPT_CLOSEFUNCTION. |
| 14612 | |
| 14613 | - Made curl (the actual command line tool) use the new libcurl 7.7 persistent |
| 14614 | connection support by re-using the same curl handle for every specified file |
| 14615 | transfer and after some more test case tweaking we have 100% test case OK. |
| 14616 | I made some test cases return HTTP/1.0 now to make sure that works as well. |
| 14617 | |
| 14618 | - Had to add 'Connection: close' to the headers of a bunch of test cases so |
| 14619 | that curl behaves "old-style" since the test http server doesn't do multiple |
| 14620 | connections... Now I get 100% test case OK. |
| 14621 | |
| 14622 | - The curl.haxx.se site, the main curl mailing list and my personal email are |
| 14623 | all dead today due to power blackout in the area where the main servers are |
| 14624 | located. Horrible. |
| 14625 | |
| 14626 | - I've made persistance work over a squid HTTP proxy. I find it disturbing |
| 14627 | that it uses headers that aren't present in any HTTP standard though |
| 14628 | (Proxy-Connection:) and that makes me feel that I'm now on the edge of what |
| 14629 | the standard actually defines. I need to get this code excercised on a lot |
| 14630 | of different HTTP proxies before I feel safe. |
| 14631 | |
| 14632 | Now I'm facing the problem with my test suite servers (both FTP and HTTP) |
| 14633 | not supporting persistent connections and libcurl is doing them now. I have |
| 14634 | to fix the test servers to get all the test cases do OK. |
| 14635 | |
| 14636 | Daniel (8 March 2001) |
| 14637 | - Guenole Bescon reported that libcurl did output errors to stderr even if |
| 14638 | MUTE and NOPROGRESS was set. It turned out to be a bug and happens if |
| 14639 | there's an error and no ERRORBUFFER is set. This is now corrected. |
| 14640 | |
| 14641 | Version 7.7-beta1 |
| 14642 | |
| 14643 | Daniel (8 March 2001) |
| 14644 | - "Transfer-Encoding: chunked" is no longer any trouble for libcurl. I've |
| 14645 | added two source files and I've run some test downloads that look fine. |
| 14646 | |
| 14647 | - HTTP HEAD works too, even on 1.1 servers. |
| 14648 | |
| 14649 | Daniel (5 March 2001) |
| 14650 | - The current 57 test cases now pass OK. It would suggest that libcurl works |
| 14651 | using the old-style with one connection per handle. The test suite doesn't |
| 14652 | handle multiple connections yet so there are no test cases for this. |
| 14653 | |
| 14654 | - I patched the telnet.c heavily to not use any global variables anymore. It |
| 14655 | should make it a lot nicer library-wise. |
| 14656 | |
| 14657 | - The file:// support was modified slightly to use the internal connect-first- |
| 14658 | then-do approach. |
| 14659 | |
| 14660 | Daniel (4 March 2001) |
| 14661 | - More bugs erased. |
| 14662 | |
| 14663 | Version 7.7-alpha2 |
| 14664 | |
| 14665 | Daniel (4 March 2001) |
| 14666 | - Now, there's even a basic check that a re-used connection is still alive |
| 14667 | before it is assumed so. A few first tests have proven that libcurl will |
| 14668 | then re-connect instead of re-use the dead connection! |
| 14669 | |
| 14670 | Daniel (2 March 2001) |
| 14671 | - Now they work intermixed as well. Major coolness! |
| 14672 | |
| 14673 | - More fiddling around, my 'tiny' client I have for testing purposes now has |
| 14674 | proved to download both FTP and HTTP with persistent connections. They do |
| 14675 | not work intermixed yet though. |
| 14676 | |
| 14677 | Daniel (1 March 2001) |
| 14678 | - Wilfredo Sanchez pointed out a minor spelling mistake in a man page and that |
| 14679 | curl_slist_append() should take a const char * as second argument. It does |
| 14680 | now. |
| 14681 | |
| 14682 | Daniel (22 February 2001) |
| 14683 | - The persistent connections start to look good for HTTP. On a subsequent |
| 14684 | request, it seems that libcurl now can pick an already existing connection |
| 14685 | if a suitable one exists, or it opens a new one. |
| 14686 | |
| 14687 | - Douglas R. Horner mailed me corrections to the curl_formparse() man page |
| 14688 | that I applied. |
| 14689 | |
| 14690 | Daniel (20 February 2001) |
| 14691 | - Added the docs/examples/win32sockets.c file for our windows friends. |
| 14692 | |
| 14693 | - Linus Nielsen Feltzing provided brand new TELNET functionality and |
| 14694 | improvements: |
| 14695 | |
| 14696 | * Negotiation is now passive. Curl does not negotiate until the peer does. |
| 14697 | * Possibility to set negotiation options on the command line, currently only |
| 14698 | XDISPLOC, TTYPE and NEW_ENVIRON (called NEW_ENV). |
| 14699 | * Now sends the USER environment variable if the -u switch is used. |
| 14700 | * Use -t to set telnet options (Linus even updated the man page, awesome!) |
| 14701 | |
| 14702 | - Haven't done this big changes to curl for a while. Moved around a lot of |
| 14703 | struct fields and stuff to make multiple connections get connection specific |
| 14704 | data in separate structs so that they can co-exist in a nice way. See the |
| 14705 | mailing lists for discussions around how this is gonna be implemented. Docs |
| 14706 | and more will follow. |
| 14707 | |
| 14708 | Studied the HTTP RFC to find out better how persistent connections should |
| 14709 | work. Seems cool enough. |
| 14710 | |
| 14711 | Daniel (19 February 2001) |
| 14712 | - Bob Schader brought me two files that help set up a MS VC++ libcurl project |
| 14713 | easier. He also provided me with an up-to-date libcurl.def file. |
| 14714 | |
| 14715 | - I moved a bunch of prototypes from the public <curl/curl.h> file to the |
| 14716 | library private urldata.h. This is because of the upcoming changes. The |
| 14717 | low level interface is no longer being planned to become reality. |
| 14718 | |
| 14719 | Daniel (15 February 2001) |
| 14720 | - CURLOPT_POST is not required anymore. Just setting the POST string with |
| 14721 | CURLOPT_POSTFIELDS will switch on the HTTP POST. Most other things in |
| 14722 | libcurl already works this way, i.e they require only the parameter to |
| 14723 | switch on a feature so I think this works well with the rest. Setting a NULL |
| 14724 | string switches off the POST again. |
| 14725 | |
| 14726 | - Excellent suggestions from Rich Gray, Rick Jones, Johan Nilsson and Bjorn |
| 14727 | Reese helped me define a way how to incorporate persistent connections into |
| 14728 | libcurl in a very smooth way. If done right, no change may have to be made |
| 14729 | to older programs and they will just start using persistent connections when |
| 14730 | applicable! |
| 14731 | |
| 14732 | Daniel (13 February 2001) |
| 14733 | - Changed the word 'timeouted' to 'timed out' in two different error messages. |
| 14734 | Suggested by Larry Fahnoe. |
| 14735 | |
| 14736 | Version 7.6.1 |
| 14737 | |
| 14738 | Daniel (9 February 2001) |
| 14739 | - Frank Reid and Cain Hopwood provided information and research around a HTTPS |
| 14740 | PUT/upload problem we seem to have. No solution found yet. |
| 14741 | |
| 14742 | Daniel (8 February 2001) |
| 14743 | - An interesting discussion is how to specify an empty password without having |
| 14744 | curl ask for it interactively? The current implmentation takes an empty |
| 14745 | password as a request for a password prompt. However, I still want to |
| 14746 | support a blank user field. Thus, today if you enter "-u :" (without user |
| 14747 | and password) curl will prompt for the password. Tricky. How would you |
| 14748 | specify you want the prompt otherwise? |
| 14749 | |
| 14750 | - Made the netrc parse result possible to use for other protocols than FTP and |
| 14751 | HTTP (such as the upcoming TELNET fixes). |
| 14752 | |
| 14753 | - The previously mentioned "MSVC++ problems" turned out to be a non-issue. |
| 14754 | |
| 14755 | - Added a HTTP file upload code example in the docs/examples/ section on |
| 14756 | request. |
| 14757 | |
| 14758 | - Adjusted the FTP response fix slightly. |
| 14759 | |
| 14760 | Version 7.6.1-pre3 |
| 14761 | |
| 14762 | Daniel (7 February 2001) |
| 14763 | - S. Moonesamy found a flaw in the response reading function for FTP that |
| 14764 | could make libcurl not get out of the loop properly when it should, if |
| 14765 | libcurl got -1 returned when reading the socket. |
| 14766 | |
| 14767 | - I found a similar mistake in http.c when using a proxy and reading the |
| 14768 | results from the proxy connection. |
| 14769 | |
| 14770 | Daniel (6 February 2001) |
| 14771 | - S. Moonesamy pointed out that the VC makefile in src/ needed the libpath set |
| 14772 | for the debug build to work. |
| 14773 | |
| 14774 | - Daniel Gehriger stepped in to assist with the VC++ stuff Robert Weaver |
| 14775 | brought up yesterday. |
| 14776 | |
| 14777 | Daniel (5 February 2001) |
| 14778 | - Jun-ichiro itojun Hagino brought a big patch that brings IPv6-awareness to |
| 14779 | a bunch of different areas within libcurl. |
| 14780 | |
| 14781 | - Robert Weaver told me about the problems the MS VC++ 6.0 compiler has with |
| 14782 | the 'static' keyword on a number of libcurl functions. I might need to add a |
| 14783 | patch that redefines static when libcurl is compiled with that compiler. |
| 14784 | How do I know when VC++ compiles, anyone? |
| 14785 | |
| 14786 | Daniel (4 February 2001) |
| 14787 | - curl_getinfo() was extended with two new options: |
| 14788 | CURLINFO_CONTENT_LENGTH_DOWNLOAD and CURLINFO_CONTENT_LENGTH_UPLOAD. They |
| 14789 | return the full assumed content length of the transfer in the given |
| 14790 | direction. The CURLINFO_CONTENT_LENGTH_DOWNLOAD will be the Content-Length: |
| 14791 | size of a HTTP download. Added descriptions to the man page as well. This |
| 14792 | was done after discussions with Bob Schader. |
| 14793 | |
| 14794 | Daniel (3 February 2001) |
| 14795 | - Ingo Ralf Blum provided another fix that makes curl build under the more |
| 14796 | recent cygwin installations. It seems they've changed the preset defines to |
| 14797 | not include WIN32 anymore. |
| 14798 | |
| 14799 | Version 7.6.1-pre2 |
| 14800 | |
| 14801 | Daniel (31 January 2001) |
| 14802 | - Curl_read() and curl_read() now return a ssize_t for the size, as it had to |
| 14803 | be able to return -1. The telnet support crashed due to this and there was a |
| 14804 | possibility to weird behavior all over. Linus Nielsen Feltzing helped me |
| 14805 | find this. |
| 14806 | |
| 14807 | - Added a configure.in check for a working getaddrinfo() if IPv6 is requested. |
| 14808 | I also made the configure script feature --enable-debug which sets a couple |
| 14809 | of compiler options when used. It assumes gcc. |
| 14810 | |
| 14811 | Daniel (30 January 2001) |
| 14812 | - I finally took a stab at the long-term FIXME item I've had on myself, and |
| 14813 | now libcurl will properly work when doing a HTTP range-request that follows |
| 14814 | a Location:. Previously that would make libcurl fail saying that the server |
| 14815 | doesn't seem to support range requests. |
| 14816 | |
| 14817 | Daniel (29 January 2001) |
| 14818 | - I added a test case for the HTTP PUT resume thing (test case 33). |
| 14819 | |
| 14820 | Version 7.6.1-pre1 |
| 14821 | |
| 14822 | Daniel (29 January 2001) |
| 14823 | - Yet another Content-Range change. Ok now? Bob Schader checks from his end |
| 14824 | and it works for him. |
| 14825 | |
| 14826 | Daniel (27 January 2001) |
| 14827 | - So the HTTP PUT resume fix wasn't good. There should appearantly be a |
| 14828 | Content-Range header when resuming a PUT. |
| 14829 | |
| 14830 | - I noticed I broke the download-check that verifies that a resumed HTTP |
| 14831 | download is actually resumed. It got broke because my new 'httpreq' field |
| 14832 | in the main curl struct. I should get slapped. I added a test case for |
| 14833 | this now, so I won't be able to ruin this again without noticing. |
| 14834 | |
| 14835 | - Added a test case for content-length verifying when downloading HTTP. |
| 14836 | |
| 14837 | - Made the progress meter title say if the transfer is being transfered. It |
| 14838 | makes the output slightly better for resumes. |
| 14839 | |
| 14840 | - When dealing with Location: and HTTP return codes, libcurl will not attempt |
| 14841 | to follow the spirit of RFC2616 better. It means that when POSTing to a |
| 14842 | URL that is being following to a second place, the standard will judge on |
| 14843 | what to do. All HTTP codes except 303 and 305 will cause curl to make a |
| 14844 | second POST operation. 303 will make a GET and 305 is not yet supported. |
| 14845 | |
| 14846 | I also wrote two test cases for this POST/GET/Location stuff. |
| 14847 | |
| 14848 | Version 7.6 |
| 14849 | |
| 14850 | Daniel (26 January 2001) |
| 14851 | - Lots of mails back and forth with Bob Schader finally made me add a small |
| 14852 | piece of code in the HTTP engine so that HTTP upload resume works. You can |
| 14853 | now do an operation like 'curl -T file -C <offset> <URL>' and curl will PUT |
| 14854 | the ending part of the file starting at given offet to the specified URL. |
| 14855 | |
| 14856 | Version 7.6-pre4 |
| 14857 | |
| 14858 | Daniel (25 January 2001) |
| 14859 | - I took hold of Rick Jones' question why we don't use recv() and send() for |
| 14860 | reading/writing to the sockets and I've now modified the sread() and |
| 14861 | swrite() macros to use them instead. If nothing else, they could be tested |
| 14862 | in the next beta-round coming right up. |
| 14863 | |
| 14864 | - Jeff Morrow found a problem with libcurl's usage of SSL_read() and supplied |
| 14865 | his research results in how to fix this. It turns out we have to invoke the |
| 14866 | function several times in some cases. The same goes for the SSL_write(). |
| 14867 | |
| 14868 | I made some rather drastic changes all over libcurl to make all writes and |
| 14869 | reads get done on one single place so that this repeated-attempts thing |
| 14870 | would only have to be implemented at one point. |
| 14871 | |
| 14872 | - Rick Jones spotted that the 'total time' counter really didn't measure the |
| 14873 | total time very accurate on subsecond levels. |
| 14874 | |
| 14875 | - Johan Nilsson pointed out the need to more clearly specify that the timeout |
| 14876 | value you set for a download is for the *entire* download. There's currently |
| 14877 | no option available that sets a timeout for the connection phase only. |
| 14878 | |
| 14879 | Daniel (24 January 2001) |
| 14880 | - Ingo Ralf Blum submitted a series of patches required to get curl to compile |
| 14881 | properly with cygwin. |
| 14882 | |
| 14883 | - Robert Weaver posted a fix for the win32 section of the curl_getenv() code |
| 14884 | that corrected a potential memory leak. |
| 14885 | |
| 14886 | - Added comments in a few files in a sudden attempt to make the sources more |
| 14887 | easy to read and understand! |
| 14888 | |
| 14889 | Daniel (23 January 2001) |
| 14890 | - Added simple IPv6 detection in the configure script and made the version |
| 14891 | string add 'ipv6' to the enable section in that case. ENABLE_IPV6 will be |
| 14892 | set if curl is compiled with IPv6 support enabled. |
| 14893 | |
| 14894 | - Added a parser for IPv6-style specified IP-addresses in a URL. Thus, when |
| 14895 | IPv6 gets enabled soon, we can use URLs like '[0::1]:80'... |
| 14896 | |
| 14897 | - Made the URL globbing in the client possible to fail silently if there's an |
| 14898 | error in the globbing. It makes it almost intuitive, so when you don't |
| 14899 | follow the syntax rules, globbing is simply switched off and the raw string |
| 14900 | is used instead. |
| 14901 | |
| 14902 | I still think we'll get problems with IPv6-style IP-addresses when we *want* |
| 14903 | globbing on parts of the URL as the initial part of the URL will for sure |
| 14904 | seriously confuse the globber. |
| 14905 | |
| 14906 | Daniel (22 January 2001) |
| 14907 | - Björn Stenberg supplied a progress meter patch that makes it look better even |
| 14908 | during slow starts. Previously it made some silly assumptions... |
| 14909 | |
| 14910 | - Added two FTP tests for -Q and -Q - stuff since it was being discussed on |
| 14911 | the mailing list. Had to correct the ftpserver.pl too as it bugged slightly. |
| 14912 | |
| 14913 | Daniel (19 January 2001) |
| 14914 | - Made the Location: parsers deal with any-length URLs. Thus I removed the last |
| 14915 | code that restricts the length of URLs that curl supports. |
| 14916 | |
| 14917 | - Added a --globoff test case (#28) and it quickly identified a memory problem |
| 14918 | in src/main.c that I took care of. |
| 14919 | |
| 14920 | Version 7.6-pre3 |
| 14921 | |
| 14922 | Daniel (17 January 2001) |
| 14923 | - Made the two former files lib/download.c and lib/highlevel.c become the new |
| 14924 | lib/transfer.c which makes more sense. I also did the rename from Transfer() |
| 14925 | to Curl_Transfer() in the other source files that use the transfer function |
| 14926 | in the spirit of using Curl_ prefix for library-scoped global symbols. |
| 14927 | |
| 14928 | Daniel (11 January 2001) |
| 14929 | - Added -g/--globoff that switches OFF the URL globbing and thus enables {}[] |
| 14930 | letters to be part of the URL. Do note that RFC2396 section 2.4.3 explicitly |
| 14931 | mention these letters to be escaped. This was posted as a feature request by |
| 14932 | Jorge Gutierrez and as a bug by Terry. |
| 14933 | |
| 14934 | - Short options to curl that requires parameters can now be specified without |
| 14935 | having the option and its parameter space separated. -ofile works as good as |
| 14936 | -o file. -m20 is equal to -m 20. Do note that this goes for single-letter |
| 14937 | options only, verbose --long-style options still must be separated with |
| 14938 | space from their parameters. |
| 14939 | |
| 14940 | Daniel (8 January 2001) |
| 14941 | - Francis Dagenais reported that the SCO compiler still fails when compiling |
| 14942 | curl due to that getpass_r() prototype. I've now put it around #ifndef |
| 14943 | HAVE_GETPASS_R in an attempt to please the SCO systems. |
| 14944 | |
| 14945 | - Made some minor corrections to get the client to cleanup properly and I made |
| 14946 | the separator work again when getting multiple globbed URLs to stdout. |
| 14947 | |
| 14948 | - Worked with Loic Dachary to get the make dist and make distcheck work |
| 14949 | correctly. The 'maketgz' script is now using the automake generated 'make |
| 14950 | dist' when creating release archives. Loic successfully made 'make rpms' |
| 14951 | automatically build RPMs! |
| 14952 | |
| 14953 | Loic Dachary (6 January 2001) |
| 14954 | - Automated generation of rpm packages, no need to be root. |
| 14955 | |
| 14956 | - make distcheck generates a proper distribution (EXTRA_DIST |
| 14957 | in all Makefile.am modified to match FILES). |
| 14958 | |
| 14959 | Daniel (5 January 2001) |
| 14960 | - Huge client-side hack: now multiple URLs are supported. Any number of URLs |
| 14961 | can be specified on the command line, and they'll all be downloaded. There |
| 14962 | must be a corresponding -o or -O for each URL or the data will be written to |
| 14963 | stdout. This needs more testing, time to release a 7.6-pre package. |
| 14964 | |
| 14965 | - The krb4 support was broken in the release. Fixed now. |
| 14966 | |
| 14967 | - Huge internal symbol rename operation. All non-static but still lib-internal |
| 14968 | symbols should now be prefixed with 'Curl_' to prevent collisions with other |
| 14969 | libs. All public symbols should be prefixed with 'curl_' and the rest should |
| 14970 | be static and thus invisible to the outside world. I updated the INTERNALS |
| 14971 | document to say this as well. |
| 14972 | |
| 14973 | Version 7.5.2 |
| 14974 | |
| 14975 | Daniel (4 January 2001) |
| 14976 | - As Kevin P Roth suggested, I've added text to the man page for every command |
| 14977 | line option and what happens when you specify that option more than |
| 14978 | once. That hasn't been exactly crystal clear before. |
| 14979 | |
| 14980 | - Made the configure script possible to run from outside the source-tree. For |
| 14981 | odd reasons I can't build curl properly outside though. It has to do with |
| 14982 | curl's dependencies on libcurl... |
| 14983 | |
| 14984 | - Cut off all older (dated 1999 and earlier) CHANGES entries from this file. |
| 14985 | The older piece is named CHANGES.0 and is added to the CVS repository in |
| 14986 | case anyone would need it. |
| 14987 | |
| 14988 | - I added another file 'CVS-INFO' to the CVS. It contains information about |
| 14989 | files in the CVS that aren't included in release archives and how to build |
| 14990 | curl when you get the sources off CVS. |
| 14991 | |
| 14992 | - Updated CONTRIBUTE and FAQ due to the new license. |
| 14993 | |
| 14994 | Daniel (3 January 2001) |
| 14995 | - Renamed README.libcurl to LIBCURL |
| 14996 | |
| 14997 | - Changed headers in all sources files to the new dual license concept of |
| 14998 | curl: use the MIT/X derivate license *or* MPL. The LEGAL file was updated |
| 14999 | accordingly and the MPL 1.1 and MIT/X derivate licenses are now part of the |
| 15000 | release archive. |
| 15001 | Daniel (30 December 2000) |
| 15002 | - Made all FTP commands get sent with the trailing CRLF in one single write() |
| 15003 | as splitting them up seems to confuse at least some firewalls (FW-1 being |
| 15004 | one major). |
| 15005 | |
| 15006 | Daniel (19 December 2000) |
| 15007 | - Added file desrciptor and FILE handle leak detection to the memdebug system |
| 15008 | and thus I found and removed a file descriptor leakage in the ftp parts |
| 15009 | that happened when you did PORTed downloads. |
| 15010 | |
| 15011 | - Added an include <stdio.h> in <curl/curl.h> since it uses FILE *. |
| 15012 | |
| 15013 | Daniel (12 December 2000) |
| 15014 | - Multiple URL downloads with -O was still bugging. Not anymore I think or |
| 15015 | hope, or at least I've tried... :-O |
| 15016 | |
| 15017 | - Francois Petitjean fixed another -O problem |
| 15018 | |
| 15019 | Version 7.5.1 |
| 15020 | |
| 15021 | Daniel (11 December 2000) |
| 15022 | - Cleaned up a few of the makefiles to use unix-style newlines only. As Kevin |
| 15023 | P Roth found out, at least one CVS client behaved wrongly when it found |
| 15024 | different newline conventions within the same file. |
| 15025 | |
| 15026 | - Albert Chin-A-Young corrected the LDFLAGS use in the configure script for |
| 15027 | the SSL stuff. |
| 15028 | |
| 15029 | Daniel (6 December 2000) |
| 15030 | - Massimo Squillace correctly described how libcurl could use session ids when |
| 15031 | doing SSL connections. |
| 15032 | |
| 15033 | - James Griffiths found out that curl would crash if the file you specify with |
| 15034 | -o is shorter than the URL! This took some hours to fully hunt down, but it |
| 15035 | is fixed now. |
| 15036 | |
| 15037 | Daniel (5 December 2000) |
| 15038 | - Jaepil Kim sent us makefiles that build curl using the free windows borland |
| 15039 | compiler. The root makefile now accepts 'make borland' to build curl with |
| 15040 | that compiler. |
| 15041 | |
| 15042 | - Stefan Radman pointed out that the test makefiles didn't use the PERL |
| 15043 | variable that the configure scripts figure out. Actually, you still need |
| 15044 | perl in the path for the test suite to run ok. |
| 15045 | |
| 15046 | - Rich Gray found numerous portability problems: |
| 15047 | * The SCO compiler got an error on the getpass_r() prototype in getpass.h |
| 15048 | since the curl one differed from the SCO one |
| 15049 | * The HPUX compiler got an error because of how curl did the sigaction |
| 15050 | stuff and used a define HPUX doesn't have (or need). |
| 15051 | * A few more problems remain to be researched. |
| 15052 | |
| 15053 | - Paul Harrington experienced a core dump using https. Not much details yet. |
| 15054 | |
| 15055 | Daniel (4 December 2000) |
| 15056 | - Jörn Hartroth fixed a problem with multiple URLs and -o/-O. |
| 15057 | |
| 15058 | Version 7.5 |
| 15059 | |
| 15060 | Daniel (1 December 2000) |
| 15061 | - Craig Davison gave us his updates on the VC++ makefiles, so now curl should |
| 15062 | build fine with the Microsoft compiler on windows too. |
| 15063 | |
| 15064 | - Fixed the libcurl versioning so that we don't ruin old programs when |
| 15065 | releasing new shared library interfaces. |
| 15066 | |
| 15067 | Daniel (30 November 2000) |
| 15068 | - Renamed docs/README.curl to docs/MANUAL to better reflect what the document |
| 15069 | actually contains. |
| 15070 | |
| 15071 | Daniel (29 November 2000) |
| 15072 | - I removed a bunch of '#if 0' sections from the code. They only make things |
| 15073 | harder to follow. After all, we do have all older versions in the CVS. |
| 15074 | |
| 15075 | Version 7.5-pre5 |
| 15076 | |
| 15077 | Daniel (28 November 2000) |
| 15078 | - I filled in more error codes in the man page error code list that had been |
| 15079 | lagging. |
| 15080 | |
| 15081 | - James Griffiths mailed me a fine patch that introduces the CURLOPT_MAXREDIRS |
| 15082 | libcurl option. When used, it'll prevent location following more than the |
| 15083 | set number of times. It is useful to break out of endless redirect-loops. |
| 15084 | |
| 15085 | Daniel (27 November 2000) |
| 15086 | - Added two test cases for file://. |
| 15087 | |
| 15088 | Daniel (22 November 2000) |
| 15089 | - Added the libcurl CURLOPT_FILETIME setopt, when set it tries to get the |
| 15090 | modified time of the remote document. This is a special option since it |
| 15091 | involves an extra set of commands on FTP servers. (Using the MDTM command |
| 15092 | which is not in the RFC959) |
| 15093 | |
| 15094 | curl_easy_getinfo() got a corresponding CURLINFO_FILETIME to get the time |
| 15095 | after a transfer. It'll return a zero if CURLOPT_FILETIME wasn't used or if |
| 15096 | the time wasn't possible to get. |
| 15097 | |
| 15098 | --head/-I used on a FTP server will now present a 'Last-Modified:' header |
| 15099 | if curl could get the time of the specified file. |
| 15100 | |
| 15101 | - Added the option '--cacert [file]' to curl, which allows a specified PEM |
| 15102 | file to be used to verify the peer's certificate when doing HTTPS |
| 15103 | connections. This has been requested, rather recently by Hulka Bohuslav but |
| 15104 | others have asked for it before as well. |
| 15105 | |
| 15106 | Daniel (21 November 2000) |
| 15107 | - Numerous fixes the test suite has brought into the daylight: |
| 15108 | |
| 15109 | * curl_unescape() could return a too long string |
| 15110 | * on ftp transfer failures, there could be memory leaks |
| 15111 | * ftp CWD could use bad directory names |
| 15112 | * memdebug now uses the mprintf() routines for better portability |
| 15113 | * free(NULL) removed when doing resumed transfers |
| 15114 | |
| 15115 | - Added a bunch of test cases for FTP. |
| 15116 | |
| 15117 | - General cleanups to make less warnings with gcc -Wall -pedantic. |
| 15118 | |
| 15119 | - I made the tests/ftpserver.pl work with the most commonly used ftp |
| 15120 | operations. PORT, PASV, RETR, STOR, LIST, SIZE, USER, PASS all work now. Now |
| 15121 | all I have to do is integrate the ftp server doings in the runtests.pl |
| 15122 | script so that ftp tests can be run the same way http tests already run. |
| 15123 | |
| 15124 | Daniel (20 November 2000) |
| 15125 | - Made libcurl capable of dealing with any-length URLs. The former limit of |
| 15126 | 4096 bytes was a bit annoying when people wanted to use curl to really make |
| 15127 | life tough on a web server. Now, the command line limit is the most annoying |
| 15128 | but that can be circumvented by using a config file. |
| 15129 | |
| 15130 | NOTE: there is still a 4096-byte limit on URLs extracted from Location: |
| 15131 | headers. |
| 15132 | |
| 15133 | - Corrected the spelling of 'resolve' in two error messages. |
| 15134 | |
| 15135 | - Alexander Kourakos posted a bug report and a patch that corrected it! It |
| 15136 | turned out that lynx and wget support lowercase environment variable names |
| 15137 | where curl only looked for the uppercase versions. Now curl will use the |
| 15138 | lowercase versions if they exist, but if they don't, it'll use the uppercase |
| 15139 | versions. |
| 15140 | |
| 15141 | Daniel (17 November 2000) |
| 15142 | - curl_formfree() was added. How come no one missed that one before? I ran the |
| 15143 | test suite with the malloc debug enabled and got lots of "nice" warnings on |
| 15144 | memory leaks. The most serious one was this. There were also leaks in the |
| 15145 | cookie handling, and a few errors when curl failed to connect and similar |
| 15146 | things. More tests cases were added to cover up and to verify that these |
| 15147 | problems have been removed. |
| 15148 | |
| 15149 | - Mucho updated config file parser (I'm dead tired of all the bug reports and |
| 15150 | weird behaviour I get on the former one). It works slightly differently now, |
| 15151 | although I doubt many people will notice the differences. The main |
| 15152 | difference being that if you use options that require parameters, they must |
| 15153 | both be specified on the same line. With this new parser, you can also |
| 15154 | specify long options without '--' and you may separate options and |
| 15155 | parameters with : or =. It makes a config file line could look like: |
| 15156 | |
| 15157 | user-agent = "foobar and something" |
| 15158 | |
| 15159 | Parameters within quotes may contain spaces. Without quotes, they're |
| 15160 | expected to be a single non-space word. |
| 15161 | |
| 15162 | Had to patch the command line argument parser a little to make this work. |
| 15163 | |
| 15164 | - Added --url as an option to allow the URL to be specified this way. It makes |
| 15165 | way nicer config files. The previous way of specifying URLs in the config |
| 15166 | file doesn't work anymore. |
| 15167 | |
| 15168 | Daniel (15 November 2000) |
| 15169 | - Using certain characters in usernames or passwords for HTTP authentication |
| 15170 | failed. This was due to the mprintf() that had a silly check for letters, |
| 15171 | and if they weren't isprint() they weren't outputed "as-is". This caused |
| 15172 | passwords and usernames using '§' (for example) to fail. |
| 15173 | |
| 15174 | Version 7.4.2 |
| 15175 | |
| 15176 | Daniel (15 November 2000) |
| 15177 | - 'tests/runtests.pl' now sorts the test cases properly when 'all' is used. |
| 15178 | |
| 15179 | Daniel (14 November 2000) |
| 15180 | - I fell over the draft-ietf-ftpext-mlst-12.txt Internet Draft titled |
| 15181 | "Extensions to FTP" that contains a defined way how the ftp command SIZE |
| 15182 | could be assumed to work. |
| 15183 | |
| 15184 | - Laurent Papier posted a bug report about using "-C -" and FTP uploading a |
| 15185 | file that isn't prsent on the server. The server might then return a 550 and |
| 15186 | curl will fail. Should it instead as Laurent Papier suggests, start |
| 15187 | uploading from the beginning as a normal upload? |
| 15188 | |
| 15189 | Daniel (13 November 2000) |
| 15190 | - Fixed a crash with the followlocation counter. |
| 15191 | |
| 15192 | - While writing test cases for the test suite, I discovered an old limitation |
| 15193 | that prevented -o and -T to be used at the same time. I removed this |
| 15194 | immediately as this has no relevance in the current libcurl. |
| 15195 | |
| 15196 | - Chris Faherty fixed a free-twice problem in lib/file.c |
| 15197 | |
| 15198 | - I fixed the perl http server problem in the test suite. |
| 15199 | |
| 15200 | Version 7.4.2 pre4 |
| 15201 | |
| 15202 | Daniel (10 November 2000) |
| 15203 | - I've (finally) started working on the curl test suite. It is in the new |
| 15204 | tests/ directory. It requires sh and perl. There's a TCP server in perl and |
| 15205 | most of the other stuff running a pretty simple shell script. |
| 15206 | |
| 15207 | I've only made four test cases so far, but it proves the system can work. |
| 15208 | |
| 15209 | - Laurent Papier noticed that curl didn't set TYPE when doing --head checks |
| 15210 | for sizes on FTP servers. Some servers seem to return different sizes |
| 15211 | depending on whether ASCII or BINARY is used! |
| 15212 | |
| 15213 | - Laurent Papier detected that if you appended a FTP upload and everything was |
| 15214 | already uploaded, curl would hang. |
| 15215 | |
| 15216 | - Angus Mackay's getpass_r() in lib/getpass.c is now compliant with the |
| 15217 | getpass_r() function it seems some systems actually have. |
| 15218 | |
| 15219 | - Venkataramana Mokkapati detected a bug in the cookie parser and corrected |
| 15220 | it. If the cookie was set for the full host name (domain=full.host.com), |
| 15221 | the cookie was never sent back because of a faulty length comparison between |
| 15222 | the set domain length and the current host name. |
| 15223 | |
| 15224 | Daniel (9 November 2000) |
| 15225 | - Added a configure check for gethostbyname in -lsocket (OS/2 seems to need |
| 15226 | it). Added a check for RSAglue/rsaref for the cases where libcrypto is found |
| 15227 | but libssl isn't. I haven't verified this fix yet though, as I have no |
| 15228 | system that requires those libs to build. |
| 15229 | |
| 15230 | Version 7.4.2 pre3 |
| 15231 | |
| 15232 | Daniel (7 November 2000) |
| 15233 | - Removed perror() outputs from getpass.c. Angus Mackay also agreed to a |
| 15234 | slightly modified license of the getpass.c file as the prototype was changed. |
| 15235 | |
| 15236 | Daniel (6 November 2000) |
| 15237 | - Added possibility to set a password callback to use instead of the built-in. |
| 15238 | They're controled with curl_easy_setopt() of course, the tags are |
| 15239 | CURLOPT_PASSWDFUNCTION and CURLOPT_PASSWDDATA. |
| 15240 | |
| 15241 | - Used T. Bharath's thinking and fixed the timers that showed terribly wrong |
| 15242 | times when location: headers were followed. |
| 15243 | |
| 15244 | - Emmanuel Tychon discovered that curl didn't really like user names only in |
| 15245 | the URL. I corrected this and I also fixed the since long living problem |
| 15246 | with URL encoded user names and passwords in the URLs. They should work now. |
| 15247 | |
| 15248 | Daniel (2 November 2000) |
| 15249 | - When I added --interface, the new error code that was added with it was |
| 15250 | inserted in the wrong place and thus all error codes from 35 and upwards got |
| 15251 | increased one step. This is now corrected, we're back at the previous |
| 15252 | numbers. All new exit codes should be added at the end. |
| 15253 | |
| 15254 | Daniel (1 November 2000) |
| 15255 | - Added a check for signal() in the configure script so that if sigaction() |
| 15256 | isn't present, we can use signal() instead. |
| 15257 | |
| 15258 | - I'm having a license discussion going on privately. The issue is yet again |
| 15259 | GPL-licensed programs that have problems with MPL. I am leaning towards |
| 15260 | making a kind of dual-license that will solve this once and for all... |
| 15261 | |
| 15262 | Daniel (31 October 2000) |
| 15263 | - Added the packages/ directory. I intend to let this contain some docs and |
| 15264 | templates on how to generate custom-format packages for various platforms. |
| 15265 | I've now removed the RPM related curl.spec files from the archive root. |
| 15266 | |
| 15267 | Daniel (30 October 2000) |
| 15268 | - T. Bharath brought a set of patches that bring new functionality to |
| 15269 | curl_easy_getinfo() and curl_easy_setopt(). Now you can request peer |
| 15270 | certificate verification with the *setopt() CURLOPT_SSL_VERIFYPEER option |
| 15271 | and then use the CURLOPT_CAINFO to set the certificate to verify the remote |
| 15272 | peer against. After an such an operation with a verification request, the |
| 15273 | *_getinfo() option CURLINFO_SSL_VERIFYRESULT will return information about |
| 15274 | whether the verification succeeded or not. |
| 15275 | |
| 15276 | Daniel (27 October 2000) |
| 15277 | - Georg Horn brought us a splendid patch that solves the long-standing |
| 15278 | annoying problem with timeouts that made curl exit with silly exit codes |
| 15279 | (which as been commented out lately). This solution is sigaction() based and |
| 15280 | of course then only works for unixes (and only those unixes that actually |
| 15281 | have the sigaction() function). |
| 15282 | |
| 15283 | Daniel (26 October 2000) |
| 15284 | - Björn Stenberg supplied a patch that fixed the flaw mentioned by Kevin Roth |
| 15285 | that made the password get echoed when prompted for interactively. The |
| 15286 | getpass() function (now known as my_getpass()) was also fixed to not use any |
| 15287 | static buffers. This also means we cannot use the "standard" getpass() |
| 15288 | function even for those systems that have it, since it isn't thread-safe. |
| 15289 | |
| 15290 | - Kevin Roth found out that if you'd write a config file with '-v url', the |
| 15291 | url would not be used as "default URL" as documented, although if you wrote |
| 15292 | it 'url -v' it worked! This has been corrected now. |
| 15293 | |
| 15294 | - Kevin Roth's idea of using multiple -d options on the same command line was |
| 15295 | just brilliant, and I couldn't really think of any reason why we shouldn't |
| 15296 | support it! The append function always append '&' and then the new -d |
| 15297 | chunk. This enables constructs like the following: |
| 15298 | |
| 15299 | curl -d name=daniel -d age=unknown foobarsite.com |
| 15300 | |
| 15301 | Daniel (24 October 2000) |
| 15302 | - I fixed the lib/memdebug.c source so that it compiles on Linux and other |
| 15303 | systems. It will be useful one day when someone else but me wants to run the |
| 15304 | memory debugging system. |
| 15305 | |
| 15306 | Daniel (23 October 2000) |
| 15307 | - I modified the maketgz and configure scripts, so that the configure script |
| 15308 | will fetch the version number from the include/curl/curl.h header files, and |
| 15309 | then the maketgz doesn't have to rebuild the configure script when I build |
| 15310 | release-archives. |
| 15311 | |
| 15312 | - Björn Stenberg and Linus Nielsen correctly pointed out that curl was silly |
| 15313 | enough to not allow @-letters in passwords when they were specified with the |
| 15314 | -u or -U flags (CURLOPT_USERPWD and CURLOPT_PROXYUSERPWD). This also |
| 15315 | suggests that curl probably should url-decode the password piece of an URL |
| 15316 | so that you could pass an encoded @-letter there... |
| 15317 | |
| 15318 | Daniel (20 October 2000) |
| 15319 | - Yet another http server barfed on curl's request that include the port |
| 15320 | number in the Host: header always. I now only include the port number if it |
| 15321 | isn't the default (80 for HTTP, 443 for HTTPS). www.perl.com turned out to |
| 15322 | run one of those nasty servers. |
| 15323 | |
| 15324 | - The PHP4 module for curl had problems with referer that seems to have been |
| 15325 | corrected just yesterday. (Sterling Hughes of the PHP team confirmed this) |
| 15326 | |
| 15327 | Daniel (17 October 2000) |
| 15328 | - Vladimir Oblomov reported that the -Y and -y options didn't work. They |
| 15329 | didn't work for me either. This once again proves we should have that test |
| 15330 | suite... |
| 15331 | |
| 15332 | - I finally changed the error message libcurl returns if you try a https:// |
| 15333 | URL when the library wasn't build with SSL enabled. It will now return this |
| 15334 | error: |
| 15335 | "libcurl was built with SSL disabled, https: not supported!" |
| 15336 | |
| 15337 | I really hope it will make it a bit clearer to users where the actual |
| 15338 | problem lies. |
| 15339 | |
| 15340 | Version 7.4.1 |
| 15341 | |
| 15342 | Daniel (16 October 2000) |
| 15343 | - I forgot to remove some of the malloc debug defines from the makefiles in |
| 15344 | the release archive (of course). |
| 15345 | |
| 15346 | Version 7.4 |
| 15347 | |
| 15348 | Daniel (16 October 2000) |
| 15349 | - The buffer overflow mentioned below was posted to bugtraq on Friday 13th. |
| 15350 | |
| 15351 | Daniel (12 October 2000) |
| 15352 | - Colin Robert Phipps elegantly corrected a buffer overflow. It could be used |
| 15353 | by an evil ftp server to crash curl. I took the opportunity of replacing a |
| 15354 | few other sprintf()s into snprintf()s as well. |
| 15355 | |
| 15356 | Daniel (11 October 2000) |
| 15357 | - Found some more memory leaks. This new simple memory debugger has turned out |
| 15358 | really useful! |
| 15359 | |
| 15360 | Version 7.4 pre6 |
| 15361 | |
| 15362 | Daniel (9 October 2000) |
| 15363 | - Florian Koenig pointed out that the bool typedef in the curl/curl.h include |
| 15364 | file was breaking PHP 4.0.3 compiling. The bool typedef is not used in the |
| 15365 | public interface and was wrongly inserted in that header file. |
| 15366 | |
| 15367 | - Jörg Hartroth corrected a minor memory leak in the src/urlglob.c stuff. It |
| 15368 | didn't harm anyone since the memory is free()ed on exit anyway. |
| 15369 | |
| 15370 | - Corrected the src/main.c. We use the _MPRINTF_REPLACE #define to use our |
| 15371 | libcurl-printf() functions. This gives us snprintf() et al on all |
| 15372 | platforms. I converted the allocated useragent string to one that uses a |
| 15373 | local buffer. |
| 15374 | |
| 15375 | - I've set an #if 0 section around the Content-Transfer-Encoding header |
| 15376 | generated in lib/formdata.c. This will hopefully make curl do more |
| 15377 | PHP-friendly multi-part posts. |
| 15378 | |
| 15379 | Version 7.4 pre5 |
| 15380 | |
| 15381 | Daniel (9 October 2000) |
| 15382 | - Nico Baggus found out that curl's ability to force a ASCII download when |
| 15383 | using FTP was no longer working! I corrected this. This problem was probably |
| 15384 | introduced when I redesigned libcurl for version 7. |
| 15385 | |
| 15386 | - Georg Horn provided a source example that proved a memory leak in libcurl. |
| 15387 | I added simple memory debugging facilities and now we can make libcurl log |
| 15388 | all memory fiddling functions. An additional perl script is used to analyze |
| 15389 | the output logfile and to match malloc()s with free()s etc. The memory leak |
| 15390 | Georg found turned out to be the main cookie struct that cookie_cleanup() |
| 15391 | didn't free! The perl script is named memanalyze.pl and it is available in |
| 15392 | the CVS respository, not in the release archive. |
| 15393 | |
| 15394 | Daniel (8 October 2000) |
| 15395 | - Georg Horn found a GetHost() problem. It turned out it never assigned the |
| 15396 | pointer in the third argument properly! This could make a crash, or at best |
| 15397 | a memory leak! |
| 15398 | |
| 15399 | Version 7.4 pre4 |
| 15400 | |
| 15401 | Daniel (6 October 2000) |
| 15402 | - Is the -F post following the RFC 1867 spec? We had this dicussion on the |
| 15403 | mailing list since it appears curl can't post -F form posts to a PHP |
| 15404 | receiver... I've been in touch with the PHP developers about this. |
| 15405 | |
| 15406 | - Domenico Andreoli found out that the long option '--proxy' wasn't working |
| 15407 | anymore! The option parser got confused when I added the --proxytunnel for |
| 15408 | 7.3. This was indeed a very old flaw that hasn't turned up until now... |
| 15409 | |
| 15410 | - Jörn Hartroth provided patches, updated makefiles and two new files for DLL |
| 15411 | stuff on win32. He also pointed out that lib source files were compiled with |
| 15412 | -I../src which isn't only wrong but plain stupid! |
| 15413 | |
| 15414 | - Troels Walsted Hansen fixed a problem with HTTP resume. Curl previously used |
| 15415 | a local variable badly, that could lead to crashes. |
| 15416 | |
| 15417 | Version 7.4 pre3 |
| 15418 | |
| 15419 | Daniel (4 October 2000) |
| 15420 | - More docs written. The curl_easy_getinfo.3 man page is now pretty accurate, |
| 15421 | as is the -w section in curl.1. I added two options to enable the user to |
| 15422 | get information about the received headers' size and the size of the HTTP |
| 15423 | request. T. Bharath requested them. |
| 15424 | |
| 15425 | Daniel (3 October 2000) |
| 15426 | - Corrected a sever free() before use in the new add_buffer_send()! ;-) |
| 15427 | |
| 15428 | Version 7.4 pre2 |
| 15429 | |
| 15430 | Daniel (3 October 2000) |
| 15431 | - Jason S. Priebe sent me patches that changed the way curl issues HTTP |
| 15432 | requests. The entire request is now issued in one single shot. It didn't do |
| 15433 | this previously, and it has turned out that since the common browsers do it |
| 15434 | this way, some sites have turned out to work with browsers but not with |
| 15435 | curl! Although this is not a client-side problem, we want to be able to |
| 15436 | fully emulate browsers, and thus we have now adjusted the networking layer |
| 15437 | to slightly more appear as a browser. I adjusted Jason's patch, the faults |
| 15438 | are probably mine. |
| 15439 | |
| 15440 | Daniel (2 October 2000) |
| 15441 | - Anyone who ever uploaded data with curl on a slow link has noticed that the |
| 15442 | progess meter is updated very infrequently. That is due to the large buffer |
| 15443 | size curl is using. It reads 50Kb and sends it, updates the progress meter |
| 15444 | and loops. 50Kb is very much on a slow link, although it is pretty neat to |
| 15445 | use on a fast one. |
| 15446 | |
| 15447 | I've now made an adjustment that makes curl use a 2Kb buffer for uploads to |
| 15448 | start with. If curl's average upload speed is faster than buffer size bytes |
| 15449 | per second, curl will increase the used buffer size up to max 50Kb. It |
| 15450 | should make the progress meter work better. |
| 15451 | |
| 15452 | Version 7.4 pre1 |
| 15453 | |
| 15454 | Daniel (29 September 2000) |
| 15455 | - Ripped out the -w stuff from the library and put in the curl tool. It gets |
| 15456 | all the relevant info from the library using the new curl_easy_getinfo() |
| 15457 | function. |
| 15458 | |
| 15459 | - brad at openbsd.org mailed me a patch that corrected my kerberos mistake and |
| 15460 | removed a compiler warning from hostip.c that OpenBSD people get. |
| 15461 | |
| 15462 | Daniel (28 September 2000) |
| 15463 | - Of course (I should probably get punished somehow) I didn't properly correct |
| 15464 | the #include lines for the base64 stuff in the kerberos sources in the just |
| 15465 | released 7.3 package. They still include the *_krb.h files! Now, the error |
| 15466 | is sooo very easy to spot and fix so I won't bother with a quick bug fix |
| 15467 | release. I'll post a patch whenever one is needed instead. It'll be |
| 15468 | available in the CVS in a few minutes anyway. |
| 15469 | |
| 15470 | Version 7.3 |
| 15471 | |
| 15472 | Daniel (28 September 2000) |
| 15473 | - Removed the base64_krb.[ch] files. They've now replaced the former |
| 15474 | base64.[ch] files. |
| 15475 | |
| 15476 | Daniel (26 September 2000) |
| 15477 | - Updated some docs. |
| 15478 | |
| 15479 | - I changed the OpenSSL fix to work with older versions as well. The posted |
| 15480 | patch was only working with 0.9.6 and no older ones. |
| 15481 | |
| 15482 | Version 7.3-pre8 |
| 15483 | |
| 15484 | Daniel (25 September 2000) |
| 15485 | - Erdmut Pfeifer informed us that curl didn't build with OpenSSL 0.9.6 and |
| 15486 | showed us what needed to get patched in order to make it build properly |
| 15487 | again. |
| 15488 | |
| 15489 | - Dirk Kruschewski found a bug in the cookie parser. I made an alternative |
| 15490 | approach to the solution Dirk himself suggested. The bug made a cookie |
| 15491 | header that didn't end with a trailing semicolon to not get parsed. |
| 15492 | |
| 15493 | - I've marked -c and -t deprecated now. If you use any of them, curl will tell |
| 15494 | you to use "-C -" or "-T -" instead. I don't think occupying two letters for |
| 15495 | nearly identical functions is good use. Also, -T - kind of follows the curl |
| 15496 | tradition of using - for stdin where a file name is expected. |
| 15497 | |
| 15498 | Daniel (23 September 2000) |
| 15499 | - Martin Hedenfalk provided the patch that finally made the krb4 ftp upload |
| 15500 | work! |
| 15501 | |
| 15502 | Daniel (21 September 2000) |
| 15503 | - The kerberos code is not quite thread-safe yet. There are a few more globals |
| 15504 | that need to be take care of. Let's get the upload working first! |
| 15505 | |
| 15506 | Daniel (20 September 2000) |
| 15507 | - Richard Prescott solved another name lookup buffer size problem. I took this |
| 15508 | opportunity to rewrite the GetHost() function. With these large buffer |
| 15509 | sizes, I think keeping them as local arrays quickly turn ugly. I now use |
| 15510 | malloc() to get the buffer memory. Thanks to this, I now can realloc() to a |
| 15511 | large buffer in case of demand (errno == ERANGE) in case a solution like |
| 15512 | that would become necessary. I still want to avoid that kind of nastiness. |
| 15513 | |
| 15514 | - Tried to compile and run curl on Linux for alpha and FreeBSD for alpha. Went |
| 15515 | as smooth as it could. |
| 15516 | |
| 15517 | - Added a docs/examples directory with two tiny example sources that show how |
| 15518 | to use libcurl. I hope users will supply me with more useful examples |
| 15519 | further on. |
| 15520 | |
| 15521 | - Applied a patch by Jörn Hartroth to no longer use the word 'inteface' in the |
| 15522 | config struct in the src/main.c file since certain compilers have that word |
| 15523 | "reservered". I figure that is some kind of C++ decease. |
| 15524 | |
| 15525 | - Updated the curl.1 man page with --interface and --krb4. |
| 15526 | |
| 15527 | - Modified the base64Encode() function to work like the kerberos one, so that |
| 15528 | I could remove the use of that. There is no need for *two* base64 encoding |
| 15529 | functions! ;-) |
| 15530 | |
| 15531 | Version 7.3pre5 |
| 15532 | |
| 15533 | Daniel (19 September 2000) |
| 15534 | - The kerberos4-layer source code that is much "influenced" by the original |
| 15535 | krb4 source code, through yafc into curl, was using quite a lot of global |
| 15536 | variables. libcurl can't work properly with globals like that why I had to |
| 15537 | clean up almost every function in the new security.c to make them use |
| 15538 | connection specific variables instead of the globals. I just hope I didn't |
| 15539 | destroy anything now... :-) configure updated, version string now reflects |
| 15540 | krb4 built-in. It almost works now. Only uploads are still being naughty. |
| 15541 | |
| 15542 | Version 7.3pre3 |
| 15543 | |
| 15544 | Daniel (18 September 2000) |
| 15545 | - Martin Hedenfalk supplied a major patch that introduces krb4-ftp support to |
| 15546 | curl. Martin is the primary author of the ftp client named yafc and he did |
| 15547 | not hesitate to help us implement this when I asked him. Many and sincere |
| 15548 | thanks to a splendid effort. It didn't even take many hours! |
| 15549 | |
| 15550 | - Stephen Kick supplied a big patch that introduces the --interface flag to |
| 15551 | the curl tool and CURLOPT_INTERFACE for libcurl. It allows you to specify an |
| 15552 | outgoing interface to use for your request. This may not work on all |
| 15553 | platforms. This needs testing. |
| 15554 | |
| 15555 | - Richard Prescott noticed that curl on Tru64 unix could core dumped if the |
| 15556 | name didn't resolve properly. This was due to the GetHost() function not |
| 15557 | returning an error even though it failed on some platforms! |
| 15558 | |
| 15559 | Daniel (15 September 2000) |
| 15560 | - Updated all sorts of documents in regards to the new proxytunnel support. |
| 15561 | |
| 15562 | Version 7.3pre2 |
| 15563 | |
| 15564 | Daniel (15 September 2000) |
| 15565 | - Kai-Uwe Rommel pointed out a problem in the httpproxytunnel stuff for ftp. |
| 15566 | Adjusted it. Added better info message when setting up the tunnel and the |
| 15567 | pasv message when doing the second connect. |
| 15568 | |
| 15569 | Version 7.3pre1 |
| 15570 | |
| 15571 | Daniel (15 September 2000) |
| 15572 | - libcurl now allows "httpproxytunnel" to an arbitrary host and port name. The |
| 15573 | second connection on ftp needed that. |
| 15574 | |
| 15575 | - TheArtOfHTTPScripting was corrected all over. I both type and spell really |
| 15576 | bad at times! |
| 15577 | |
| 15578 | Daniel (14 September 2000) |
| 15579 | - -p/--proxytunnel was added to 'curl'. It uses the new |
| 15580 | CURLOPT_HTTPPROXYTUNNEL libcurl option that allows "any" protocol to tunnel |
| 15581 | through the specified http proxy. At the moment, this should work with ftp. |
| 15582 | |
| 15583 | Daniel (13 September 2000) |
| 15584 | - Jochen Schaeuble found that file:// didn't work as expected. Corrected this |
| 15585 | and mailed the patch to the mailing list. |
| 15586 | |
| 15587 | Daniel (7 September 2000) |
| 15588 | - I changed the #define T() in curl.h since it turned out it wasn't really |
| 15589 | a good symbol to use (when you compiled PHP with curl as a module, that |
| 15590 | define collided with some IMAP define or something). This was posted to the |
| 15591 | PHP bug tracker. |
| 15592 | |
| 15593 | - I added extern "C" stuff in two header files to better allow libcurl usage |
| 15594 | in C++ sorces. Discussions on the libcurl list with Danny Horswell lead to |
| 15595 | this. |
| 15596 | |
| 15597 | Version 7.2.1 |
| 15598 | |
| 15599 | Daniel (31 August 2000) |
| 15600 | - Albert Chin-A-Young fixed the configure script *again* and now it seems to |
| 15601 | detect Linux name resolving properly! (heard that before?) |
| 15602 | |
| 15603 | - Troels Walsted Hansen pointed out that downloading a file containing the |
| 15604 | letter '+' from an ftp server didn't work. It did work from HTTP though and |
| 15605 | the reason was my lame URL decoder. |
| 15606 | |
| 15607 | - I happened to notice that -I didn't at all work on ftp anymore. I corrected |
| 15608 | that. |
| 15609 | |
| 15610 | Version 7.2 |
| 15611 | |
| 15612 | Daniel (30 August 2000) |
| 15613 | - Understanding AIX is a hard task. I believe I'll never figure out why they |
| 15614 | solve things so differently from the other unixes. Now, I'm left with the |
| 15615 | AIX 4.3 run-time warnings about duplicate symbols that according to this |
| 15616 | article (http://www.geocrawler.com/archives/3/405/1999/9/0/2593428/) is a |
| 15617 | libtool flaw. I tried the mentioned patch, although that stops the linking |
| 15618 | completely. |
| 15619 | |
| 15620 | So, if I select to ignore the ld warnings there are compiler warnings that |
| 15621 | fill the screen pretty bad when curl compiles. It turns out that if I want |
| 15622 | to '#include <arpa/inet.h>', I can get tid of the warnings by include the |
| 15623 | following three include files before that one: |
| 15624 | |
| 15625 | #include <net/if_dl.h> |
| 15626 | #include <sys/mbuf.h> |
| 15627 | #include <netinet/if_ether.h> |
| 15628 | |
| 15629 | Now, is it really sane to add those include files before arpa/inet.h in all |
| 15630 | the source files that include it? |
| 15631 | |
| 15632 | Thanks to Albert Chin-A-Young at thewrittenword.com who gave me the AIX |
| 15633 | login to try everything on. |
| 15634 | |
| 15635 | Daniel (24 August 2000) |
| 15636 | - Jan Schmidt supplied us a new VC6 makefile for Windows as the previous one |
| 15637 | was not up to date but lacked several object files. |
| 15638 | |
| 15639 | - More work on the naming. |
| 15640 | |
| 15641 | - Albert Chin-A-Young provided a configure-check for large file support, as |
| 15642 | some systems seem to need that for them to work. Had to change the position |
| 15643 | for the config.h include file in every .c file in the libcurl dir... |
| 15644 | |
| 15645 | - As suggested on the mailing list (by Troy Engel), I did use a --data-binary |
| 15646 | option instead of the messy way I've left described below. It seems to |
| 15647 | work. The libcurl fix remained the same as yesterday. |
| 15648 | |
| 15649 | Daniel (23 August 2000) |
| 15650 | - Back on the -d stripping newlines thing. The 'plain post' thing was added |
| 15651 | when I had no thought of that one could actually post binary data with |
| 15652 | it. Now, I have to add this functionality in a graceful manner and I think |
| 15653 | I've managed to come up with a way: '-d @file;binary' will thus post the |
| 15654 | file binary, exactly as its contents are. It is implemented with a new |
| 15655 | *setopt() option (CURLOPT_POSTFIELDSIZE) to set the postfield size, since |
| 15656 | libcurl can't strlen() the data in these cases. |
| 15657 | |
| 15658 | - Albert Chin-A-Young made some very serious efforts and all the name |
| 15659 | resolving problems seem to have been sorted out now on all the platforms |
| 15660 | that previously showed them. I'll make another release now anyday because of |
| 15661 | this. |
| 15662 | |
| 15663 | - The FAQ was much enhanced when it comes to the licensing issues thanks to |
| 15664 | Bjorn Reese. |
| 15665 | |
| 15666 | Daniel (21 August 2000) |
| 15667 | - Rick Welykochy pointed out a problem when you use -d to post and you want to |
| 15668 | keep the newlines, as curl strips them off as a bonus before posting... |
| 15669 | This needs to be addressed. |
| 15670 | |
| 15671 | Version 7.1.1 |
| 15672 | |
| 15673 | Daniel (21 August 2000) |
| 15674 | - Got more people involved in the gethostbyname_r() mess. Caolan McNamara sent |
| 15675 | me configure-code that turned out to be very similar to my existing tests |
| 15676 | which only make me more sure I'm on the right path. I changed the order of |
| 15677 | the tests slightly, as it seems that some compilers don't yell error if a |
| 15678 | function is used with too many parameters. Thus, the first tested function |
| 15679 | will seem ok... Let's hope more compilers think of too-few parameters as bad |
| 15680 | manners, as we're now trying the functions in that order; fewer first. I |
| 15681 | should also add that Lars Hecking mailed me and volunteered to run tests on |
| 15682 | a few odd systems. Coalan is keeping his work over at |
| 15683 | http://www.csn.ul.ie/~caolan/publink/gethostbyname_r/. Might be handy in the |
| 15684 | future as well. |
| 15685 | |
| 15686 | Daniel (18 August 2000) |
| 15687 | - I noticed I hadn't increased the name lookup buffer in lib/ftp.c. I don't |
| 15688 | think this is the reason for the continued trouble though. |
| 15689 | |
| 15690 | Daniel (17 August 2000) |
| 15691 | - Fred Noz corrected my stupid mistakes in the gethostbyname_r() fluff. It |
| 15692 | should affect some AIX, Digital Unix and HPUX 10 systems. |
| 15693 | |
| 15694 | Daniel (15 August 2000) |
| 15695 | - Mathieu Legare compiled and build 7.1 without errors on both AIX 4.2 as well |
| 15696 | as AIX 4.3. Now why did problems occur before? |
| 15697 | |
| 15698 | - Fred Noz reported a -w/--write-out bug that caused it to malfunction when |
| 15699 | used combined with multiple URL retrievales. All but the first display got |
| 15700 | screwed up! |
| 15701 | |
| 15702 | Daniel (11 August 2000) |
| 15703 | - Jason Priebe and an anonymous friend found some host names the Linux version |
| 15704 | of curl could not resolve. It turned out the buffer used to retrieve that |
| 15705 | information was too small. Fixed. One could argue about the usefulness of |
| 15706 | not having the slightest trace of a man page for gethostbyname_r() on my |
| 15707 | Linux Redhat installation... |
| 15708 | |
| 15709 | Daniel (10 August 2000) |
| 15710 | - Balaji S Rao was first in line to note the missing possibility to replace |
| 15711 | the Content-Type: and Content-Length: headers when doing -d posts. I added |
| 15712 | the possibility just now. It seems some people wants to do standard posts |
| 15713 | using custom Content-Types. |
| 15714 | |
| 15715 | Daniel (8 August 2000) |
| 15716 | - Mike Dowell correctly discovered that curl did not approve of URLs with no |
| 15717 | user name but password. As in 'http://:foo@haxx.se'. I corrected this. |
| 15718 | |
| 15719 | Version 7.1 |
| 15720 | |
| 15721 | Daniel (7 August 2000) |
| 15722 | - My AIX 4 fix does not work. I need help from a AIX 4 hacker. |
| 15723 | |
| 15724 | - I added my new document in the docs directory. It is aimed to become a sort |
| 15725 | of tutorial on how to do HTTP scripting with curl. |
| 15726 | |
| 15727 | Daniel (4 August 2000) |
| 15728 | - Working with Rich Gray on compiling curl for lots of different platforms. |
| 15729 | My fix for AIX 3.2 was not good enough and was slightly changed, I had to |
| 15730 | move an include file before another, as is now described in the source. |
| 15731 | |
| 15732 | AIX 4.2 (4.X?) has different gethostbyname_r() and gethostbyaddr_r() |
| 15733 | functions that the configure script didn't check for and thus the compile |
| 15734 | broke with an error. I have now changed the gethostbyname_r() check in the |
| 15735 | configure file to support all three versions of both these functions. My |
| 15736 | implementation that uses the AIX-style is though not yet verified and I may |
| 15737 | get problems to fix it if it turns out to bug since I don't have access to |
| 15738 | any system using that. |
| 15739 | |
| 15740 | For problems like that, I made the configure script allow --disable-thread |
| 15741 | to completely switch off the check for threadsafe versions of a few |
| 15742 | functions and thus go with the "good old versions" that tend to work |
| 15743 | although will break thread-safeness for libcurl. Most people won't use |
| 15744 | libcurl for other things than curl though, and curl doesn't need a |
| 15745 | thread-safe lib. |
| 15746 | |
| 15747 | - Working on my big tutorial about HTTP scripting with curl. |
| 15748 | |
| 15749 | Daniel (1 August 2000) |
| 15750 | - Rich Gray spotted a problem in src/setup.h caused by a #define strequal() |
| 15751 | that was just a left-over from passed times. The strequal() is now a true |
| 15752 | function supplied by libcurl for a portable case insensitive string |
| 15753 | comparison. I added the prototypes in include/curl.h and removed the |
| 15754 | now obsolete #define. |
| 15755 | |
| 15756 | - Igor Khristophorov made a fix to allow resumed download from Sun's |
| 15757 | JavaWebServer/1.1.1. It seems that their server sends bad Content-Range |
| 15758 | headers. |
| 15759 | |
| 15760 | - The makefiles forced a static library build, which is bad since we now use |
| 15761 | libtool and thus have excellent shared library support! Albert Chin-A-Young |
| 15762 | found out. |
| 15763 | |
| 15764 | Version 7.0.11beta |
| 15765 | |
| 15766 | Daniel (1 August 2000) |
| 15767 | - Albert Chin-A-Young pointed out that 'make install' did not properly create |
| 15768 | the header include directory, why it failed to install the header files as |
| 15769 | it should. Automake isn't really equipped to deal with subdirectories |
| 15770 | without Makefiles in any nice way. I had to run ahead and add Makefiles in |
| 15771 | both include and include/curl before I managed to create a top-level |
| 15772 | makefile that succeeds in install everything properly! |
| 15773 | |
| 15774 | - Ok, no more "features" added now. Let's just verify that there's no major |
| 15775 | flaws added now. |
| 15776 | |
| 15777 | Daniel (31 July 2000) |
| 15778 | - Both Jeff Schasny and Ketil Froyn asked me how to tell curl not to send one |
| 15779 | of those internally generated headers. They didn't settle with the blank |
| 15780 | ones you could tell curl to use. I rewrote the header-replace stuff a |
| 15781 | little. Now, if you replace an internal header with your own and that new |
| 15782 | one is a blank header you will only remove the internal one and not get any |
| 15783 | blank. I couldn't figure out any case when you want that blank header. |
| 15784 | |
| 15785 | Daniel (29 July 2000) |
| 15786 | - It struck me that the lib used localtime() which is not thread-safe, so now |
| 15787 | I use localtime_r() in the systems that has it. |
| 15788 | |
| 15789 | - I went through this entire document and removed all email addresses and left |
| 15790 | names only. I've really made an effort to always note who brought be bug |
| 15791 | reports or fixes, but more and more people ask me to remove the email |
| 15792 | addresses since they become victims for spams this way. Gordon Beaton got me |
| 15793 | working on this. |
| 15794 | |
| 15795 | Daniel (27 July 2000) |
| 15796 | - Jörn Hartroth found out that when you specified a HTTP proxy in an |
| 15797 | environment variable and used -L, curl failed in the second fetch. I |
| 15798 | corrected this problem and posted a patch to the list. No need for an extra |
| 15799 | beta release just for this. |
| 15800 | |
| 15801 | Version 7.0.10beta |
| 15802 | |
| 15803 | Daniel (27 July 2000) |
| 15804 | - So, libtool replaced two of my files with symbolic links and I forgot to add |
| 15805 | the two new libtool files to the release archive (and they were added as |
| 15806 | symlinks as well!) This of course lead to that the configure script failed |
| 15807 | on 7.0.9... |
| 15808 | |
| 15809 | Version 7.0.9beta |
| 15810 | |
| 15811 | Daniel (25 July 2000) |
| 15812 | - Kristian Köhntopp <kris at koehntopp.de> brought a fix that makes libcurl |
| 15813 | libtoolified, just as we've wanted for a while now. He also made the |
| 15814 | recently added man pages get installed properly on 'make install' and some |
| 15815 | other nice cleanups. |
| 15816 | |
| 15817 | - In a discussion with Eetu Ojanen it struck me that if we use curl to get a |
| 15818 | page using a password, and that page then sends a Location: to another |
| 15819 | server that curl follows, curl will send the user name and password to that |
| 15820 | server as well. |
| 15821 | |
| 15822 | Now, I'll never be able to make curl do Location: following all that perfect |
| 15823 | and you're all sooner or later required to write a script to do several |
| 15824 | fetches when you're doing advanced stuff, but now I've modified curl to at |
| 15825 | least *only* send the user name and password to the original server. Which |
| 15826 | means that if get a page from server A with a password, that forwards curl |
| 15827 | to server B, curl won't use the password there. If server B then forwards |
| 15828 | curl back to server A again, the password will be used again. |
| 15829 | |
| 15830 | This is not a perfect implementation, as in a browser case it would only use |
| 15831 | the password if the left-prefix of the first path is the same. I just think |
| 15832 | that this fix prevents a somewhat lurky "security hole". |
| 15833 | |
| 15834 | As a side-note in this subject: HTTP passwords are sent in cleartext and |
| 15835 | will never be considered to be safe or secure. Use HTTPS for that. |
| 15836 | |
| 15837 | - As discussed on the mailing list, I converted the FTP response reading |
| 15838 | function into using select() which then allows timeouts (even under win32!) |
| 15839 | if the command-reply session gets too slow or dies completely. I made a |
| 15840 | default timeout on 3600 seconds unless anything else is specified, since I |
| 15841 | don't think anyone wants to wait more than that for a single character to |
| 15842 | get received... |
| 15843 | |
| 15844 | - Torsten Foertsch <torsten.foertsch at gmx.net> brought a set of fixes for |
| 15845 | the rfc1867 form posts. He introduced 'name=<file' which brings a means to |
| 15846 | suuply very large text chunks read from the given file name. It differs from |
| 15847 | 'name=@file' in the way that this latter thing is marked in the uploaded |
| 15848 | contents as a file upload, while the first is just text (as in a input or |
| 15849 | textarea field). Torsten also corrected a bug that would happen if you used |
| 15850 | %s or similar in a -F file name. |
| 15851 | |
| 15852 | - As discovered by Nico Baggus <Nico.Baggus at mail.ing.nl>, when transferring |
| 15853 | files to/from FTP using type ASCII curl should not expect the transfer to be |
| 15854 | the exact size reported by the server as the file size. Since ASCII may very |
| 15855 | well mean that the content is translated while transfered, the final size |
| 15856 | may very well differ. Therefor, curl now ignores the file size when doing |
| 15857 | ASCII transfers in FTP. |
| 15858 | |
| 15859 | Daniel (24 July 2000) |
| 15860 | - Added CURLOPT_PROXYPORT to the curl_easy_setopt() call to allow the proxy |
| 15861 | port number to be set separately from the proxy host name. |
| 15862 | |
| 15863 | - Andrew <andrew at ugh.net.au> pointed out a netrc manual bug. |
| 15864 | |
| 15865 | - The FTP transfer code now accepts a 250-code as well as the previously |
| 15866 | accepted 226, after a successful file transfer. Mohan <mnair at |
| 15867 | evergreen-funds.com> pointed this out. |
| 15868 | |
| 15869 | - The check for *both* nsl and socket was never added in the v7 configure.in |
| 15870 | when I moved the main branch. I re-added that check to configure.in. This was |
| 15871 | discovered by Rich Gray. |
| 15872 | |
| 15873 | - Howard, Blaise <Blaise.Howard at factiva.com> pointed out a missing free() in |
| 15874 | curl_disconnect() which of course meant libcurl ate memory. |
| 15875 | |
| 15876 | - Brian E. Gallew noted that the HTTP 'Host:' header curl sent did not |
| 15877 | properly include the port number if non-default ports were used. This should |
| 15878 | now have been fixed. |
| 15879 | |
| 15880 | - HTTP connect errors now return errors earlier. This was most notably causing |
| 15881 | problems when the HTTPS certificate had problems and later caused a crash. |
| 15882 | Many thanks to Gregory Nicholls <gnicholls at level8.com> for discovering |
| 15883 | and suggesting a fix... |
| 15884 | |
| 15885 | Daniel (21 June 2000) |
| 15886 | - After a "bug report" I received where the user was using both -F and -I in a |
| 15887 | HTTP request (it severly confused the library I should add), I added some |
| 15888 | checks to src/main.c that prevents setting more than one HTTP request |
| 15889 | command, no matter what the user wants! ;-) |
| 15890 | |
| 15891 | Version 7.0.8beta |
| 15892 | |
| 15893 | Daniel (20 June 2000) |
| 15894 | - I did a major replace in many files to use the new curl domain haxx.se |
| 15895 | instead of the previous one. |
| 15896 | |
| 15897 | - As Eetu Ojanen suggested, I finally took the step and now libcurl no longer |
| 15898 | makes a POST after it has followed a location. When the initial POST has |
| 15899 | been done, it'll turned into a GET for the further requests. This is only |
| 15900 | interesting when using -L/--location *and* doing a POST at the same time. |
| 15901 | |
| 15902 | While messing with this, I added another weird feature I call 'auto |
| 15903 | referer'. If you append ';auto' to the right of a given referer string (or |
| 15904 | only use that string as referer), libcurl will automatically set the |
| 15905 | previoud URL as refered when it follows a Location: and gets a succeeding |
| 15906 | document. |
| 15907 | |
| 15908 | - My hero Rich Gray found the very obscure FTP bug that happened to him only |
| 15909 | when passing through a particular firewall and using the PORT command. It |
| 15910 | turned out that PORT was the only command in the lib/ftp.c source that |
| 15911 | didn't send a proper \r\n sequence but instead used the faulty \n which as |
| 15912 | it seemed is supported by most major ftp servers... :-O |
| 15913 | |
| 15914 | Version 7.0.7beta |
| 15915 | |
| 15916 | Daniel (16 June 2000) |
| 15917 | - I had avoided this long enough now, so I moved the alternative progress bar |
| 15918 | stuff from the lib and added it to the client code. This is now using the |
| 15919 | recently added progress callback and it seems to work pretty much like |
| 15920 | before. Since it is only one progress bar and you and download and upload at |
| 15921 | the same time, this bar shows the combined progress of both directions. This |
| 15922 | code was just ported from the old place to this, Lars is still our saviour! |
| 15923 | ;-) This also made the documentation more accurate since I never removed |
| 15924 | this function from any docs! Although I now removed the CURLOPT_PROGRESSMODE |
| 15925 | from the library since the lib has only one internal progress meter and it |
| 15926 | will never get another. It is although likely that the internal one also |
| 15927 | will be moved to the client code in the future (when I have other means of |
| 15928 | getting the writeout data and move that too to the client). |
| 15929 | |
| 15930 | - I took the opportunity to verify that standard progress meter works and I |
| 15931 | found out it didn't get inited properly. Grrr. I corrected that as well. |
| 15932 | |
| 15933 | Daniel (15 June 2000) |
| 15934 | - I thought I'd better verify that the -F option still works in v7 and of |
| 15935 | course it didn't... :-/ Anyway, I had the problems I could discover |
| 15936 | corrected. About one month of beta testing and not a single person has used |
| 15937 | this feature with v7? |
| 15938 | |
| 15939 | - Björn correctly pointed out that the --progress-bar still doesn't work in |
| 15940 | v7. Hm. |
| 15941 | |
| 15942 | Daniel (14 June 2000) |
| 15943 | - Tim Tassonis discovered that curl 7 didn't handle normal http POST as it |
| 15944 | should. I corrected this. |
| 15945 | |
| 15946 | Version 7.0.6beta |
| 15947 | |
| 15948 | Daniel (14 June 2000) |
| 15949 | - Björn Stenberg pointed out several problems (related to win32 compiling): |
| 15950 | lib/strequal.c had a bad #ifdef for one of the string comparisons (win32) |
| 15951 | src/main.c had several minor problems |
| 15952 | lib/makefile.m32 had getpass.[co] twice |
| 15953 | src/config-win32.h lacked the HAVE_FCNTL_H define |
| 15954 | both config-win32.h files now only set the HAVE_UNISTD_H define if the |
| 15955 | define MINGW32 is set, and I modified src/makefile.m32 and lib/makefile.m32 |
| 15956 | to set it. |
| 15957 | |
| 15958 | Version 7.0.5beta |
| 15959 | |
| 15960 | Daniel (14 June 2000) |
| 15961 | - Applied Luong Dinh Dung's comments about a few win32 compile problems. |
| 15962 | |
| 15963 | - Applied Björn Stenberg's suggested fix that turns the win32 stdout to |
| 15964 | binary. It won't do it if the -B / --use-ascii option is used. That option |
| 15965 | is now an extended version of the previous -B /--ftp--ascii. The flag was |
| 15966 | already in use be the ldap as well so the new name fits pretty good. The |
| 15967 | libcyrl CURLOPT_TRANSFERTEXT was also introduced as an alias to the now |
| 15968 | obsolete CURLOPT_FTPASCII. Can't verify this fix myself as I have no win32 |
| 15969 | compiler around. |
| 15970 | |
| 15971 | Daniel (13 June 2000) |
| 15972 | - Luong Dinh Dung <dung at sch.bme.hu> found a problem in curl_easy_cleanup() |
| 15973 | since it free()ed the main curl struct *twice*. This is now corrected. |
| 15974 | |
| 15975 | Daniel (9 June 2000) |
| 15976 | - Updated the RESOURCES file, added a README.win32 file. |
| 15977 | |
| 15978 | Daniel (8 June 2000) |
| 15979 | - So I finally added the progress callback to the *setopt() options and it |
| 15980 | should work now. I don't have the energy to write any test program for it |
| 15981 | right now. |
| 15982 | - Made the callback function typedefs public in curl/curl.h for comfort. Just |
| 15983 | in case anyone wanna fiddle with such pointers. |
| 15984 | - Updated the curl_easy_setopt() man page accordingly. |
| 15985 | |
| 15986 | Version 7.0.4beta |
| 15987 | |
| 15988 | Daniel (2 June 2000) |
| 15989 | - I noticed that when doing Location: following, we lost custom headers in all |
| 15990 | but the first request. |
| 15991 | - Removed the 'HttpPost' struct and moved the header stuff to the more generic |
| 15992 | curl_slist. |
| 15993 | - Added some better slist-cleanups in src/main.c |
| 15994 | |
| 15995 | Version 7.0.3beta |
| 15996 | |
| 15997 | Daniel (31 May 2000) |
| 15998 | - So I discovered that I released the 7.0.2beta without it being able to |
| 15999 | compile under Linux. gethostbyname_r() and gethostbyaddr_r() turned out to |
| 16000 | feature a different amount of arguments on different systems so I had to add |
| 16001 | a configure check for this and adjust the code slightly. |
| 16002 | |
| 16003 | Version 7.0.2beta |
| 16004 | |
| 16005 | Daniel (29 May 2000) |
| 16006 | - Corrected the bits.* assignments when using CURLOPT options that only |
| 16007 | toggles one of those bits. |
| 16008 | |
| 16009 | - Applied the huge patches from David LeBlanc <dleblanc at qnx.com> that add |
| 16010 | usage of the gethostbyname_r() and similar functions in case they're around, |
| 16011 | since that make libcurl much better threadsafe in many systems (such as |
| 16012 | solaris). I added the checks for these functions to the configure script. |
| 16013 | |
| 16014 | I can't explain why, but the inet_ntoa_r() function did not appear in my |
| 16015 | Solaris include files, I had to add my own include file for this for now. |
| 16016 | |
| 16017 | Daniel (22 May 2000) |
| 16018 | - Jörn Hartroth brought me fixes to make the win32 version compile properly as |
| 16019 | well as a rename of the 'interface' field in the urldata struct, as it seems |
| 16020 | to be reserved in some gcc versions! |
| 16021 | |
| 16022 | - Rich Gray struck back with yet some portability reports. Data General DG/UX |
| 16023 | needed a little fix in lib/ldap.c since it doesn't have RTLD_GLOBAL defined. |
| 16024 | More fixes are expected as a result of Richies very helpful work. |
| 16025 | |
| 16026 | Version 7.0.1beta |
| 16027 | |
| 16028 | Daniel (21 May 2000) |
| 16029 | - Updated lots of #defines, enums and variable type names in the library. No |
| 16030 | more weird URG or URLTAG prefixes. All types and names should be curl- |
| 16031 | prefixed to avoid name space clashes. The FLAGS-parameter to the former |
| 16032 | curl_urlget() has been converted into a bunch of flags to use in separate |
| 16033 | setopt calls. I'm still focusing on the easy-interface, as the curl tool is |
| 16034 | now using that. |
| 16035 | |
| 16036 | - Bjorn Reese has provided me with an asynchronous name resolver that I plan |
| 16037 | to use in upcoming versions of curl to be able to gracefully timeout name |
| 16038 | lookups. |
| 16039 | |
| 16040 | Version 7.0beta |
| 16041 | |
| 16042 | Daniel (18 May 2000) |
| 16043 | - Introduced LIBCURL_VERSION_NUM to the curl.h include file to better allow |
| 16044 | source codes to be dependent on the lib version. This define is now set to |
| 16045 | a dexadecimal number, with 8 bits each for major number, minor number and |
| 16046 | patch number. In other words, version 1.2.3 would make it 0x010203. It also |
| 16047 | makes a larger number a newer version. |
| 16048 | |
| 16049 | Daniel (17 May 2000) |
| 16050 | - Martin Kammerhofer correctly pointed out several flaws in the FTP range |
| 16051 | option. I corrected them. |
| 16052 | - Removed the win32 winsock init crap from the lib to the src/main.c file |
| 16053 | in the application instead. They can't be in the lib, especially not for |
| 16054 | multithreaded purposes. |
| 16055 | |
| 16056 | Daniel (16 May 2000) |
| 16057 | - Rewrote the src/main.c source to use the new easy-interface to libcurl 7. |
| 16058 | There is still more work to do, but the first step is now taken. |
| 16059 | <curl/easy.h> is the include file to use. |
| 16060 | |
| 16061 | Daniel (14 May 2000) |
| 16062 | - FTP URLs are now treated slightly different, more according to RFC 1738. |
| 16063 | - FTP sessions are now performed differently, with CWD commands to change |
| 16064 | directory instead of RETR/STOR/LIST with the full path. Discussions with |
| 16065 | Rich Gray made me notice these problems. |
| 16066 | - Janne Johansson discovered and corrected a buffer overflow in the |
| 16067 | src/usrglob.c file. |
| 16068 | - I had to add a lib/strequal.c file for doing case insensitive string |
| 16069 | compares on all platforms. |
| 16070 | |
| 16071 | Daniel (8 May 2000): |
| 16072 | - Been working lots on the new lib. |
| 16073 | - Together with Rich Gray, I've tried to adjust the configure script to work |
| 16074 | better on the NCR MP-RAS Unix. |
| 16075 | |
| 16076 | Daniel (2 May 2000): |
| 16077 | - Albert Chin-A-Young pointed out that I had a few too many instructions in |
| 16078 | configure.in that didn't do any good. |
| 16079 | |
| 16080 | Daniel (24 April 2000): |
| 16081 | - Added a new paragraph to the FAQ about what to do when configure can't |
| 16082 | find OpenSSL even though it is installed. Supplied by Bob Allison |
| 16083 | |
| 16084 | Daniel (12 April 2000): |
| 16085 | - Started messing around big-time to convert the old library interface to a |
| 16086 | better one... |
| 16087 | |
| 16088 | Daniel (8 April 2000): |
| 16089 | - Made the progress bar look better for file sizes between 9999 kilobytes |
| 16090 | and 100 megabytes. They're now displayed XX.XM. |
| 16091 | - I also noticed that ftp fetches through HTTP proxies didn't add the user |
| 16092 | agent string. It does now. |
| 16093 | - Habibie <habibie at MailandNews.com> supplied a pretty good way to build RPMs |
| 16094 | on a Linux machine. It still a) requires me to be root to do it, b) leaves |
| 16095 | the rpm packages laying at some odd place on my disk c) doesn't work to |
| 16096 | build the ssl version of curl since I didn't install openssl from an rpm |
| 16097 | package so now the rpm crap thinks I don't have openssl and refuses to build |
| 16098 | a package that depends on ssl... Did I mention I don't get along with RPM? |
| 16099 | - Once again I received a bug report about autoconf not setting -L prior to -l |
| 16100 | on the command line when checking for libs. In this case it made the native |
| 16101 | cc compiler on Solaris 7 to fail the OpenSSL check. This has previously been |
| 16102 | reported to cause problems on HP-UX and is a known flaw in autoconf 2.13. It |
| 16103 | is a pity there's no newer release around... |
| 16104 | |
| 16105 | Daniel (4 April 2000): |
| 16106 | - Marco G. Salvagno supplied me with two fixes that |
| 16107 | appearantly makes the OS/2 port work better with multiple URLs. |
| 16108 | |
| 16109 | Daniel (2 April 2000): |
| 16110 | - Another Location: fix. This time, when curl connected to a port and then |
| 16111 | followed a location with an absolute URL to another port, it misbehaved. |
| 16112 | |
| 16113 | Daniel (27 March 2000): |
| 16114 | - H. Daphne Luong pointed out that curl was wrongly |
| 16115 | messing up the proxy string when fetching a document through a http proxy, |
| 16116 | which screwed up multiple fetches such as in location: followings. |
| 16117 | |
| 16118 | Daniel (23 March 2000): |
| 16119 | - Marco G. Salvagno corrected my badly applied patch he |
| 16120 | actually already told me about! |
| 16121 | |
| 16122 | - H. Daphne Luong brought me a fix that now makes curl |
| 16123 | ignore select() errors in the download if errno is EINTR, which turns out to |
| 16124 | happen every now and then when using libcurl multi-threaded... |
| 16125 | |
| 16126 | Daniel (22 March 2000): |
| 16127 | - Wham Bang supplied a couple of win32 fixes. HAVE_UNAME |
| 16128 | was accidentally #defined in config-win32.h, which it shouldn't have been. |
| 16129 | The HAVE_UNISTD_H is not defined when compiling with the Makefile.vc6 |
| 16130 | makefile for MS VC++. |
| 16131 | |
| 16132 | Daniel (21 March 2000): |
| 16133 | - I removed the AC_PROG_INSTALL macro from configure.in, since it appears that |
| 16134 | one of the AM_* macros searches for a BSD compatible install already. Janne |
| 16135 | Johansson made me aware of this. |
| 16136 | |
| 16137 | Version 6.5.2 |
| 16138 | |
| 16139 | Daniel (21 March 2000): |
| 16140 | - Paul Harrington quickly pointed out to me that 6.5.1 |
| 16141 | crashes hard. I upload 6.5.2 now as quickly as possible! The problem was |
| 16142 | the -D adjustments in src/main.c. |
| 16143 | |
| 16144 | Version 6.5.1 |
| 16145 | |
| 16146 | Daniel (20 March 2000): |
| 16147 | - An anonymous post on sourceforge correctly pointed out a possible buffer |
| 16148 | overflow in the curl_unescape() function for URL conversions. The main |
| 16149 | problem with this bug is that the ftp download uses that function and this |
| 16150 | single- byte overflow could lead to very odd bugs (as one reported by Janne |
| 16151 | Johansson). |
| 16152 | |
| 16153 | Daniel (19 March 2000): |
| 16154 | - Marco G. Salvagno supplied me with a series of patches |
| 16155 | that now allows curl to get compiled on OS/2. It even includes a section in |
| 16156 | the INSTALL file. Very nice job! |
| 16157 | |
| 16158 | Daniel (17 March 2000): |
| 16159 | - Wham Bang supplied a patch for the lib/Makefile.vc6 |
| 16160 | file. We still need some fixes for the config-win32.h since it appears that |
| 16161 | VC++ and mingw32 have different opinions about (at least) unistd.h's |
| 16162 | existence. |
| 16163 | |
| 16164 | Daniel (15 March 2000): |
| 16165 | - I modified the -D/--dump-header workings so that it doesn't write anything |
| 16166 | to the file until it needs to. This way, you can actually use -b and -D |
| 16167 | on the same file if you want repeated invokes to store and read the cookies |
| 16168 | in that one single file. |
| 16169 | |
| 16170 | - Poked around in lots of texts. Added the BUGS file for bug reporting stuff. |
| 16171 | Added the classic HTTP POST question to the FAQ, removed some #ifdef WIN32 |
| 16172 | stuff from the sources (they're covered by the config-win32.h now). |
| 16173 | |
| 16174 | - Pascal Gaudette fixed a missing ldap.c problem in the |
| 16175 | Makefile.vc6 file. He also addressed a problem in src/config-win32.h. |
| 16176 | |
| 16177 | Daniel (14 March 2000): |
| 16178 | - Paul Harrington pointed out that the 'http_code' variable in the -w output |
| 16179 | was never written. I fixed it now. |
| 16180 | |
| 16181 | - Janne Johansson reported the complaints that OpenBSD does |
| 16182 | when getdate.c #includes malloc.h. It claims stdlib.h should be included |
| 16183 | instead. I added #ifdef HAVE_MALLOC_H code in getdate.y and two checks in |
| 16184 | the configure.in for malloc.h and stdlib.h. |
| 16185 | |
| 16186 | Version 6.5 |
| 16187 | |
| 16188 | Daniel (13 March 2000): |
| 16189 | - <curl at spam.wolvesbane.net> pointed out that the way curl sent cookies in a |
| 16190 | single line wasn't enjoyed by IIS4.0 servers. In my view, that is not what |
| 16191 | the standards say, but I added a white space between the name/value pairs to |
| 16192 | perhaps make them work better. |
| 16193 | |
| 16194 | - Added the perl check back in the configure.in again since the mkhelp.pl |
| 16195 | script needs it! |
| 16196 | |
| 16197 | - Made some beautifications in the curl man page. |
| 16198 | |
| 16199 | Daniel (3 March 2000): |
| 16200 | - Jörn helped me update the config-win32.h files with HAVE_SETVBUF and |
| 16201 | HAVE_STRDUP. |
| 16202 | |
| 16203 | Daniel (3 March 2000): |
| 16204 | - Uploaded the 6.5pre2 package. |
| 16205 | |
| 16206 | Daniel (2 March 2000): |
| 16207 | - Removed the perl-programs from the distribution, they never made many people |
| 16208 | happy and I'll still keep them available on the web. |
| 16209 | |
| 16210 | - Added the -w and -N stuff to the man page. Documented the new progress meter |
| 16211 | display in README.curl. |
| 16212 | |
| 16213 | - Jörn Hartroth, Chris <cbayliss at csc.come> and Ulf |
| 16214 | Möller from the openssl development team helped bringing me the details for |
| 16215 | fixing an OpenSSL usage flaw. It became apparent when they released openssl |
| 16216 | 0.9.5 since that barfed on curl's bad behavior (not seeding a random number |
| 16217 | thing). |
| 16218 | |
| 16219 | - Yet another option: -N/--no-buffer disables buffering in the output stream. |
| 16220 | Probably most useful for very slow transfers when you really want to get |
| 16221 | every byte curl receives within some preferred time. Andrew <tmr at gci.net> |
| 16222 | suggested this. |
| 16223 | |
| 16224 | - Damien Adant mailed me his fixes for making curl compile on Ultrix. |
| 16225 | |
| 16226 | Daniel (24 February 2000): |
| 16227 | - Applied Jörn Hartroth's fixes for config-win32.h and lib/Makefile.w32. |
| 16228 | |
| 16229 | I should also make a note here, if nothing else to myself, that when using |
| 16230 | the %-syntax for variables in DOS command prompts, you must use two %- |
| 16231 | letters for each one since that is an escape letter there! Maybe I should |
| 16232 | use another letter instead! |
| 16233 | |
| 16234 | - Added more variables to -w: |
| 16235 | |
| 16236 | 'http_code' |
| 16237 | 'time_namelookup' |
| 16238 | 'time_connect' |
| 16239 | 'time_pretransfer' |
| 16240 | 'url_effective' |
| 16241 | |
| 16242 | - Made -w@filename read the syntax from a file and -w@- reads the syntax from |
| 16243 | stdin in the good old "standard" curl way. |
| 16244 | |
| 16245 | Daniel (22 February 2000): |
| 16246 | - Released a 6.5pre1 version to get some test and user feedback. |
| 16247 | |
| 16248 | Daniel (21 February 2000): |
| 16249 | |
| 16250 | - I added the -w/--write-out flag and some variables to go with it. -w is a |
| 16251 | single string, whatever you enter there will be written out when curl has |
| 16252 | completed a successful request. There are some variable substitutions and |
| 16253 | they are specified as '%{variable}' (without the quotes). Variables that |
| 16254 | exist as of this moment are: |
| 16255 | |
| 16256 | total_time - total transfer time in seconds (with 2 decimals) |
| 16257 | size_download - total downloaded amount of bytes |
| 16258 | size_upload - total uploaded amount of bytes |
| 16259 | speed_download - the average speed of the entire download |
| 16260 | speed_upload - the average speed of the entire upload |
| 16261 | |
| 16262 | I will of course add more variables, but I need input on these and others. |
| 16263 | |
| 16264 | - It struck me that the -# progress bar will be hard to just apply on the new |
| 16265 | progress bar concept. I need some feedback on this before that'll get re- |
| 16266 | introduced! :-/ |
| 16267 | |
| 16268 | Daniel (16 February 2000): |
| 16269 | - Jörn Hartroth brought me some fixes for the progress meter and I continued |
| 16270 | working on it. It seems to work for http download, http post, ftp download |
| 16271 | and ftp upload. It should be a pretty good test it works generally good. |
| 16272 | |
| 16273 | - Still need to add the -# progress bar into the new style progress interface. |
| 16274 | |
| 16275 | - Gonna have a go at my new output option parameter next. |
| 16276 | |
| 16277 | Daniel (15 February 2000): |
| 16278 | - The progress meter stuff is slowly taking place. There's more left before it |
| 16279 | is working ok and everything is tested, but we're reaching there. Slowly! |
| 16280 | |
| 16281 | Daniel (11 February 2000): |
| 16282 | - Paul Marquis fixed the config file parsing of curl to |
| 16283 | deal with any-length lines, removing the previous limit of 4K. |
| 16284 | |
| 16285 | - Eetu Ojanen's suggestion of supporting the @-style for -b |
| 16286 | is implemented. Now -b@<filename> works as well as the old style. -b@- also |
| 16287 | similarly reads the cookies from stdin. |
| 16288 | |
| 16289 | - Reminder: -D should not write to the file until it needs to, in the same way |
| 16290 | -o does. That would enable curl to use -b and -D on the same file... |
| 16291 | |
| 16292 | - Ellis Pritchard made getdate.y work for MacOS X. |
| 16293 | |
| 16294 | - Paul Harrington helped me out finding the crash in the |
| 16295 | cookie parser. He also pointed out curl's habit of sending empty cookies to |
| 16296 | the server. |
| 16297 | |
| 16298 | Daniel (8 February 2000): |
| 16299 | - Ron Zapp corrected a problem in src/urlglob.c that |
| 16300 | prevented curl from getting compiled on sunos 4. The problem had to do |
| 16301 | with the difference in sprintf() return code types. |
| 16302 | |
| 16303 | - Transfer() should now be able to download and upload simultaneously. Let's |
| 16304 | do some progress meter fixes later this week. |
| 16305 | |
| 16306 | Daniel (31 January 2000): |
| 16307 | - Paul Harrington found another core dump in the cookie |
| 16308 | parser. Curl doesn't properly recognize the 'version' keyword and I think |
| 16309 | that is what caused this. I need to refresh some specs on cookies and see |
| 16310 | what else curl lacks to improve this a bit more once and for all. |
| 16311 | |
| 16312 | RFC 2109 clearly specifies how cookies should be dealt with when they are |
| 16313 | compliant with that spec. I don't think many servers are though... |
| 16314 | |
| 16315 | - Mark W. Eichin found that while curl is uploading a form |
| 16316 | to a web site, it doesn't read incoming data why it'll hang after a while |
| 16317 | since the socket "pipe" becomes full. |
| 16318 | |
| 16319 | It took me two hours to rewrite Download() and Upload() into the new |
| 16320 | single function Transfer(). It even seems to work! More testing is required |
| 16321 | of course... I should get the header-sending together in a kind of queue |
| 16322 | and let them get "uploaded" in Transfer() as well. |
| 16323 | |
| 16324 | - Zhibiao Wu pointed out a curl bug in the location: area, |
| 16325 | although I did not get a reproducible way to do this why I have to wait |
| 16326 | with fixing anything. |
| 16327 | |
| 16328 | - Bob Schader suggested I should implement resume |
| 16329 | support for the HTTP PUT operation, and as I think it is a valid suggestion |
| 16330 | I'll work on it. |
| 16331 | |
| 16332 | Daniel (25 January 2000): |
| 16333 | - M Travis Obenhaus pointed out a manual mixup with -y and -Y that was |
| 16334 | corrected. |
| 16335 | |
| 16336 | - Jens Schleusener pointed out a problem to compile |
| 16337 | curl on AIX 4.1.4 and gave me a solution. This problem was already fixed |
| 16338 | by Jörn's recent #include modifications! |
| 16339 | |
| 16340 | Daniel (19 January 2000): |
| 16341 | - Oskar Liljeblad pointed out and corrected a problem |
| 16342 | in the Location: following system that made curl following a location: to a |
| 16343 | different protocol to fail. |
| 16344 | |
| 16345 | At January 31st I re-considered this fix and the surrounding source code. I |
| 16346 | could not really see that the patch did any difference, why I removed it |
| 16347 | again for further research and debugging. (It disabled location: following |
| 16348 | on server not running on default ports.) |
| 16349 | |
| 16350 | - Jörn Hartroth brought a fix that once again |
| 16351 | made it possible to select progress bar. |
| 16352 | |
| 16353 | - Jörn also fixed a few include problems. |
| 16354 | |
| 16355 | Version 6.4 |
| 16356 | |
| 16357 | Daniel (17 January 2000): |
| 16358 | - Based on suggestions from Björn Stenberg, I made the |
| 16359 | progress deal better with larger files and added a "Time" field which shows |
| 16360 | the time spent on the download so far. |
| 16361 | - I'm now using the CVS repository on sourceforge.net, which also allows web |
| 16362 | browsing. See http://curl.haxx.nu. |
| 16363 | |
| 16364 | Daniel (10 January 2000): |
| 16365 | - Renumbered some enums in curl/curl.h since tag number 35 was used twice! |
| 16366 | - Added "postquote" support to the ftp section that enables post-ftp-transfer |
| 16367 | quote commands. |
| 16368 | - Now made the -Q/--quote parameter recognize '-' as a prefix, which means |
| 16369 | that command will be issued AFTER a successful ftp transfer. This can of |
| 16370 | course be used to delete or rename a file after it has been uploaded or |
| 16371 | downloaded. Use your imagination! ;-) |
| 16372 | - Since I do the main development on solaris 2.6 now, I had to download and |
| 16373 | install GNU groff to generate the hugehelp.c file. The solaris nroff cores |
| 16374 | on the man page! So, in order to make the solaris configure script find a |
| 16375 | better result I made gnroff get checked prior to the regular nroff. |
| 16376 | - Added all the curl exit codes to the man page. |
| 16377 | - Jim Gallagher properly tracked down a bug in autoconf |
| 16378 | 2.13. The AC_CHECK_LIB() macro wrongfully uses the -l flag before the -L |
| 16379 | flag to 'ld' which causes the HP-UX 10.20 flavour to fail on all libchecks |
| 16380 | and therefore you can't make the configure script find the openssl libs! |
| 16381 | |
| 16382 | Daniel (28 December 1999): |
| 16383 | - Tim Verhoeven correctly identified that curl |
| 16384 | doesn't support URL formatted file names when getting ftp. Now, there's a |
| 16385 | problem with getting very weird file names off FTP servers. RFC 959 defines |
| 16386 | that the file name syntax to use should be the same as in the native OS of |
| 16387 | the server. Since we don't know the peer server system we currently just |
| 16388 | translate the URL syntax into plain letters. It is still better and with |
| 16389 | the solaris 2.6-supplied ftp server it works with spaces in the file names. |
| 16390 | |
| 16391 | Daniel (27 December 1999): |
| 16392 | - When curl parsed cookies straight off a remote site, it corrupted the input |
| 16393 | data, which, if the downloaded headers were stored made very odd characters |
| 16394 | in the saved data. Correctly identified and reported by Paul Harrington. |
| 16395 | |
| 16396 | Daniel (13 December 1999): |
| 16397 | - General cleanups in the library interface. There had been some bad kludges |
| 16398 | added during times of stress and I did my best to clean them off. It was |
| 16399 | both regarding the lib API as well as include file confusions. |
| 16400 | |
| 16401 | Daniel (3 December 1999): |
| 16402 | - A small --stderr bug was reported by Eetu Ojanen... |
| 16403 | |
| 16404 | - who also brought the suggestion of extending the -X flag to ftp list as |
| 16405 | well. So, now it is and the long option is now --request instead. It is |
| 16406 | only for ftp list for now (and the former http stuff too of course). |
| 16407 | |
| 16408 | Lars J. Aas (24 November 1999): |
| 16409 | - Patched curl to compile and build under BeOS. Doesn't work yet though! |
| 16410 | |
| 16411 | - Corrected the Makefile.am files to allow putting object files in |
| 16412 | different directories than the sources. |
| 16413 | |
| 16414 | Version 6.3.1 |
| 16415 | |
| 16416 | Daniel (23 November 1999): |
| 16417 | - I've had this major disk crash. My good old trust-worthy source disk died |
| 16418 | along with the machine that hosted it. Thank goodness most of all the |
| 16419 | things I've done are either backed up elsewhere or stored in this CVS |
| 16420 | server! |
| 16421 | |
| 16422 | - Michael S. Steuer pointed out a bug in the -F handling |
| 16423 | that made curl hang if you posted an empty variable such as '-F name='. It |
| 16424 | was one of those old bugs that never have worked properly... |
| 16425 | |
| 16426 | - Jason Baietto pointed out a general flaw in the HTTP |
| 16427 | download. Curl didn't complain if it was prematurely aborted before the |
| 16428 | entire download was completed. It does now. |
| 16429 | |
| 16430 | Daniel (19 November 1999): |
| 16431 | - Chris Maltby very accurately criticized the lack of |
| 16432 | return code checks on the fwrite() calls. I did a thorough check for all |
| 16433 | occurrences and corrected this. |
| 16434 | |
| 16435 | Daniel (17 November 1999): |
| 16436 | - Paul Harrington pointed out that the -m/--max-time option |
| 16437 | doesn't work for the slow system calls like gethostbyname()... I don't have |
| 16438 | any good fix yet, just a slightly less bad one that makes curl exit hard |
| 16439 | when the timeout is reached. |
| 16440 | |
| 16441 | - Bjorn Reese helped me point out a possible problem that might be the reason |
| 16442 | why Thomas Hurst experience problems in his Amiga version. |
| 16443 | |
| 16444 | Daniel (12 November 1999): |
| 16445 | - I found a crash in the new cookie file parser. It crashed when you gave |
| 16446 | a plain http header file as input... |
| 16447 | |
| 16448 | Version 6.3 |
| 16449 | |
| 16450 | Daniel (10 November 1999): |
| 16451 | - I kind of found out that the HTTP time-conditional GETs (-z) aren't always |
| 16452 | respected by the web server and the document is therefore sent in whole |
| 16453 | again, even though it doesn't match the requested condition. After reading |
| 16454 | section 13.3.4 of RFC 2616, I think I'm doing the right thing now when I do |
| 16455 | my own check as well. If curl thinks the condition isn't met, the transfer |
| 16456 | is aborted prematurely (after all the headers have been received). |
| 16457 | |
| 16458 | - After comments from Robert Linden I also rewrote some parts of the man page |
| 16459 | to better describe how the -F works. |
| 16460 | |
| 16461 | - Michael Anti put up a new curl download mirror in |
| 16462 | China: http://www.pshowing.com/curl/ |
| 16463 | |
| 16464 | - I added the list of download mirrors to the README file |
| 16465 | |
| 16466 | - I did add more explanations to the man page |
| 16467 | |
| 16468 | Daniel (8 November 1999): |
| 16469 | - I made the -b/--cookie option capable of reading netscape formatted cookie |
| 16470 | files as well as normal http-header files. It should be able to |
| 16471 | transparently figure out what kind of file it got as input. |
| 16472 | |
| 16473 | Daniel (29 October 1999): |
| 16474 | - Another one of Sebastiaan van Erk's ideas (that has been requested before |
| 16475 | but I seem to have forgotten who it was), is to add support for ranges in |
| 16476 | FTP downloads. As usual, one request is just a request, when they're two |
| 16477 | it is a demand. I've added simple support for X-Y style fetches. X has to |
| 16478 | be the lower number, though you may omit one of the numbers. Use the -r/ |
| 16479 | --range switch (previously HTTP-only). |
| 16480 | |
| 16481 | - Sebastiaan van Erk suggested that curl should be |
| 16482 | able to show the file size of a specified file. I think this is a splendid |
| 16483 | idea and the -I flag is now working for FTP. It displays the file size in |
| 16484 | this manner: |
| 16485 | Content-Length: XXXX |
| 16486 | As it resembles normal headers, and leaves us the opportunity to add more |
| 16487 | info in that display if we can come up with more in the future! It also |
| 16488 | makes sense since if you access ftp through a HTTP proxy, you'd get the |
| 16489 | file size the same way. |
| 16490 | |
| 16491 | I changed the order of the QUOTE command executions. They're now executed |
| 16492 | just after the login and before any other command. I made this to enable |
| 16493 | quote commands to run before the -I stuff is done too. |
| 16494 | |
| 16495 | - I found out that -D/--dump-header and -V/--version weren't documented in |
| 16496 | the man page. |
| 16497 | |
| 16498 | - Many HTTP/1.1 servers do not support ranges. Don't ask me why. I did add |
| 16499 | some text about this in the man page for the range option. The thread in |
| 16500 | the mailing list that started this was initiated by Michael Anti. |
| 16501 | |
| 16502 | - I get reports about nroff crashes on solaris 2.6+ when displaying the curl |
| 16503 | man page. Switch to gnroff instead, it is reported to work(!). Adam Barclay |
| 16504 | reported and brought the suggestion. |
| 16505 | |
| 16506 | - In a dialogue with Johannes G. Kristinsson we came |
| 16507 | up with the idea to let -H/--header specified headers replace the |
| 16508 | internally generated headers, if you happened to select to add a header |
| 16509 | that curl normally uses by itself. The advantage with this is not entirely |
| 16510 | obvious, but in Johannes' case it means that he can use another Host: than |
| 16511 | the one curl would set. |
| 16512 | |
| 16513 | Daniel (27 October 1999): |
| 16514 | - Jongki Suwandi brought a nice patch for (yet another) crash when following |
| 16515 | a location:. This time you had to follow a https:// server's redirect to |
| 16516 | get the core. |
| 16517 | |
| 16518 | Version 6.2 |
| 16519 | |
| 16520 | Daniel (21 October 1999): |
| 16521 | - I think I managed to remove the suspicious (nil) that has been seen just |
| 16522 | before the "Host:" in HTTP requests when -v was used. |
| 16523 | - I found out that if you followed a location: when using a proxy, without |
| 16524 | having specified http:// in the URL, the protocol part was added once again |
| 16525 | when moving to the next URL! (The protocol part has to be added to the |
| 16526 | URL when going through a proxy since it has no protocol-guessing system |
| 16527 | such as curl has.) |
| 16528 | - Benjamin Ritcey reported a core dump under solaris 2.6 |
| 16529 | with OpenSSL 0.9.4. It turned out this was due to a bad free() in main.c |
| 16530 | that occurred after the download was done and completed. |
| 16531 | - Benjamin found ftp downloads to show the first line of the download meter |
| 16532 | to get written twice, and I removed that problem. It was introduced with |
| 16533 | the multiple URL support. |
| 16534 | - Dan Zitter correctly pointed out that curl 6.1 and earlier versions didn't |
| 16535 | honor RFC 2616 chapter 4 section 2, "Message Headers": "...Field names are |
| 16536 | case-insensitive..." HTTP header parsing assumed a certain casing. Dan |
| 16537 | also provided me with a patch that corrected this, which I took the liberty |
| 16538 | of editing slightly. |
| 16539 | - Dan Zitter also provided a nice patch for config.guess to better recognize |
| 16540 | the Mac OS X |
| 16541 | - Dan also corrected a minor problem in the lib/Makefile that caused linking |
| 16542 | to fail on OS X. |
| 16543 | |
| 16544 | Daniel (19 October 1999): |
| 16545 | - Len Marinaccio came up with some problems with curl. Since Windows has a |
| 16546 | crippled shell, it can't redirect stderr and that causes trouble. I added |
| 16547 | --stderr today which allows the user to redirect the stderr stream to a |
| 16548 | file or stdout. |
| 16549 | |
| 16550 | Daniel (18 October 1999): |
| 16551 | - The configure script now understands the '--without-ssl' flag, which now |
| 16552 | totally disable SSL/https support. Previously it wasn't possible to force |
| 16553 | the configure script to leave SSL alone. The previous functionality has |
| 16554 | been retained. Troy Engel helped test this new one. |
| 16555 | |
| 16556 | Version 6.1 (October 17 1999) |
| 16557 | |
| 16558 | Daniel (17 October 1999): |
| 16559 | - I ifdef'ed or commented all the zlib stuff in the sources and configure |
| 16560 | script. It turned out we needed to mock more with zlib than I initially |
| 16561 | thought, to make it capable of downloading compressed HTTP documents and |
| 16562 | uncompress them on the fly. I didn't mean the zlib parts of curl to become |
| 16563 | more than minor so this means I halt the zlib expedition for now and wait |
| 16564 | until someone either writes the code or zlib gets updated and better |
| 16565 | adjusted for this kind of usage. I won't get into details here, but a |
| 16566 | short a summary is suitable: |
| 16567 | - zlib can't automatically detect whether to use zlib or gzip |
| 16568 | decompression methods. |
| 16569 | - zlib is very neat for reading gzipped files from a file descriptor, |
| 16570 | although not as nice for reading buffer-based data such as we would |
| 16571 | want it. |
| 16572 | - there are still some problems with the win32 version when reading from |
| 16573 | a file descriptor if that is a socket |
| 16574 | |
| 16575 | Daniel (14 October 1999): |
| 16576 | - Moved the (external) include files for libcurl into a subdirectory named |
| 16577 | curl and adjusted all #include lines to use <curl/XXXX> to maintain a |
| 16578 | better name space and control of the headers. This has been requested. |
| 16579 | |
| 16580 | Daniel (12 October 1999): |
| 16581 | - I modified the 'maketgz' script to perform a 'make' too before a release |
| 16582 | archive is put together in an attempt to make the time stamps better and |
| 16583 | hopefully avoid the double configure-running that use to occur. |
| 16584 | |
| 16585 | Daniel (11 October 1999): |
| 16586 | - Applied Jörn's patches that fixes zlib for mingw32 compiles as well as |
| 16587 | some other missing zlib #ifdef and more text on the multiple URL docs in |
| 16588 | the man page. |
| 16589 | |
| 16590 | Version 6.1beta |
| 16591 | |
| 16592 | Daniel (6 October 1999): |
| 16593 | - Douglas E. Wegscheid sent me a patch that made the exact same thing as I |
| 16594 | just made: the -d switch is now capable of reading post data from a named |
| 16595 | file or stdin. Use it similarly to the -F. To read the post data from a |
| 16596 | given file: |
| 16597 | |
| 16598 | curl -d @path/to/filename www.postsite.com |
| 16599 | |
| 16600 | or let curl read it out from stdin: |
| 16601 | |
| 16602 | curl -d @- www.postit.com |
| 16603 | |
| 16604 | Jörn Hartroth (3 October 1999): |
| 16605 | - Brought some more patches for multiple URL functionality. The MIME |
| 16606 | separation ideas are almost scrapped now, and a custom separator is being |
| 16607 | used instead. This is still compile-time "flagged". |
| 16608 | |
| 16609 | Daniel |
| 16610 | - Updated curl.1 with multiple URL info. |
| 16611 | |
| 16612 | Daniel (30 September 1999): |
| 16613 | - Felix von Leitner brought openssl-check fixes for configure.in to work |
| 16614 | out-of-the-box when the openssl files are installed in the system default |
| 16615 | dirs. |
| 16616 | |
| 16617 | Daniel (28 September 1999) |
| 16618 | - Added libz functionality. This should enable decompressing gzip, compress |
| 16619 | or deflate encoding HTTP documents. It also makes curl send an accept that |
| 16620 | it accepts that kind of encoding. Compressed contents usually shortens |
| 16621 | download time. I *need* someone to tell me a site that uses compressed HTTP |
| 16622 | documents so that I can test this out properly. |
| 16623 | |
| 16624 | - As a result of the adding of zlib awareness, I changed the version string |
| 16625 | a little. I plan to add openldap version reporting in there too. |
| 16626 | |
| 16627 | Daniel (17 September 1999) |
| 16628 | - Made the -F option allow stdin when specifying files. By using '-' instead |
| 16629 | of file name, the data will be read from stdin. |
| 16630 | |
| 16631 | Version 6.0 (September 14 1999) |
| 16632 | |
| 16633 | Daniel (13 September 1999) |
| 16634 | - Added -X/--http-request <request> to enable any HTTP command to be sent. |
| 16635 | Do not that your server has to support the exact string you enter. This |
| 16636 | should possibly a string like DELETE or TRACE. |
| 16637 | |
| 16638 | - Applied Douglas' mingw32-fixes for the makefiles. |
| 16639 | |
| 16640 | Daniel (10 September 1999) |
| 16641 | - Douglas E. Wegscheid pointed out a problem. Curl didn't check the FTP |
| 16642 | servers return code properly after the --quote commands were issued. It |
| 16643 | took anything non 200 as an error, when all 2XX codes should be accepted as |
| 16644 | OK. |
| 16645 | |
| 16646 | - Sending cookies to the same site in multiple lines like curl used to do |
| 16647 | turned out to be bad and breaking the cookie specs. Curl now sends all |
| 16648 | cookies on a single Cookie: line. Curl is not yet RFC 2109 compliant, but I |
| 16649 | doubt that many servers do use that syntax (yet). |
| 16650 | |
| 16651 | Daniel (8 September 1999) |
| 16652 | - Jörn helped me make sure it still compiles nicely with mingw32 under win32. |
| 16653 | |
| 16654 | Daniel (7 September 1999) |
| 16655 | - FTP upload through proxy is now turned into a HTTP PUT. Requested by |
| 16656 | Stefan Kanthak. |
| 16657 | |
| 16658 | - Added the ldap files to the .m32 makefile. |
| 16659 | |
| 16660 | Daniel (3 September 1999) |
| 16661 | - Made cookie matching work while using HTTP proxy. |
| 16662 | |
| 16663 | Bjorn Reese (31 August 1999) |
| 16664 | - Passed his ldap:// patch. Note that this requires the openldap shared |
| 16665 | library to be installed and that LD_LIBRARY_PATH points to the |
| 16666 | directory where the lib will be found when curl is run with a |
| 16667 | ldap:// URL. |
| 16668 | |
| 16669 | Jörn Hartroth (31 August 1999) |
| 16670 | - Made the Mingw32 makefiles into single files. |
| 16671 | - Made file:// work for Win32. The same code is now used for unix as well for |
| 16672 | performance reasons. |
| 16673 | |
| 16674 | Douglas E. Wegscheid (30 August 1999) |
| 16675 | - Patched the Mingw32 makefiles for SSL builds. |
| 16676 | |
| 16677 | Matthew Clarke (30 August 1999) |
| 16678 | - Made a cool patch for configure.in to allow --with-ssl to specify the |
| 16679 | root dir of the openssl installation, as in |
| 16680 | |
| 16681 | ./configure --with-ssl=/usr/ssl_here |
| 16682 | |
| 16683 | - Corrected the 'reconf' script to work better with some shells. |
| 16684 | |
| 16685 | Jörn Hartroth (26 August 1999) |
| 16686 | - Fixed the Mingw32 makefiles in lib/ and corrected the file.c for win32 |
| 16687 | compiles. |
| 16688 | |
| 16689 | Version 5.11 |
| 16690 | |
| 16691 | Daniel (25 August 1999) |
| 16692 | - John Weismiller pointed out a bug in the header-line |
| 16693 | realloc() system in download.c. |
| 16694 | |
| 16695 | - I added lib/file.[ch] to offer a first, simple, file:// support. It |
| 16696 | probably won't do much good on win32 system at this point, but I see it |
| 16697 | as a start. |
| 16698 | |
| 16699 | - Made the release archives get a Makefile in the root dir, which can be |
| 16700 | used to start the compiling/building process easier. I haven't really |
| 16701 | changed any INSTALL text yet, I wanted to get some feed-back on this |
| 16702 | first. |
| 16703 | |
| 16704 | Daniel (17 August 1999) |
| 16705 | - Another Location: bug. Curl didn't do proper relative locations if the |
| 16706 | original URL had cgi-parameters that contained a slash. Nusu's page |
| 16707 | again. |
| 16708 | |
| 16709 | - Corrected the NO_PROXY usage. It is a list of substrings that if one of |
| 16710 | them matches the tail of the host name it should connect to, curl should |
| 16711 | not use a proxy to connect there. Pointed out to me by Douglas |
| 16712 | E. Wegscheid. I also changed the README text a little regarding this. |
| 16713 | |
| 16714 | Daniel (16 August 1999) |
| 16715 | - Fixed a memory bug with http-servers that sent Location: to a Location: |
| 16716 | page. Nusu's page showed this too. |
| 16717 | |
| 16718 | - Made cookies work a lot better. Setting the same cookie name several times |
| 16719 | used to add more cookies instead of replacing the former one which it |
| 16720 | should've. Nusu <nus at intergorj.ro> brought me an URL that made this |
| 16721 | painfully visible... |
| 16722 | |
| 16723 | Troy (15 August 1999) |
| 16724 | - Brought new .spec files as well as a patch for configure.in that lets the |
| 16725 | configure script find the openssl files better, even when the include |
| 16726 | files are in /usr/include/openssl |
| 16727 | |
| 16728 | Version 5.10 |
| 16729 | |
| 16730 | Daniel (13 August 1999) |
| 16731 | - SSL_CTX_set_default_passwd_cb() has been modified in the 0.9.4 version of |
| 16732 | OpenSSL. Now why couldn't they simply add a *new* function instead of |
| 16733 | modifying the parameters of an already existing function? This way, we get |
| 16734 | a compiler warning if compiling with 0.9.4 but not with earlier. So, I had |
| 16735 | to come up with a #if construction that deals with this... |
| 16736 | |
| 16737 | - Made curl output the SSL version number get displayed properly with 0.9.4. |
| 16738 | |
| 16739 | Troy (12 August 1999) |
| 16740 | - Added MingW32 (GCC-2.95) support under Win32. The INSTALL file was also |
| 16741 | a bit rearranged. |
| 16742 | |
| 16743 | Daniel (12 August 1999) |
| 16744 | - I had to copy a good <arpa/telnet.h> include file into the curl source |
| 16745 | tree to enable the silly win32 systems to compile. The distribution rights |
| 16746 | allows us to do that as long as the file remains unmodified. |
| 16747 | |
| 16748 | - I corrected a few minor things that made the compiler complain when |
| 16749 | -Wall -pedantic was used. |
| 16750 | |
| 16751 | - I'm moving the official curl web page to http://curl.haxx.nu. I think it |
| 16752 | will make it easier to remember as it is a lot shorter and less cryptic. |
| 16753 | The old one still works and shows the same info. |
| 16754 | |
| 16755 | Daniel (11 August 1999) |
| 16756 | - Albert Chin-A-Young mailed me another correction for NROFF in the |
| 16757 | configure.in that is supposed to be better for IRIX users. |
| 16758 | |
| 16759 | Daniel (10 August 1999) |
| 16760 | - Albert Chin-A-Young helped me with some stupid Makefile things, as well as |
| 16761 | some fiddling with the getdate.c stuff that he had problems with under |
| 16762 | HP-UX v10. getdate.y will now be compiled into getdate.c if the appropriate |
| 16763 | yacc or bison is found by the configure script. Since this is slightly new, |
| 16764 | we need to test the output getdate.c with win32 systems to make sure it |
| 16765 | still compiles there. |
| 16766 | |
| 16767 | Daniel (5 August 1999) |
| 16768 | - I've just setup a new mailing list with the intention to keep discussions |
| 16769 | around libcurl development in it. I mainly expect it to be for thoughts and |
| 16770 | brainstorming around a "next generation" library, rather than nitpicking |
| 16771 | about the current implementation or details in the current libcurl. |
| 16772 | |
| 16773 | To join our happy bunch of future-looking geeks, enter 'subscribe |
| 16774 | <address>' in the body of a mail and send it to |
| 16775 | libcurl-request@listserv.fts.frontec.se. Curl bug reports, the usual curl |
| 16776 | talk and everything else should still be kept in this mailing list. I've |
| 16777 | started to archive this mailing list and have put the libcurl web page at |
| 16778 | www.fts.frontec.se/~dast/libcurl/. |
| 16779 | |
| 16780 | - Stefan Kanthak contacted me regarding a few problems in the configure |
| 16781 | script which he discovered when trying to make curl compile and build under |
| 16782 | Siemens SINIX-Z V5.42B2004! |
| 16783 | |
| 16784 | - Marcus Klein very accurately informed me that src/version.h was not present |
| 16785 | in the CVS repository. Oh, how silly... |
| 16786 | |
| 16787 | - Linus Nielsen rewrote the telnet:// part and now curl offers limited telnet |
| 16788 | support. If you run curl like 'curl telnet://host' you'll get all output on |
| 16789 | the screen and curl will read input from stdin. You'll be able to login and |
| 16790 | run commands etc, but since the output is buffered, expect to get a little |
| 16791 | weird output. |
| 16792 | |
| 16793 | This is still in its infancy and it might get changed. We need your |
| 16794 | feed-back and input in how this is best done. |
| 16795 | |
| 16796 | WIN32 NOTE: I bet we'll get problems when trying to compile the current |
| 16797 | lib/telnet.c on win32, but I think we can sort them out in time. |
| 16798 | |
| 16799 | - David Sanderson reported that FORCE_ALLOCA_H or HAVE_ALLOCA_H must be |
| 16800 | defined for getdate.c to compile properly on HP-UX 11.0. I updated the |
| 16801 | configure script to check for alloca.h which should make it. |
| 16802 | |
| 16803 | Daniel (4 August 1999) |
| 16804 | - I finally got to understand Marcus Klein's ftp download resume problem, |
| 16805 | which turns out to be due to different outputs from different ftp |
| 16806 | servers. It makes ftp download resuming a little trickier, but I've made |
| 16807 | some modifications I really believe will work for most ftp servers and I do |
| 16808 | hope you report if you have problems with this! |
| 16809 | |
| 16810 | - Added text about file transfer resuming to README.curl. |
| 16811 | |
| 16812 | Daniel (2 August 1999) |
| 16813 | - Applied a progress-bar patch from Lars J. Aas. It offers |
| 16814 | a new styled progress bar enabled with -#/--progress-bar. |
| 16815 | |
| 16816 | T. Yamada <tai at imasy.or.jp> (30 July 1999) |
| 16817 | - It breaks with segfault when 1) curl is using .netrc to obtain |
| 16818 | username/password (option '-n'), and 2) is automatically redirected to |
| 16819 | another location (option '-L'). |
| 16820 | |
| 16821 | There is a small bug in lib/url.c (block starting from line 641), which |
| 16822 | tries to take out username/password from user- supplied command-line |
| 16823 | argument ('-u' option). This block is never executed on first attempt since |
| 16824 | CONF_USERPWD bit isn't set at first, but curl later turns it on when it |
| 16825 | checks for CONF_NETRC bit. So when curl tries to redo everything due to |
| 16826 | redirection, it segfaults trying to access *data->userpwd. |
| 16827 | |
| 16828 | Version 5.9.1 |
| 16829 | |
| 16830 | Daniel (30 July 1999) |
| 16831 | - Steve Walch pointed out that there is a memory leak in the formdata |
| 16832 | functions. I added a FormFree() function that is now used and supposed to |
| 16833 | correct this flaw. |
| 16834 | |
| 16835 | - Mark Wotton reported: |
| 16836 | 'curl -L https://www.cwa.com.au/' core dumps. I managed to cure this by |
| 16837 | correcting the cleanup procedure. The bug seems to be gone with my OpenSSL |
| 16838 | 0.9.2b, although still occurs when I run the ~100 years old SSLeay 0.8.0. I |
| 16839 | don't know whether it is curl or SSLeay that is to blame for that. |
| 16840 | |
| 16841 | - Marcus Klein: |
| 16842 | Reported an FTP upload resume bug that I really can't repeat nor understand. |
| 16843 | I leave it here so that it won't be forgotten. |
| 16844 | |
| 16845 | Daniel (29 July 1999) |
| 16846 | - Costya Shulyupin suggested support for longer URLs when following Location: |
| 16847 | and I could only agree and fix it! |
| 16848 | |
| 16849 | - Leigh Purdie found a problem in the upload/POST department. It turned out |
| 16850 | that http.c accidentaly cleared the pointer instead of the byte counter |
| 16851 | when supposed to. |
| 16852 | |
| 16853 | - Costya Shulyupin pointed out a problem with port numbers and Location:. If |
| 16854 | you had a server at a non-standard port that redirected to an URL using a |
| 16855 | standard port number, curl still used that first port number. |
| 16856 | |
| 16857 | - Ralph Beckmann pointed out a problem when using both CONF_FOLLOWLOCATION |
| 16858 | and CONF_FAILONERROR simultaneously. Since the CONF_FAILONERROR exits on |
| 16859 | the 302-code that the follow location header outputs it will never show any |
| 16860 | html on location: pages. I have now made it look for >=400 codes if |
| 16861 | CONF_FOLLOWLOCATION is set. |
| 16862 | |
| 16863 | - 'struct slist' is now renamed to 'struct curl_slist' (as suggested by Ralph |
| 16864 | Beckmann). |
| 16865 | |
| 16866 | - Joshua Swink and Rick Welykochy were the first to point out to me that the |
| 16867 | latest OpenSSL package now have moved the standard include path. It is now |
| 16868 | in /usr/local/ssl/include/openssl and I have now modified the --enable-ssl |
| 16869 | option for the configure script to use that as the primary path, and I |
| 16870 | leave the former path too to work with older packages of OpenSSL too. |
| 16871 | |
| 16872 | Daniel (9 June 1999) |
| 16873 | - I finally understood the IRIX problem and now it seem to compile on it! |
| 16874 | I am gonna remove those #define strcasecmp() things once and for all now. |
| 16875 | |
| 16876 | Daniel (4 June 1999) |
| 16877 | - I adjusted the FTP reply 227 parser to make the PASV command work better |
| 16878 | with more ftp servers. Appearantly the Roxen Challanger server replied |
| 16879 | something curl 5.9 could deal with! :-( Reported by Ashley Reid-Montanaro |
| 16880 | and Mark Butler brought a solution for it. |
| 16881 | |
| 16882 | Daniel (26 May 1999) |
| 16883 | - Rearranged. README is new, the old one is now README.curl and I added a |
| 16884 | README.libcurl with text I got from Ralph Beckmann. |
| 16885 | |
| 16886 | - I also updated the INSTALL text. |
| 16887 | |
| 16888 | Daniel (25 May 1999) |
| 16889 | - David Jonathan Lowsky correctly pointed out that curl didn't properly deal |
| 16890 | with form posting where the variable shouldn't have any content, as in curl |
| 16891 | -F "form=" www.site.com. It was now fixed. |
| 16892 | |
| 16893 | Version 5.9 (May 22 1999) |
| 16894 | |
| 16895 | Daniel (22 May 1999) |
| 16896 | - I've got a bug report from Aaron Scarisbrick in which he states he has some |
| 16897 | problems with -L under FreeBSD 3.0. I have previously got another bug |
| 16898 | report from Stefan Grether which points at an error with similar sympthoms |
| 16899 | when using win32. I made the allocation of the new url string a bit faster |
| 16900 | and different, don't know if it actually improves anything though... |
| 16901 | |
| 16902 | Daniel (20 May 1999) |
| 16903 | - Made the cookie parser deal with CRLF newlines too. |
| 16904 | |
| 16905 | Daniel (19 May 1999) |
| 16906 | - Download() didn't properly deal with failing return codes from the sread() |
| 16907 | function. Adam Coyne found the problem in the win32 version, and Troy Engel |
| 16908 | helped me out isolating it. |
| 16909 | |
| 16910 | Daniel (16 May 1999) |
| 16911 | - Richard Adams pointed out a bug I introduced in 5.8. --dump-header doesn't |
| 16912 | work anymore! :-/ I fixed it now. |
| 16913 | |
| 16914 | - After a suggestion by Joshua Swink I added -S / --show-error to force curl |
| 16915 | to display the error message in case of an error, even if -s/--silent was |
| 16916 | used. |
| 16917 | |
| 16918 | Daniel (10 May 1999) |
| 16919 | - I moved the stuff concerning HTTP, DICT and TELNET it their own source |
| 16920 | files now. It is a beginning on my clean-up of the sources to make them |
| 16921 | layer all those protocols better to enable more to be added easier in the |
| 16922 | future! |
| 16923 | |
| 16924 | - Leon Breedt sent me some files I've not put into the main curl |
| 16925 | archive. They're for creating the Debian package thingie. He also sent me a |
| 16926 | debian package that I've made available for download at the web page |
| 16927 | |
| 16928 | Daniel (9 May 1999) |
| 16929 | - Made it compile on cygwin too. |
| 16930 | |
| 16931 | Troy Engel (7 May 1999) |
| 16932 | - Brought a series of patches to allow curl to compile smoothly on MSVC++ 6 |
| 16933 | again! |
| 16934 | |
| 16935 | Daniel (6 May 1999) |
| 16936 | - I changed the #ifdef HAVE_STRFTIME placement for the -z code so that it |
| 16937 | will be easier to discover systems that don't have that function and thus |
| 16938 | can't use -z successfully. Made the strftime() get used if WIN32 is defined |
| 16939 | too. |
| 16940 | |
| 16941 | Version 5.8 |
| 16942 | |
| 16943 | Daniel (5 May 1999) |
| 16944 | - I've had it with this autoconf/automake mess. It seems to work allright |
| 16945 | for most people who don't have automake installed, but for those who have |
| 16946 | there are problems all over. |
| 16947 | |
| 16948 | I've got like five different bug reports on this only the last |
| 16949 | week... Claudio Neves and Federico Bianchi and root <duggerj001 at |
| 16950 | hawaii.rr.com> are some of them reporting this. |
| 16951 | |
| 16952 | Currently, I have no really good fix since I want to use automake myself to |
| 16953 | generate the Makefile.in files. I've found out that the @SHELL@-problems |
| 16954 | can often be fixed by manually invoking 'automake' in the archive root |
| 16955 | before you run ./configure... I've hacked my maketgz script now to fiddle |
| 16956 | a bit with this and my tests seem to work better than before at least! |
| 16957 | |
| 16958 | Daniel (4 May 1999) |
| 16959 | - mkhelp.pl has been doing badly lately. I corrected a case problem in |
| 16960 | the regexes. |
| 16961 | |
| 16962 | - I've now remade the -o option to not touch the file unless it needs to. |
| 16963 | I had to do this to make -z option really fine, since now you can make a |
| 16964 | curl fetch and use a local copy's time when downloading to that file, as |
| 16965 | in: |
| 16966 | |
| 16967 | curl -z dump -o dump remote.site.com/file.html |
| 16968 | |
| 16969 | This will only get the file if the remote one is newer than the local. |
| 16970 | I'm aware that this alters previous behaviour a little. Some scripts out |
| 16971 | there may depend on that the file is always touched... |
| 16972 | |
| 16973 | - Corrected a bug in the SSLv2/v3 selection. |
| 16974 | |
| 16975 | - Felix von Leitner requested that curl should be able to send |
| 16976 | "If-Modified-Since" headers, which indeed is a fair idea. I implemented it |
| 16977 | right away! Try -z <expression> where expression is a full GNU date |
| 16978 | expression or a file name to get the date from! |
| 16979 | |
| 16980 | Stephan Lagerholm (30 Apr 1999) |
| 16981 | - Pointed out a problem with the src/Makefile for FreeBSD. The RM variable |
| 16982 | isn't set and causes the make to fail. |
| 16983 | |
| 16984 | Daniel (26 April 1999) |
| 16985 | - Am I silly or what? Irving Wolfe pointed out to me that the curl version |
| 16986 | number was not set properly. Hasn't been since 5.6. This was due to a bug |
| 16987 | in my maketgz script! |
| 16988 | |
| 16989 | David Eriksson (25 Apr 1999) |
| 16990 | - Found a bug in cookies.c that made it crash at times. |
| 16991 | |
| 16992 | Version 5.7.1 |
| 16993 | |
| 16994 | Doug Kaufman (23 Apr 1999) |
| 16995 | - Brought two sunos 4 fixes. One of them being the hostip.c fix mentioned |
| 16996 | below and the other one a correction in include/stdcheaders.h |
| 16997 | |
| 16998 | - Added a paragraph about compiling with the US-version of openssl to the |
| 16999 | INSTALL file. |
| 17000 | |
| 17001 | Daniel |
| 17002 | - New mailing list address. Info updated on the web page as well as in the |
| 17003 | README file |
| 17004 | |
| 17005 | Greg Onufer (20 Apr 1999) |
| 17006 | - hostip.c didn't compile properly on SunOS 5.5.1. |
| 17007 | It needs an #include <sys/types.h> |
| 17008 | |
| 17009 | Version 5.7 |
| 17010 | |
| 17011 | Daniel (Apr 20 1999) |
| 17012 | - Decided to upload a non-beta version right now! |
| 17013 | |
| 17014 | - Made curl support any-length HTTP headers. The destination buffer is now |
| 17015 | simply enlarged every time it turns out to be too small! |
| 17016 | |
| 17017 | - Added the FAQ file to the archive. Still a bit smallish, but it is a |
| 17018 | start. |
| 17019 | |
| 17020 | Eric Thelin (15 Apr 1999) |
| 17021 | - Made -D accept '-' instead of filename to write to stdout. |
| 17022 | |
| 17023 | Version 5.6.3beta |
| 17024 | |
| 17025 | Daniel (Apr 12 1999) |
| 17026 | |
| 17027 | - Changed two #ifdef WIN32 to better #ifdef <errorcode> when connect()ing |
| 17028 | in url.c and ftp.c. Makes cygwin32 deal with them better too. We should |
| 17029 | try to get some decent win32-replacement there. Anyone? |
| 17030 | |
| 17031 | - The old -3/--crlf option is now ONLY --crlf! |
| 17032 | |
| 17033 | - I changed the "SSL fix" to a more lame one, but that doesn't remove as |
| 17034 | much functionality. Now I've enabled the lib to select what SSL version it |
| 17035 | should try first. Appearantly some older SSL-servers don't like when you |
| 17036 | talk v3 with them so you need to be able to force curl to talk v2 from the |
| 17037 | start. The fix dated April 6 and posted on the mailing list forced curl to |
| 17038 | use v2 at all times using a modern OpenSSL version, but we don't really |
| 17039 | want such a crippled solution. |
| 17040 | |
| 17041 | - Marc Boucher sent me a patch that corrected a math error for the |
| 17042 | "Curr.Speed" progress meter. |
| 17043 | |
| 17044 | - Eric Thelin sent me a patch that enables '-K -' to read a config file from |
| 17045 | stdin. |
| 17046 | |
| 17047 | - I found out we didn't close the file properly before so I added it! |
| 17048 | |
| 17049 | Daniel (Apr 9 1999) |
| 17050 | - Yu Xin pointed out a problem with ftp download resume. It didn't work at |
| 17051 | all! ;-O |
| 17052 | |
| 17053 | Daniel (Apr 6 1999) |
| 17054 | - Corrected the version string part generated for the SSL version. |
| 17055 | |
| 17056 | - I found a way to make some other SSL page work with openssl 0.9.1+ that |
| 17057 | previously didn't (ssleay 0.8.0 works with it though!). Trying to get |
| 17058 | some real info from the OpenSSL guys to see how I should do to behave the |
| 17059 | best way. SSLeay 0.8.0 shouldn't be that much in use anyway these days! |
| 17060 | |
| 17061 | Version 5.6.2beta |
| 17062 | |
| 17063 | Daniel (Apr 4 1999) |
| 17064 | - Finally have curl more cookie "aware". Now read carefully. This is how |
| 17065 | it works. |
| 17066 | To make curl read cookies from an already existing file, in plain header- |
| 17067 | format (like from the headers of a previous fetch) invoke curl with the |
| 17068 | -b flag like: |
| 17069 | |
| 17070 | curl -b file http://site/foo.html |
| 17071 | |
| 17072 | Curl will then use all cookies it finds matching. The old style that sets |
| 17073 | a single cookie with -b is still supported and is used if the string |
| 17074 | following -b includes a '=' letter, as in "-b name=daniel". |
| 17075 | |
| 17076 | To make curl read the cookies sent in combination with a location: (which |
| 17077 | sites often do) point curl to read a non-existing file at first (i.e |
| 17078 | to start with no existing cookies), like: |
| 17079 | |
| 17080 | curl -b nowhere http://site/setcookieandrelocate.html |
| 17081 | |
| 17082 | - Added a paragraph in the TODO file about the SSL problems recently |
| 17083 | reported. Evidently, some kind of SSL-problem curl may need to address. |
| 17084 | |
| 17085 | - Better "Location:" following. |
| 17086 | |
| 17087 | Douglas E. Wegscheid (Tue, 30 Mar 1999) |
| 17088 | - A subsecond display patch. |
| 17089 | |
| 17090 | Daniel (Mar 14 1999) |
| 17091 | - I've separated the version number of libcurl and curl now. To make |
| 17092 | things a little easier, I decided to start the curl numbering from |
| 17093 | 5.6 and the former version number known as "curl" is now the one |
| 17094 | set for libcurl. |
| 17095 | |
| 17096 | - Removed the 'enable-no-pass' from configure, I doubt anyone wanted |
| 17097 | that. |
| 17098 | |
| 17099 | - Made lots of tiny adjustments to compile smoothly with cygwin under |
| 17100 | win32. It's a killer for porting this to win32, bye bye VC++! ;-) |
| 17101 | Compiles and builds out-of-the-box now. See the new wordings in |
| 17102 | INSTALL for details. |
| 17103 | |
| 17104 | - Beginning experiments with downloading multiple document from a http |
| 17105 | server while remaining connected. |
| 17106 | |
| 17107 | Version 5.6beta |
| 17108 | |
| 17109 | Daniel (Mar 13 1999) |
| 17110 | - Since I've changed so much, I thought I'd just go ahead and implement the |
| 17111 | suggestion from Douglas E. Wegscheid. -D or --dump-header is now storing |
| 17112 | HTTP headers separately in the specified file. |
| 17113 | |
| 17114 | - Added new text to INSTALL on what to do to build this on win32 now. |
| 17115 | |
| 17116 | - Aaargh. I had to take a step back and prefix the shared #include files |
| 17117 | in the sources with "../include/" to please VC++... |
| 17118 | |
| 17119 | Daniel (Mar 12 1999) |
| 17120 | - Split the url.c source into many tiny sources for better readability |
| 17121 | and smaller size. |
| 17122 | |
| 17123 | Daniel (Mar 11 1999) |
| 17124 | - Started to change stuff for a move to make libcurl and a more separate |
| 17125 | curl application that uses the libcurl. Made the libcurl sources into |
| 17126 | the new lib directory while the curl application will remain in src as |
| 17127 | before. New makefiles, adjusted configure script and so. |
| 17128 | |
| 17129 | libcurl.a built quickly and easily. I better make a better interface to |
| 17130 | the lib functions though. |
| 17131 | |
| 17132 | The new root dir include/ is supposed to contain the public information |
| 17133 | about the new libcurl. It is a little ugly so far :-) |
| 17134 | |
| 17135 | |
| 17136 | Daniel (Mar 1 1999) |
| 17137 | - Todd Kaufmann sent me a good link to Netscape's cookie spec as well as the |
| 17138 | info that RFC 2109 specifies how to use them. The link is now in the |
| 17139 | README and the RFC in the RESOURCES. |
| 17140 | |
| 17141 | Daniel (Feb 23 1999) |
| 17142 | - Finally made configure accept --with-ssl to look for SSL libs and includes |
| 17143 | in the "standard" place /usr/local/ssl... |
| 17144 | |
| 17145 | Daniel (Feb 22 1999) |
| 17146 | - Verified that curl linked fine with OpenSSL 0.9.1c which seems to be |
| 17147 | the most recent. |
| 17148 | |
| 17149 | Henri Gomez (Fri Feb 5 1999) |
| 17150 | - Sent in an updated curl-ssl.spec. I still miss the script that builds an |
| 17151 | RPM automatically... |
| 17152 | |
| 17153 | Version 5.5.1 |
| 17154 | |
| 17155 | Mark Butler (27 Jan 1999) |
| 17156 | - Corrected problems in Download(). |
| 17157 | |
| 17158 | Danitel Stenberg (25 Jan 1999) |
| 17159 | - Jeremie Petit pointed out a few flaws in the source that prevented it from |
| 17160 | compile warning free with the native compiler under Digital Unix v4.0d. |
| 17161 | |
| 17162 | Version 5.5 |
| 17163 | |
| 17164 | Daniel Stenberg (15 Jan 1999) |
| 17165 | - Added Bjorns small text to the README about the DICT protocol. |
| 17166 | |
| 17167 | Daniel Stenberg (11 Jan 1999) |
| 17168 | - <jswink at softcom.net> reported about the win32-versioin: "Doesn't use |
| 17169 | ALL_PROXY environment variable". Turned out to be because of the static- |
| 17170 | buffer nature of the win32 environment variable calls! |
| 17171 | |
| 17172 | Bjorn Reese (10 Jan 1999) |
| 17173 | - I have attached a simple addition for the DICT protocol (RFC 2229). |
| 17174 | It performs dictionary lookups. The output still needs to be better |
| 17175 | formatted. |
| 17176 | |
| 17177 | To test it try (the exact format, and more examples are described in |
| 17178 | the RFC) |
| 17179 | |
| 17180 | dict://dict.org/m:hello |
| 17181 | dict://dict.org/m:hello::soundex |
| 17182 | |
| 17183 | |
| 17184 | Vicente Garcia (10 Jan 1999) |
| 17185 | - Corrected the progress meter for files larger than 20MB. |
| 17186 | |
| 17187 | Daniel Stenberg (7 Jan 1999) |
| 17188 | - Corrected the -t and -T help texts. They claimed to be FTP only. |
| 17189 | |
| 17190 | Version 5.4 |
| 17191 | |
| 17192 | Daniel Stenberg |
| 17193 | (7 Jan 1999) |
| 17194 | - Irving Wolfe reported that curl -s didn't always supress the progress |
| 17195 | reporting. It was the form post that autoamtically always switched it on |
| 17196 | again. This is now corrected! |
| 17197 | |
| 17198 | (4 Jan 1999) |
| 17199 | - Andreas Kostyrka suggested I'd add PUT and he helped me out to test it. If |
| 17200 | you use -t or -T now on a http or https server, PUT will be used for file |
| 17201 | upload. |
| 17202 | |
| 17203 | I removed the former use of -T with HTTP. I doubt anyone ever really used |
| 17204 | that. |
| 17205 | |
| 17206 | (4 Jan 1999) |
| 17207 | - Erik Jacobsen found a width bug in the mprintf() function. I corrected it |
| 17208 | now. |
| 17209 | |
| 17210 | (4 Jan 1999) |
| 17211 | - As John V. Chow pointed out to me, curl accepted very limited URL sizes. It |
| 17212 | should now accept path parts that are up to at least 4096 bytes. |
| 17213 | |
| 17214 | - Somehow I screwed up when applying the AIX fix from Gilbert Ramirez, so |
| 17215 | I redid that now. |
| 17216 | |
| 17217 | Version 5.3a (win32 only) |
| 17218 | |
| 17219 | Troy Engel |
| 17220 | - Corrected a win32 bug in the environment variable part. |
| 17221 | |
| 17222 | Version 5.3 |
| 17223 | |
| 17224 | Gilbert Ramirez Jr. (21 Dec 1998) |
| 17225 | - I have implemented the "quote" function of FTP clients. It allows you to |
| 17226 | send arbitrary commands to the remote FTP server. I chose the -Q/--quote |
| 17227 | command-line arguments. |
| 17228 | |
| 17229 | You can have more than one quoted string, and curl will apply them in |
| 17230 | order. This is what I use for my MVS upload: |
| 17231 | |
| 17232 | curl -B --crlf -Q "site lrecl=80" -Q "site blk=8000" -T file ftp://os390/test |
| 17233 | |
| 17234 | Curl will send the two quoted "site" commands in the proper order. |
| 17235 | |
| 17236 | - Made it compile smoothly on AIX. |
| 17237 | |
| 17238 | Gilbert Ramirez Jr. (18 Dec 1998) |
| 17239 | - Brought an MVS patch: -3/--mvs, for ftp upload to the MVS ftp server. |
| 17240 | |
| 17241 | Troy Engel (17 Dec 1998) |
| 17242 | - Brought a correction that fixes the win32 curl bug. |
| 17243 | |
| 17244 | Daniel Stenberg |
| 17245 | - A bug, pointed out to me by Dr H. T. Leung, caused curl to crash on the -A |
| 17246 | flag on certain systems. Actually, all systems should've! |
| 17247 | |
| 17248 | - Added a few defines to make directories/file names get build nicer (with _ |
| 17249 | instead of . and \ instead of / in win32). |
| 17250 | |
| 17251 | - steve <fisk at polar.bowdoin.edu> reported a weird bug that occured if the |
| 17252 | ftp server response line had a parenthesis on the line before the (size) |
| 17253 | info. I hope it works better now! |
| 17254 | |
| 17255 | Version 5.2.1 |
| 17256 | |
| 17257 | Steven G. Johnson (Dec 14, 1998) |
| 17258 | - Brought a fix that corrected a crash in 5.2 due to bad treatment of the |
| 17259 | environment variables. |
| 17260 | |
| 17261 | Version 5.2 |
| 17262 | |
| 17263 | Daniel Stenberg (Dec 14, 1998) |
| 17264 | - Rewrote the mkhelp script and now, the mkhelp.pl script generates the |
| 17265 | hugehelp.c file from the README *and* the man page file curl.1. By using |
| 17266 | both files, I no longer need to have double information in both the man |
| 17267 | page and the README as well. So, win32-users will only have the hugehelp.c |
| 17268 | file for all info, but then, they download the plain binary most times |
| 17269 | anyway. |
| 17270 | |
| 17271 | - gcc2.8.1 with the -Wall flag complaints a lot on subscript has type `char' |
| 17272 | if I don't explicitly typecast the argument to isdigit() or isspace() to |
| 17273 | int. So I did to compile warning free with that too. |
| 17274 | |
| 17275 | - Added checks for 'long double' and 'long long' in the configure script. I |
| 17276 | need those for the mprintf.c source to compile well on non long long |
| 17277 | comforming systems! |
| 17278 | |
| 17279 | Version 5.1 (not publicly released) |
| 17280 | |
| 17281 | Daniel Stenberg (Dec 10, 1998) |
| 17282 | - I got a request for a pre-compiled NT Alpha version. Anyone? |
| 17283 | |
| 17284 | - Added Lynx/CERN www lib proxy environment variable support. That means curl |
| 17285 | now reads and understands the following environment variables: |
| 17286 | |
| 17287 | HTTP_PROXY, HTTPS_PROXY, FTP_PROXY, GOPHER_PROXY |
| 17288 | |
| 17289 | They should be set for protocol-specific proxies. General proxy should be |
| 17290 | set with |
| 17291 | |
| 17292 | ALL_PROXY |
| 17293 | |
| 17294 | And a comma-separated list of host names that shouldn't go through any |
| 17295 | proxy is set in (only an asterisk, '*' matches all hosts). |
| 17296 | |
| 17297 | NO_PROXY |
| 17298 | |
| 17299 | The usage of the -x/--proxy flag overrides the environment variables. |
| 17300 | |
| 17301 | - Proxy can now be specified with a procotol:// prefix. |
| 17302 | |
| 17303 | - Wrote the curl.1 man page. |
| 17304 | |
| 17305 | - Introduced a whole new dynamic buffer system for all sprintf()s. It is |
| 17306 | based on the *printf() package by yours truly and Bjorn Reese. Hopefully, |
| 17307 | there aren't that many buffer overflow risks left now. |
| 17308 | |
| 17309 | - Ah, I should mention I've compiled and built curl successfully under |
| 17310 | solaris 2.6 with gcc now, gcc 2.7.2 won't work but 2.8.1 did ok. |
| 17311 | |
| 17312 | Oren Tirosh (Dec 3, 1998) |
| 17313 | - Brought two .spec files, to use when creating (Linux) Redhat style RPM |
| 17314 | packages. They're named curl.spec and curl-ssl.spec. |
| 17315 | |
| 17316 | Troy Engel |
| 17317 | - Supplied the src/Makefile.vc6 for easy compiling with VC++ under Win32. |
| 17318 | |
| 17319 | Version 5.0 |
| 17320 | |
| 17321 | Daniel Stenberg (Dec 1, 1998) |
| 17322 | - Not a single bug report in ages. |
| 17323 | - Corrected getpass.c and main.c to compile warning and error free with the |
| 17324 | Win32 VC++ crap. |
| 17325 | |
| 17326 | Version 5.0 beta 24 |
| 17327 | |
| 17328 | Daniel Stenberg (Nov 20, 1998) |
| 17329 | |
| 17330 | HOW TO BUILD A RELEASE ARCHIVE: |
| 17331 | |
| 17332 | * Pre-requisite software: |
| 17333 | What To build what Reads data from |
| 17334 | ==== ============= =============== |
| 17335 | GNU automake Makefile.in, aclocal.m4 configure.in |
| 17336 | GNU make(1) - " - |
| 17337 | GNU gcc(1) - " - |
| 17338 | GNU autoconf configure configure.in |
| 17339 | GNU autoheader(2) config.h.in configure.in, acconfig.h |
| 17340 | |
| 17341 | * Make sure all files that should be part of the archive are put in FILES. |
| 17342 | |
| 17343 | * Run './maketgz' and enter version number of the new to become archive. |
| 17344 | |
| 17345 | maketgz does: |
| 17346 | |
| 17347 | - Enters the newly created version number in url.h. |
| 17348 | - (If you don't have automake, this script will warn about that, but unless |
| 17349 | you have changed the Makefile.am files, that is nothing to care about.) |
| 17350 | If you have it, it'll run it. |
| 17351 | - If you have autoconf, the configure.in will be edited to get the newly |
| 17352 | created version number and autoconf will be run. |
| 17353 | - Creates a new directory named curl-<version>. (Actually, it uses the base |
| 17354 | name of the current directory up to the first '-'.) |
| 17355 | - Copies all files mentioned in FILES to the new directory. Saving |
| 17356 | permissions and directory structure. |
| 17357 | - Uses tar to create an archive of it all, named curl-<version>.tar.gz |
| 17358 | - gzips the archive |
| 17359 | - Removes the new directory and all its contents. |
| 17360 | |
| 17361 | * When done, you have an archive stored in your directory named |
| 17362 | curl-<version>.tar.gz. |
| 17363 | |
| 17364 | Done! |
| 17365 | |
| 17366 | (1) They're required to make automake run properly. |
| 17367 | (2) It is distributed as a part of the GNU autoconf archive. |
| 17368 | |
| 17369 | Daniel Stenberg (Nov 18, 1998) |
| 17370 | - I changed the TAG-system. If you ever used urlget() from this package in |
| 17371 | another product, you need to recompile with the new headers. I did this |
| 17372 | new stuff to better deal with different compilers and system with different |
| 17373 | variable sizes. I think it makes it a little more portable. This proves |
| 17374 | to compile warning free with the problematic IRIX compiler! |
| 17375 | - Win32 compiled with a silly error. Corrected now. |
| 17376 | - Brian Chaplin reported yet another problem in |
| 17377 | multiline FTP responses. I've tried to correct it. I mailed him a new |
| 17378 | version and I hope he gets back soon with positive feedback! |
| 17379 | - Improved the 'maketgz' to create a temporary directory tree which it makes |
| 17380 | an archive from instead of the previous renaming of the current one. |
| 17381 | - Mailing list opened (see README). |
| 17382 | - Made -v more verbose on the PASV section of ftp transfers. Now it tells |
| 17383 | host name and IP of the new host (and port number). I also added a section |
| 17384 | about PORT vs PASV in the README. |
| 17385 | |
| 17386 | Version 5.0 beta 21 |
| 17387 | |
| 17388 | Angus Mackay (Nov 15, 1998) |
| 17389 | - Introduced automake stuff. |
| 17390 | |
| 17391 | Daniel Stenberg (Nov 13, 1998) |
| 17392 | - Just made a successful GET of a document from an SSL-server using my own |
| 17393 | private certificate for authentication! The certificate has to be in PEM |
| 17394 | format. You do that the easiest way (although not *that* easy) by |
| 17395 | downloading the SSLyeay PKCS#12-patch by Dr Stephen N. Henson from his site |
| 17396 | at: http://www.drh-consultancy.demon.co.uk/. Using his tool, you can |
| 17397 | convert any modern Netscape or (even) MSIE certificate to PEM-format. Use |
| 17398 | it with 'curl -E <certificate:password> https://site.com'. If this isn't a |
| 17399 | cool feature, then I don't know what cool features look like! ;-) |
| 17400 | - Working slowly on telnet connections. #define TRY_TELNET to try it out. |
| 17401 | (curl -u user:passwd "telnet://host.com/cat .login" is one example) I do |
| 17402 | have problem to define how it should work. The prime purpose for this must |
| 17403 | be to get (8bit clean) files via telnet, and it really isn't that easy to |
| 17404 | get files this way. Still having problems with \n being converted to \r\n. |
| 17405 | |
| 17406 | Angus Mackay (Nov 12, 1998) |
| 17407 | - Corrected another bug in the long parameter name parser. |
| 17408 | - Modified getpass.c (NOTE: see the special licensing in the top of that |
| 17409 | source file). |
| 17410 | |
| 17411 | Daniel Stenberg (Nov 12, 1998) |
| 17412 | - We may have removed the silly warnings from url.c when compiled under IRIX. |
| 17413 | Thanks again to Bjorn Reese and Martin Staael. |
| 17414 | - Wrote formfind.pl which is a new perl script intended to help you find out |
| 17415 | how a FORM submission should be done. This needs a little more work to get |
| 17416 | really good. |
| 17417 | |
| 17418 | Daniel Stenberg (Nov 11, 1998) |
| 17419 | - Made the HTTP header-checker accept white spaces before the HTTP/1.? line. |
| 17420 | Appearantly some proxies/sites add such at times (my test proxy did when I |
| 17421 | downloaded a gopher page with it)! |
| 17422 | - Moved the former -h to -M and made -h show the short help text instead. I |
| 17423 | had to enable a forced help text option. Now an even shorter help text will |
| 17424 | be presented when an unknown option and similar, is used. |
| 17425 | - stdcheaders.h didn't work with IRIX 6.4 native cc compiler. I hope my |
| 17426 | changes don't make other versions go nuts instead. |
| 17427 | |
| 17428 | Daniel Stenberg (Nov 10, 1998) |
| 17429 | - Added a weird check in the configure script to check for the silly AIX |
| 17430 | warnings about my #define strcasecmp() stuff. I do that define to prevent |
| 17431 | me and other contributors to accidentaly use that function name instead |
| 17432 | of strequal()... |
| 17433 | - I bugfixed Angus's getpass.c very little. |
| 17434 | - Fixed the verbose flag names to getopt-style, i.e 'curl --loc' will be |
| 17435 | sufficient instead of --location as "loc" is a unique prefix. Also, anything |
| 17436 | after a '--' is treated as an URL. So if you do have a host with a weeeird |
| 17437 | name you can do 'curl -- -host.com'. |
| 17438 | - Another getopt-adjust; curl now accepts flags after the URL on the command |
| 17439 | line. 'curl www.foo.com -O' is perfectly valid. |
| 17440 | - Corrected the .curlrc parser so that strtok() is no longer used and I |
| 17441 | believe it works better. Even URLs can be specified in it now. |
| 17442 | |
| 17443 | Angus Mackay (Nov 9, 1998) |
| 17444 | - Replaced getpass.c with a newly written one, not under GPL license |
| 17445 | - Changed OS to a #define in config.h instead of compiler flag |
| 17446 | - Makefile now uses -DHAVE_CONFIG_H |
| 17447 | |
| 17448 | Daniel Stenberg (Nov 9, 1998) |
| 17449 | - Ok, I expanded the tgz-target to update the version string on each occation |
| 17450 | I build a release archive! |
| 17451 | - I reacted on Angus Mackay's initiative and remade the parameter parser to |
| 17452 | be more getopt compliant. Curl now supports "merged" flags as in |
| 17453 | curl -lsv ftp.site.com |
| 17454 | Do note that I had to move three short-names of the options. Parameters |
| 17455 | that needs an additional string such as -x must be stand-alone or the |
| 17456 | last in a merged sequence: |
| 17457 | curl -lsx my-proxy ftp.site.com |
| 17458 | is ok, but using the flags in a different order like '-lxs' would cause |
| 17459 | unexpected results (as the 's' option would be skipped). |
| 17460 | - I've changed the headers in all files that are subject to the MozPL |
| 17461 | license, as they are supposed to look like when conforming. |
| 17462 | - Made the configure script make the config.h. The former config.h is now |
| 17463 | setup.h. |
| 17464 | - The RESOURCES and TODO files have been added to the archive. |
| 17465 | |
| 17466 | Angus Mackay (Nov 5, 1998) |
| 17467 | - Fixed getpass.c and various configure stuff |
| 17468 | |
| 17469 | Daniel Stenberg (Nov 3, 1998) |
| 17470 | - Use -H/--header for custom HTTP-headers. Lets you pass on your own |
| 17471 | specified headers to the remote server. I wouldn't recommend trying to use |
| 17472 | a header with a defined usage according to standards. Use this flag once |
| 17473 | for every custom header you want to add. |
| 17474 | - Use -B/--ftp-ascii to force ftp to use ASCII mode when transfering files. |
| 17475 | - Corrected the 'getlinks.pl' script, I accidentally left my silly proxy |
| 17476 | usage in there! Since the introduction of the .curlrc file, it is easier to |
| 17477 | write scripts that use curl since proxies and stuff should be in the |
| 17478 | .curlrc file anyway. |
| 17479 | - Introducing the new -F flag for HTTP POST. It supports multipart/form-data |
| 17480 | which means it is gonna be possible to upload files etc through HTTP POST. |
| 17481 | Shiraz Kanga asked for the feature and my brother, |
| 17482 | Björn Stenberg helped me design the user |
| 17483 | interface for this beast. This feature requires quite some docs, |
| 17484 | since it has turned out not only quite capable, but also complicated! :-) |
| 17485 | - A note here, since I've received mail about it. SSLeay versions prior to |
| 17486 | 0.8 will *not* work with curl! |
| 17487 | - Wil Langford reported a bug that occurred since curl |
| 17488 | did not properly use CRLF when issuing ftp commands. I fixed it. |
| 17489 | - Rearranged the order config files are read. .curlrc is now *always* read |
| 17490 | first and before the command line flags. -K config files then act as |
| 17491 | additional config items. |
| 17492 | - Use -q AS THE FIRST OPTION specified to prevent .curlrc from being read. |
| 17493 | - You can now disable a proxy by using -x "". Useful if the .curlrc file |
| 17494 | specifies a proxy and you wanna fetch something without going through |
| 17495 | that. |
| 17496 | - I'm thinking of dropping the -p support. Its really not useful since ports |
| 17497 | could (and should?) be specified as :<port> appended on the host name |
| 17498 | instead, both in URLs and to proxy host names. |
| 17499 | - Martin Staael reports curl -L bugs under Windows NT |
| 17500 | (test with URL http://come.to/scsde). This bug is not present in this |
| 17501 | version anymore. |
| 17502 | - Added support for the weird FTP URL type= thing. You can download a file |
| 17503 | using ASCII transfer by appending ";type=A" to the right of it. Other |
| 17504 | available types are type=D for dir-list (NLST) and type=I for binary |
| 17505 | transfer. I can't say I've ever seen anyone use this kind of URL though! |
| 17506 | :-) |
| 17507 | - Troy Engel pointed out a bug in my getenv("HOME") |
| 17508 | usage for win32 systems. I introduce getenv.c to better cope with |
| 17509 | this. Mr Engel helps me with the details around that... |
| 17510 | - A little note to myself and others, I should make the win32-binary built |
| 17511 | with SSL support... |
| 17512 | - Ryan Nelson sent me comments about building curl |
| 17513 | with SSL under FreeBSD. See the Makefile for details. Using the configure |
| 17514 | script, it should work better and automatically now... |
| 17515 | - Cleaned up in the port number mess in the source. No longer stores and uses |
| 17516 | proxy port number separate from normal port number. |
| 17517 | - 'configure' script working. Confirmed compiles on: |
| 17518 | Host SSL Compiler |
| 17519 | SunOS 5.5 no gcc |
| 17520 | SunOS 5.5.1 yes gcc |
| 17521 | SunOS 5.6 no cc (with gcc, it has the "gcc include files" problem) |
| 17522 | SunOS 4.1.3 no gcc (without ANSI C headers) |
| 17523 | SunOS 4.1.2 no gcc (native compiler failed) |
| 17524 | Linux 2.0.18 no gcc |
| 17525 | Linux 2.0.32 yes gcc |
| 17526 | Linux 2.0.35 no gcc (with glibc) |
| 17527 | IRIX 6.2 no gcc (cc compiles generate a few warnings) |
| 17528 | IRIX 6.4 no cc (generated warnings though) |
| 17529 | Win32 no Borland |
| 17530 | OSF4.0 no ? |
| 17531 | |
| 17532 | - Ooops. The 5beta (and 4.10) under win32 failed if the HOME variable wasn't |
| 17533 | set. |
| 17534 | - When using a proxy, curl now guesses and uses the protocol part in cases |
| 17535 | like: |
| 17536 | curl -x proxy:80 www.site.com |
| 17537 | Proxies normally go nuts unless http:// is prepended to the host name, so |
| 17538 | if curl is used like this, it guesses protocol and appends the protocol |
| 17539 | string before passing it to the proxy. It already did this when used |
| 17540 | without proxy. |
| 17541 | - Better port usage with SSL through proxy now. If you specified a different |
| 17542 | https-port when accessing through a proxy, it didn't use that number |
| 17543 | correctly. I also rewrote the code that parses the stuff read from the |
| 17544 | proxy when you wanna connect through it with SSL. |
| 17545 | - Bjorn Reese helped me work around one of the compiler |
| 17546 | warnings on IRIX native cc compiles. |
| 17547 | |
| 17548 | Version 4.10 (Oct 26, 1998) |
| 17549 | Daniel Stenberg |
| 17550 | - John A. Bristor suggested a config file switch, |
| 17551 | and since I've been having that idea kind of in the background for a long |
| 17552 | time I rewrote the parameter parsing function a little and now I introduce |
| 17553 | the -K/--config flag. I also made curl *always* (unless -K is used) try to |
| 17554 | load the .curlrc file for command line parameters. The syntax for the |
| 17555 | config file is the standard command line argument style. Details in 'curl |
| 17556 | -h' or the README. |
| 17557 | - I removed the -k option. Keep-alive isn't really anything anyone would |
| 17558 | want to enable with curl anyway. |
| 17559 | - Martin Staael helped me add the 'irix' target. Now |
| 17560 | "make irix" should build curl successfully on non-gcc SGI machines. |
| 17561 | - Single switches now toggle behaviours. I.e if you use -v -v the second |
| 17562 | will switch off the verbose mode the first one enabled. This is so that |
| 17563 | you can disable a default setting a .curlrc file enables etc. |
| 17564 | |
| 17565 | Version 4.9 (Oct 7, 1998) |
| 17566 | Daniel Stenberg |
| 17567 | - Martin Staael suggested curl would support cookies. |
| 17568 | I added -b/--cookie to enable free-text cookie data to be passed. There's |
| 17569 | also a little blurb about general cookie stuff in the README/help text. |
| 17570 | - dmh <dmh at jet.es> suggested HTTP resume capabilities. Although you could |
| 17571 | manually get curl to resume HTTP documents, I made the -c resume flag work |
| 17572 | for HTTP too (unless -r is used too, which would be very odd anyway). |
| 17573 | - Added checklinks.pl to the archive. It is a still experimental perl script |
| 17574 | that checks all links of a web page by using curl. |
| 17575 | - Rearranged the archive hierarchy a little. Build the executable in the |
| 17576 | src/ dir from now on! |
| 17577 | - Version 4.9 and hereafter, is no longer released under the GPL license. |
| 17578 | I have now updated the LEGAL file etc and now this is released using the |
| 17579 | Mozilla Public License to avoid the plague known as "the GPL virus". You |
| 17580 | must make the source available if you decide to change and/or redistribute |
| 17581 | curl, but if you decide to use curl within something else you do not need |
| 17582 | to offer the world the source to that too. |
| 17583 | - Curl did not like HTTP servers that sent no headers at all on a GET |
| 17584 | request. It is a violation of RFC2068 but appearantly some servers do |
| 17585 | that anyway. Thanks to Gordon Beaton for the report! |
| 17586 | - -L/--location was added after a suggestion from Martin Staael. This makes |
| 17587 | curl ATTEMPT to follow the Location: redirect if one is present in the HTTP |
| 17588 | headers. If -i or -I is used with this flag, you will see headers from all |
| 17589 | sites the Location: points to. Do note that the first server can point to a |
| 17590 | second that points to a third etc. It seems the Location: parameter (said |
| 17591 | to be an AbsoluteURI in RFC2068) isn't always absolute.. :-/ Anyway, I've |
| 17592 | made curl ATTEMPT to do the best it can to deal with the reality. |
| 17593 | - Added getlinks.pl to the archive. getlinks.pl selectively downloads |
| 17594 | files that a web page links to. |
| 17595 | |
| 17596 | Version 4.8.4 |
| 17597 | Daniel Stenberg |
| 17598 | - As Julian Romero Nieto reported, curl reported wrong version number. |
| 17599 | - As Teemu Yli-Elsila pointed out, the win32 version of 4.8 (and probably all |
| 17600 | other versions for win32) didn't work with binary files since I'm too used |
| 17601 | to the Unix style fopen() where binary and text don't differ... |
| 17602 | - Ralph Beckmann brought me some changes that lets curl compile error and |
| 17603 | warning free with -Wall -pedantic with g++. I also took the opportunity to |
| 17604 | clean off some unused variables and similar. |
| 17605 | - Ralph Beckmann made me aware of a really odd bug now corrected. When curl |
| 17606 | read a set of headers from a HTTP server, divided into more than one read |
| 17607 | and the first read showed a full line *exactly* (i.e ending with a |
| 17608 | newline), curl did not behave well. |
| 17609 | |
| 17610 | Version 4.8.3 |
| 17611 | Daniel Stenberg |
| 17612 | - I was too quick to release 4.8.2 with too little testing. One of the |
| 17613 | changes is now reverted slightly to the 4.8.1 way since 4.8.2 couldn't |
| 17614 | upload files. I still think both problems corrected in 4.8.2 remain |
| 17615 | corrected. Reported by Julian Romero Nieto. |
| 17616 | |
| 17617 | Version 4.8.2 |
| 17618 | Daniel Stenberg |
| 17619 | - Bernhard Iselborn reported two FTP protocol errors curl did. They're now |
| 17620 | corrected. Both appeared when getting files from a MS FTP server! :-) |
| 17621 | |
| 17622 | Version 4.8.1 |
| 17623 | Daniel Stenberg |
| 17624 | - Added a last update of the progress meter when the transfer is done. The |
| 17625 | final output on the screen didn't have to be the final size transfered |
| 17626 | which made it sometimes look odd. |
| 17627 | - Thanks to David Long I got rid of a silly bug that happened if a HTTP-page |
| 17628 | had nothing but header. Appearantly Solaris deals with negative sizes in |
| 17629 | fwrite() calls a lot better than Linux does... =B-] |
| 17630 | |
| 17631 | Version 4.8 (Aug 31, 1998) |
| 17632 | Daniel Stenberg |
| 17633 | - Continue FTP file transfer. -c is the switch. Note that you need to |
| 17634 | specify a file name if you wanna resume a download (you can't resume a |
| 17635 | download sent to stdout). Resuming upload may be limited by the server |
| 17636 | since curl is then using the non-RFC959 command SIZE to get the size of |
| 17637 | the target file before upload begins (to figure out which offset to |
| 17638 | use). Use -C to specify the offset yourself! -C is handy if you're doing |
| 17639 | the output to something else but a plain file or when you just want to get |
| 17640 | the end of a file. |
| 17641 | - recursiveftpget.pl now features a maximum recursive level argument. |
| 17642 | |
| 17643 | Version 4.7 |
| 17644 | Daniel Stenberg |
| 17645 | - Added support to abort a download if the speed is below a certain amount |
| 17646 | (speed-limit) bytes per second for a certain (speed-time) time. |
| 17647 | - Wrote a perl script 'recursiveftpget.pl' to recursively use curl to get a |
| 17648 | whole ftp directory tree. It is meant as an example of how curl can be |
| 17649 | used. I agree it isn't the wisest thing to do to make a separate new |
| 17650 | connection for each file and directory for this. |
| 17651 | |
| 17652 | Version 4.6 |
| 17653 | Daniel Stenberg |
| 17654 | - Added a first attempt to optionally parse the .netrc file for login user |
| 17655 | and password. If used with http, it enables user authentication. -n is |
| 17656 | the new switch. |
| 17657 | - Removed the extra newlines on the default user-agent string. |
| 17658 | - Corrected the missing ftp upload error messages when it failed without the |
| 17659 | verbose flag set. Gary W. Swearingen found it. |
| 17660 | - Now using alarm() to enable second-precision timeout even on the name |
| 17661 | resolving/connecting phase. The timeout is although reset after that first |
| 17662 | sequence. (This should be corrected.) Gary W. Swearingen reported. |
| 17663 | - Now spells "Unknown" properly, as in "Unknown option 'z'"... :-) |
| 17664 | - Added bug report email address in the README. |
| 17665 | - Added a "current speed" field to the progress meter. It shows the average |
| 17666 | speed the last 5 seconds. The other speed field shows the average speed of |
| 17667 | the entire transfer so far. |
| 17668 | |
| 17669 | Version 4.5.1 |
| 17670 | Linas Vepstas |
| 17671 | - SSL through proxy fix |
| 17672 | - Added -A to allow User-Agent: changes |
| 17673 | |
| 17674 | Daniel Stenberg |
| 17675 | - Made the -A work when SSL-through-proxy. |
| 17676 | |
| 17677 | Version 4.5 |
| 17678 | Linas Vepstas |
| 17679 | - More SSL corrections |
| 17680 | - I've added a port to AIX. |
| 17681 | - running SSL through a proxy causes a chunk of code to be executred twice. |
| 17682 | one of those blocks needs to be deleted. |
| 17683 | |
| 17684 | Daniel Stenberg |
| 17685 | - Made -i and -I work again |
| 17686 | |
| 17687 | Version 4.4 |
| 17688 | Linas Vepstas |
| 17689 | - -x can now also specify proxyport when used as in 'proxyhost:proxyport' |
| 17690 | - SSL fixes |
| 17691 | |
| 17692 | Version 4.3 |
| 17693 | Daniel Stenberg |
| 17694 | - Adjusted to compile under win32 (VisualC++ 5). The -P switch does not |
| 17695 | support network interface names in win32. I couldn't figure out how! |
| 17696 | |
| 17697 | Version 4.2 |
| 17698 | Linas Vepstas / Sampo Kellomaki |
| 17699 | - Added SSL / SSLeay support (https://) |
| 17700 | - Added the -T usage for HTTP POST. |
| 17701 | |
| 17702 | Daniel Stenberg |
| 17703 | - Bugfixed the SSL implementation. |
| 17704 | - Made -P a lot better to use other IP addresses. It now accepts a following |
| 17705 | parameter that can be either |
| 17706 | interface - i.e "eth0" to specify which interface's IP address you |
| 17707 | want to use |
| 17708 | IP address - i.e "192.168.10.1" to specify exact IP number |
| 17709 | host name - i.e "my.host.domain" to specify machine |
| 17710 | "-" - (any single-letter string) to make it pick the machine's |
| 17711 | default |
| 17712 | - The Makefile is now ready to compile for solaris, sunos4 and linux right |
| 17713 | out of the box. |
| 17714 | - Better generated version string seen with 'curl -V' |
| 17715 | |
| 17716 | Version 4.1 |
| 17717 | Daniel Stenberg |
| 17718 | - The IP number returned by the ftp server as a reply to PASV does no longer |
| 17719 | have to DNS resolve. In fact, no IP-number-only addresses have to anymore. |
| 17720 | - Binds better to available port when -P is used. |
| 17721 | - Now LISTs ./ instead of / when used as in ftp://ftp.funet.fi/. The reason |
| 17722 | for this is that exactly that site, ftp.funet.fi, does not allow LIST / |
| 17723 | while LIST ./ is fine. Any objections? |
| 17724 | |
| 17725 | Version 4 (1998-03-20) |
| 17726 | Daniel Stenberg |
| 17727 | - I took another huge step and changed both version number and project name! |
| 17728 | The reason for the new name is that there are just one too many programs |
| 17729 | named urlget already and this program already can a lot more than merely |
| 17730 | getting URLs, and the reason for the version number is that I did add the |
| 17731 | pretty big change in -P and since I changed name I wanted to start with |
| 17732 | something fresh! |
| 17733 | - The --style flags are working better now. |
| 17734 | - Listing directories with FTP often reported that the file transfer was |
| 17735 | incomplete. Wrong assumptions were too common for directories, why no |
| 17736 | size will be attempted to get compared on them from now on. |
| 17737 | - Implemented the -P flag that let's the ftp control issue a PORT command |
| 17738 | instead of the standard PASV. |
| 17739 | - -a for appending FTP uploads works. |
| 17740 | |
| 17741 | *************************************************************************** |
| 17742 | |
| 17743 | Version 3.12 (14 March 1998) |
| 17744 | Daniel Stenberg |
| 17745 | - End-of-header tracking still lacked support for \r\n or just \n at the |
| 17746 | end of the last header line. |
| 17747 | Sergio Barresi |
| 17748 | - Added PROXY authentication. |
| 17749 | Rafael Sagula |
| 17750 | - Fixed some little bugs. |
| 17751 | |
| 17752 | Version 3.11 |
| 17753 | Daniel Stenberg |
| 17754 | - The header parsing was still not correct since the 3.2 modification... |
| 17755 | |
| 17756 | Version 3.10 |
| 17757 | Daniel Stenberg |
| 17758 | - 3.7 and 3.9 were simultaneously developed and merged into this version. |
| 17759 | - FTP upload did not work correctly since 3.2. |
| 17760 | |
| 17761 | Version 3.9 |
| 17762 | Rafael Sagula |
| 17763 | - Added the "-e <url> / --referer <url>" option where we can specify |
| 17764 | the referer page. Obviously, this is necessary only to fool the |
| 17765 | server, but... |
| 17766 | |
| 17767 | Version 3.7 |
| 17768 | Daniel Stenberg |
| 17769 | - Now checks the last error code sent from the ftp server after a file has |
| 17770 | been received or uploaded. Wasn't done previously. |
| 17771 | - When 'urlget <host>' is used without a 'protocol://' first in the host part, |
| 17772 | it now checks for host names starting with ftp or gopher and if it does, |
| 17773 | it uses that protocol by default instead of http. |
| 17774 | |
| 17775 | Version 3.6 |
| 17776 | Daniel Stenberg |
| 17777 | - Silly mistake made the POST bug. This has now also been tested to work with |
| 17778 | proxy. |
| 17779 | |
| 17780 | Version 3.5 |
| 17781 | Daniel Stenberg |
| 17782 | - Highly inspired by Rafael Sagula's changes to the 3.1 that added an almost |
| 17783 | functional POST, I applied his changes into this version and made them work. |
| 17784 | (It seems POST requires the Content-Type and Content-Length headers.) It is |
| 17785 | now usable with the -d switch. |
| 17786 | |
| 17787 | Version 3.3 - 3.4 |
| 17788 | Passed to avoid confusions |
| 17789 | |
| 17790 | Version 3.2 |
| 17791 | Daniel Stenberg |
| 17792 | - Major rewrite of two crucial parts of this code: upload and download. |
| 17793 | They are both now using a select() switch, that allows much better |
| 17794 | progress meter and time control. |
| 17795 | - alarm() usage removed completely |
| 17796 | - FTP get can now list directory contents if the path ends with a slash '/'. |
| 17797 | Urlget on a ftp-path that doesn't end with a slash means urlget will |
| 17798 | attempt getting it as a file name. |
| 17799 | - FTP directory view supports -l for "list-only" which lists the file names |
| 17800 | only. |
| 17801 | - All operations support -m for max time usage in seconds allowed. |
| 17802 | - FTP upload now allows the size of the uploaded file to be provided, and |
| 17803 | thus it can better check it actually uploaded the whole file. It also |
| 17804 | makes the progress meter for uploads much better! |
| 17805 | - Made the parameter parsing fail in cases like 'urlget -r 900' which |
| 17806 | previously tried to connect to the host named '900'. |
| 17807 | |
| 17808 | Version 3.1 |
| 17809 | Kjell Ericson |
| 17810 | - Pointed out how to correct the 3 warnings in win32-compiles. |
| 17811 | |
| 17812 | Daniel Stenberg |
| 17813 | - Removed all calls to exit(). |
| 17814 | - Made the short help text get written to stdout instead of stderr. |
| 17815 | - Made this file instead of keeping these comments in the source. |
| 17816 | - Made two callback hooks, that enable external programs to use urlget() |
| 17817 | easier and to grab the output/offer the input easier. |
| 17818 | - It is evident that Win32-compiles are painful. I watched the output from |
| 17819 | the Borland C++ v5 and it was awful. Just ignore all those warnings. |
| 17820 | |
| 17821 | Version 3.0 |
| 17822 | Daniel Stenberg |
| 17823 | - Added FTP upload capabilities. The name urlget gets a bit silly now |
| 17824 | when we can put too... =) |
| 17825 | - Restructured the source quite a lot. |
| 17826 | Changed the urlget() interface. This way, we will survive changes much |
| 17827 | better. New features can come and old can be removed without us needing |
| 17828 | to change the interface. I've written a small explanation in urlget.h |
| 17829 | that explains it. |
| 17830 | - New flags include -t, -T, -O and -h. The -h text is generated by the new |
| 17831 | mkhelp script. |
| 17832 | |
| 17833 | Version 2.9 |
| 17834 | Remco van Hooff |
| 17835 | - Added a fix to make it compile smoothly on Amiga using the SAS/C |
| 17836 | compiler. |
| 17837 | |
| 17838 | Daniel Stenberg |
| 17839 | - Believe it or not, but the STUPID Novell web server seems to require |
| 17840 | that the Host: keyword is used, so well I use it and I (re-introduce) the |
| 17841 | urlget User-Agent:. I still have to check that this Host: usage works with |
| 17842 | proxies... 'Host:' is required for HTTP/1.1 GET according to RFC2068. |
| 17843 | |
| 17844 | Version 2.8 |
| 17845 | Rafael Sagula |
| 17846 | - some little modifications |
| 17847 | |
| 17848 | Version 2.7 |
| 17849 | Daniel Stenberg |
| 17850 | - Removed the -l option and introduced the -f option instead. Now I'll |
| 17851 | rewrite the former -l kludge in an external script that'll use urlget to |
| 17852 | fetch multipart files like that. |
| 17853 | - '-f' is introduced, it means Fail without output in case of HTTP server |
| 17854 | errors (return code >=400). |
| 17855 | - Added support for -r, ranges. Specify which part of a document you |
| 17856 | want, and only that part is returned. Only with HTTP/1.1-servers. |
| 17857 | - Split up the source in 3 parts. Now all pure URL functions are in |
| 17858 | urlget.c and stuff that deals with the stand-alone program is in main.c. |
| 17859 | - I took a few minutes and wrote an embryo of a README file to explain |
| 17860 | a few things. |
| 17861 | |
| 17862 | Version 2.6 |
| 17863 | Daniel Stenberg |
| 17864 | - Made the -l (loop) thing use the new CONF_FAILONERROR which makes |
| 17865 | urlget() return error code if non-successful. It also won't output anything |
| 17866 | then. Now finally removed the HTTP 1.0 and error 404 dependencies. |
| 17867 | - Added -I which uses the HEAD request to get the header only from a |
| 17868 | http-server. |
| 17869 | |
| 17870 | Version 2.5 |
| 17871 | Rafael Sagula |
| 17872 | - Made the progress meter use HHH:MM:SS instead of only seconds. |
| 17873 | |
| 17874 | Version 2.4 |
| 17875 | Daniel Stenberg |
| 17876 | - Added progress meter. It appears when downloading > BUFFER SIZE and |
| 17877 | mute is not selected. I found out that when downloading large files from |
| 17878 | really really slow sites, it is desirable to know the status of the |
| 17879 | download. Do note that some downloads are done unawaring of the size, which |
| 17880 | makes the progress meter less thrilling ;) If the output is sent to a tty, |
| 17881 | the progress meter is shut off. |
| 17882 | - Increased buffer size used for reading. |
| 17883 | - Added length checks in the user+passwd parsing. |
| 17884 | - Made it grok user+passwd for HTTP fetches. The trick is to base64 |
| 17885 | encode the user+passwd and send an extra header line. Read chapter 11.1 in |
| 17886 | RFC2068 for details. I added it to be used just like the ftp one. To get a |
| 17887 | http document from a place that requires user and password, use an URL |
| 17888 | like: |
| 17889 | |
| 17890 | http://user:passwd@www.site.to.leach/doc.html |
| 17891 | |
| 17892 | I also added the -u flag, since WHEN USING A PROXY YOU CAN'T SPECIFY THE |
| 17893 | USER AND PASSWORD WITH HTTP LIKE THAT. The -u flag works for ftp too, but |
| 17894 | not if used with proxy. To do the same as the above one, you can invoke: |
| 17895 | |
| 17896 | urlget -u user:passwd http://www.site.to.leach/doc.html |
| 17897 | |
| 17898 | Version 2.3 |
| 17899 | Rafael Sagula |
| 17900 | - Added "-o" option (output file) |
| 17901 | - Added URG_HTTP_NOT_FOUND return code. |
| 17902 | (Daniel's note:) |
| 17903 | Perhaps we should detect all kinds of errors and instead of writing that |
| 17904 | custom string for the particular 404-error, use the error text we actually |
| 17905 | get from the server. See further details in RFC2068 (HTTP 1.1 |
| 17906 | definition). The current way also relies on a HTTP/1.0 reply, which newer |
| 17907 | servers might not do. |
| 17908 | - Looping mode ("-l" option). It's easier to get various split files. |
| 17909 | (Daniel's note:) |
| 17910 | Use it like 'urlget -l 1 http://from.this.site/file%d.html', which will |
| 17911 | make urlget to attempt to fetch all files named file1.html, file2.html etc |
| 17912 | until no more files are found. This is only a modification of the |
| 17913 | STAND_ALONE part, nothing in the urlget() function was modfified for this. |
| 17914 | Daniel Stenberg |
| 17915 | - Changed the -h to be -i instead. -h should be preserved to help use. |
| 17916 | - Bjorn Reese indicated that Borland _might_ use '_WIN32' instead of the |
| 17917 | VC++ WIN32 define and therefore I added a little fix for that. |
| 17918 | |
| 17919 | Version 2.2 |
| 17920 | Johan Andersson |
| 17921 | - The urlget function didn't set the path to url when using proxy. |
| 17922 | - Fixed bug with IMC proxy. Now using (almost) complete GET command. |
| 17923 | |
| 17924 | Daniel Stenberg |
| 17925 | - Made it compile on Solaris. Had to reorganize the includes a bit. |
| 17926 | (so Win32, Linux, SunOS 4 and Solaris 2 compile fine.) |
| 17927 | - Made Johan's keepalive keyword optional with the -k flag (since it |
| 17928 | makes a lot of urlgets take a lot longer time). |
| 17929 | - Made a '-h' switch in case you want the HTTP-header in the output. |
| 17930 | |
| 17931 | Version 2.1 |
| 17932 | Daniel Stenberg and Kjell Ericson |
| 17933 | - Win32-compilable |
| 17934 | - No more global variables |
| 17935 | - Mute option (no output at all to stderr) |
| 17936 | - Full range of return codes from urlget(), which is now written to be a |
| 17937 | function for easy-to-use in [other] programs. |
| 17938 | - Define STAND_ALONE to compile the stand alone urlget program |
| 17939 | - Now compiles with gcc options -ansi -Wall -pedantic ;) |
| 17940 | |
| 17941 | Version 2.0 |
| 17942 | - Introducing ftp GET support. The FTP URL type is recognized and used. |
| 17943 | - Renamed the project to 'urlget'. |
| 17944 | - Supports the user+passwd in the FTP URL (otherwise it tries anonymous |
| 17945 | login with a weird email address as password). |
| 17946 | |
| 17947 | Version 1.5 |
| 17948 | Daniel Stenberg |
| 17949 | - The skip_header() crap messed it up big-time. By simply removing that |
| 17950 | one we can all of a sudden download anything ;) |
| 17951 | - No longer requires a trailing slash on the URLs. |
| 17952 | - If the given URL isn't prefixed with 'http://', HTTP is assumed and |
| 17953 | given a try! |
| 17954 | - 'void main()' is history. |
| 17955 | |
| 17956 | Version 1.4 |
| 17957 | Daniel Stenberg |
| 17958 | - The gopher source used the ppath variable instead of path which could |
| 17959 | lead to disaster. |
| 17960 | |
| 17961 | Version 1.3 |
| 17962 | Daniel Stenberg |
| 17963 | - Well, I added a lame text about the time it took to get the data. I also |
| 17964 | fought against Johan to prevent his -f option (to specify a file name |
| 17965 | that should be written instead of stdout)! =) |
| 17966 | - Made it write 'connection refused' for that particular connect() |
| 17967 | problem. |
| 17968 | - Renumbered the version. Let's not make silly 1.0.X versions, this is |
| 17969 | a plain 1.3 instead. |
| 17970 | |
| 17971 | Version 1.2 |
| 17972 | Johan Andersson |
| 17973 | - Discovered and fixed the problem with getting binary files. puts() is |
| 17974 | now replaced with fwrite(). (Daniel's note: this also fixed the buffer |
| 17975 | overwrite problem I found in the previous version.) |
| 17976 | |
| 17977 | Rafael Sagula |
| 17978 | - Let "-p" before "-x". |
| 17979 | |
| 17980 | Daniel Stenberg |
| 17981 | - Bugfixed the proxy usage. It should *NOT* use nor strip the port number |
| 17982 | from the URL but simply pass that information to the proxy. This also |
| 17983 | made the user/password fields possible to use in proxy [ftp-] URLs. |
| 17984 | (like in ftp://user:password@ftp.my.site:8021/README) |
| 17985 | |
| 17986 | Johan Andersson |
| 17987 | - Implemented HTTP proxy support. |
| 17988 | - Receive byte counter added. |
| 17989 | |
| 17990 | Bjorn Reese |
| 17991 | - Implemented URLs (and skipped the old syntax). |
| 17992 | - Output is written to stdout, so to achieve the above example, do: |
| 17993 | httpget http://143.54.10.6/info_logo.gif > test.gif |
| 17994 | |
| 17995 | Version 1.1 |
| 17996 | Daniel Stenberg |
| 17997 | - Adjusted it slightly to accept named hosts on the command line. We |
| 17998 | wouldn't wanna use IP numbers for the rest of our lifes, would we? |
| 17999 | |
| 18000 | Version 1.0 |
| 18001 | Rafael Sagula |
| 18002 | - Wrote the initial httpget, which started all this! |