]> git.sven.stormbind.net Git - sven/tclcurl.git/blob - Changes.txt
releasing package tclcurl version 7.22.0+hg20160822-2
[sven/tclcurl.git] / Changes.txt
1 Version 7.22.0 released 03-Oct-2011
2
3     * New configure options:
4
5         * resolve: Pass a list of strings with host name resolve information to use for
6           requests with this handle.
7
8           Each single name resolve string should be written using the format
9           HOST:PORT:ADDRESS where HOST is the name TclCurl will try to resolve, PORT is
10           the port number of the service where TclCurl wants to connect to the HOST and
11           ADDRESS is the numerical IP address. If libcurl is built to support IPv6,
12           ADDRESS can be either IPv4 or IPv6 style addressing.
13
14         * tlsauthusername, tlsauthpassword: Pass a string with the username or password to
15           use for the TLS authentication method specified with the 'tlsauthtype' option.
16  
17         * tlsauthtype: Use it to tell TclCurl which authentication method(s) you want it to
18           use for TLS authentication. So far the only method is 'tlsauthsrp' for TLS-SRP
19           authentication. Secure Remote Password authentication for TLS is defined in
20           RFC 5054 and provides mutual authentication if both sides have a shared secret.
21
22           You need to build libcurl with GnuTLS or OpenSSL with TLS-SRP support for this
23           to work.
24
25         * transferencoding: Adds a request for compressed Transfer Encoding in the outgoing
26           HTTP request. If the server supports this and so desires, it can respond with the
27           HTTP resonse sent using a compressed Transfer-Encoding that will be automatically
28           uncompressed by TclCurl on receival.
29
30           Transfer-Encoding differs slightly from the Content-Encoding you ask for with
31           'encoding' in that a Transfer-Encoding is strictly meant to be for the transfer
32            and thus MUST be decoded before the data arrives in the client. Traditionally,
33           Transfer-Encoding has been much less used and supported by both HTTP clients and
34           HTTP servers.
35
36         * wildcard: Set this option to 1 if you want to transfer multiple files according to
37           a file name pattern. The pattern can be specified as part of the url, using an
38           fnmatch-like pattern (Shell Pattern Matching) in the last part of URL (file name).
39
40           So far it only works with FTP.
41
42         * fnmatchfunction: Name of the procedure that will be called instead of the internal
43           wildcard matching function, it should match the following prototype:
44
45                 FnMatchProc {pattern string}
46
47           Returns '0' if it matches, '1' if it doesn't.
48
49         * chunkbgnproc: Name of the procedure that will be called before a file will be transfered
50           by ftp, it should match the following prototype:
51
52                 ChunkBgnProc {remains}
53
54           Where remains is the number of files still to be transfered (or skipped)
55
56           This callback makes sense only when using the 'wildcard' option.
57
58         * chunkendproc: Name of the procedure that will be called after a file is transfered
59           (or skipped) by ftp when using the wildcard option, it should match the following
60           prototype:
61
62                 ChunkEndProc {}
63
64           It should return '0' if everyhting is fine and '1' if some error occurred.
65
66         * chunkbgnvar: Name of the variable in the global scope that will contain the data of
67           the file about to be transfered. If you don't use this option '::fileData' will be used.
68
69           The available data is: filename, filetype (file, directory, symlink, device block,
70           device char, named pipe, socket, door or error if it couldn't be identified), time, perm,
71           uid, gid, size, hardlinks and flags.
72
73         * mailfrom: Pass a string to specify the sender address in a mail when sending an SMTP mail
74           with TclCurl.
75
76         * mailrcpt: Pass a list of recipients to pass to the server in your SMTP mail request.
77
78         * ftpusepret: Set to 1 to tell TclCurl to use the EPRT (and LPRT) command when doing
79           active FTP downloads (which is enabled by 'ftpport'). Using EPRT means that it will
80           first attempt to use EPRT and then LPRT before using PORT, if you pass zero to this
81           option, it will not try using EPRT or LPRT, only plain PORT.
82
83         * gssapidelegation: Set the option to 'flag' to allow unconditional GSSAPI
84           credential delegation. The delegation is disabled by default. Set the parameter
85           to 'policyflag' to delegate only if the OK-AS-DELEGATE flag is set in the service
86           ticket in case this feature is supported by the GSSAPI implementation and the
87           definition of GSS_C_DELEG_POLICY_FLAG was available at compile-time.
88
89         * telnetoptions: Pass a list with variables to pass to the telnet negotiations. 
90           The variables should be in the format <option=value>. TclCurl supports the
91           options'TTYPE', 'XDISPLOC' and 'NEW_ENV'. See the TELNET standard for details.
92
93
94     * Updated configure options:
95
96         * httpauth new method 'ntlmwb': NTLM delegating to winbind helper. Authentication is
97           performed by a separate binary application that is executed when needed. The name
98           of the application is specified at libcurl's compile time but is typically
99           /usr/bin/ntlm_auth.
100
101         * new proxy type 'socsk5h' to enable socks5 and asking the proxy to do the resolving
102
103     * New info available through the 'getinfo' command:
104
105         * primaryport: Returns the destination port of the most recent connection done.
106
107         * localip: Returns the local (source) IP address of the most recent connection done.
108           This string may be IPv6 if that's enabled.
109
110         * localport: Returns the local (source) port of the most recent connection done.
111
112     * Bug fixes:
113
114         * Sven Hoexter let me know that TclCurl no longer build as curl/types.h and curl/easy.h
115           no longer exists:
116
117         * Gary Nigg noticed that 'bodyvar' had to be reconfigured for each transfer.
118
119         * John Coppens got an error when he tried the 'curl::transfer' command.
120
121         * Gerald Dumas reported that TclCurl wouldn't compile in FreeBSD, it so happens that
122           the upstart type 'ulong' isn't good enough for it.
123
124
125
126 Version 7.19.0 released 1-Sep-2008
127
128     * New commands:
129
130         * curlHandle pause and curlHandle resume: Pause and resume a
131           tranfer from within a progress callback procedure.
132
133     * New configure options:
134
135         * addressscope: Pass a number specifying the scope_id value to
136           use when connecting to IPv6 link-local or site-local addresses.
137
138         * proxytranfermode: Pass a number. If the value is set to 1 (one),
139           it tells TclCurl to set the transfer mode (binary or ASCII) for
140           FTP transfers done via an HTTP proxy, by appending ;type=a or
141           ;type=i to the URL. Without this setting, or if set to 0 (zero,
142           the default), '-tranfertext' has no effect when doing FTP via a
143           proxy. Beware that not all proxies support this feature.
144
145         * Added two new types for the '-proxytype' option: 'socks4a'
146           and 'socks5hostname'.
147
148     * New info available through the 'getinfo' command:
149
150         * appconnecttime: Returns the time, in seconds, it took from the start
151           until the SSL/SSH connect/handshake to the remote host was completed.
152
153         * primaryip: Returns the IP address of the most recent connection done
154           with this handle.
155
156         * redirecturl: Returns the URL a redirect would take you to if you would
157           enable 'followlocation'. This can come very handy if you think using
158           the built-in redirect logic isn't good enough for you but you would
159           still prefer to avoid implementing all the magic of figuring out the
160           new URL.
161
162     * Bug fix: The 'writeproc' option didn't work right.
163
164
165     * Internal changes:
166
167         * When compìling against Tcl 8.5.3 I had to remove a lot of CONSTs to
168           prevent warnings, and then I had to add them back with Tcl 8.5.4,
169           so, depending on which version you use you might get quite a few
170           warnings while compiling, they should be harmless though.
171
172         * The internal workings of the 'any' http authentication has been changed.
173
174 Version 7.17.1 released 1-Nov-2007
175
176     * New configure options:
177
178         * post301: A non-zero parameter tells TclCurl to respect
179           RFC 2616/10.3.2 and not convert POST requests into GET
180           requests when following a 301 redirection like browsers
181           usually do.
182
183         * sshhostpublickeymd5: Pass a string containing 32 hexadecimal
184           digits. The string should be the 128 bit MD5 cheksum of the
185           remote host public key, and TclCurl will reject the connection
186           to the host unless the md5sums match.
187
188         * If you pass the magic string 'FLUSH' to the '-cookielist'
189           option all known cookies will be written to the file
190           specified by '-cookiejar'.
191
192     * Renamed options:
193
194         Some configure options have been renamed so they get more general
195         names, the old names are deprecated even if they may be supported
196         forever.
197
198             * sslpasswd   => keypasswd
199             * ftpappend   => append
200             * ftplistonly => dirlistonly
201             * ftpssl      => usessl
202
203     * Internal changes:
204
205         Up until the current version when we wanted libcurl to use a value
206         in a string, like the URL to download, we had to keep the string as
207         long as libcurl could use it. Since 7.17.0 libcurl keeps it own
208         copies, so I no longer make TclCurl do it.
209
210         That means this is a handle-with-care release, please report any
211         problems you may have.
212
213
214 Version 7.16.4 released 19-July-07
215
216     * New configure options:
217
218         * newfileperms: Used to set the permissions, defalt 0664, that will be
219           assigned to newly created files on the remote server.
220
221         * newdirectoryperms: Used to set the permissions, default 0755, that
222           will be assigned to newly created directories on the remote server.
223
224           They can both be used for SFTP, SCP and FILE transfers.
225
226     * Changed option: The option to set the Kerberos security
227       level for FTP is now called 'krblevel', the old name
228       'krb4level' will be kept for some time for compatibility.
229
230     * New option for multi handles:
231
232         * maxconnects: Sets the maximum amount of simultaneously open
233           connections that TclCurl may cache. Default is 10.
234
235     * Bug fix: Sven Hoexter fixed a couple of errors in the man page.
236
237 Version 7.16.2 released 16-April-07
238
239     * New feature: TclCurl now supports SSH for SFTP and SCP transfers as long
240       as libcurl has been compiled with libssh2 support.
241
242     * New configure options:
243
244         * publickeyfile: name of the file with the public key to use with SSH.
245
246         * privatekeyfile: name of the file with the provate key to use with SSH.
247
248         * sshauthtypes: Allowed types are "publickey", "password", "host",
249           "keyboard", or "any" to let TclCurl choose one.
250
251         * timeoutms and connectimeoutms: The work like 'timeout' and
252           'connectimeout' except the timout is given in miliseconds.
253
254         * ftpsslccc: If enabled, it will make libcurl shutdown SSL/TLS after
255           the authentication is done on a FTP-SSL operation.
256
257         * httpcontentdecoding: If set to zero content decoding is disabled.
258
259         * httptransferdecoding: If set to zero Set transfer decoding is
260           disabled. TclCurl does chunked transfer decoding by default
261           unless this option is set to zero.
262
263         * ftpsslccc: If enabled, it will make libcurl shutdown SSL/TLS after
264           the authentication is done on a FTP-SSL operation.
265
266     * Bug fixes:
267
268         * Olivier Lenormand reported that in case the server sends more than
269           one 'Set-Cookie' header, TclCurl would only save the last one in
270           the header array. Now the array will contain a list with all the
271           cookies.
272
273         * Jos Decoster reported and helped fixing a crash that happened when
274           changing a handle from using a 'writeproc' to not using one.
275
276     * I have updated the configure scripts to TEA 3.6, hope you don't bump into
277       any regressions.
278
279 Version 7.16.0 released 15-November-06
280
281     * Removed feature: TclCurl no longer supports third party FTP transfers.
282
283     * New configure options:
284
285         * ftpalternativetouser: Pass a string which will be used to authenticate
286           if the usual FTP "USER user" and "PASS password" negotiation fails. This
287           is currently only known to be required when connecting to Tumbleweed's
288           Secure Transport FTPS server using client certificates for
289           authentication.
290
291         * ftpentrypath: Returns a string holding the path of the entry path.
292           That is the initial path TclCurl ended up in when logging on to the
293           remote FTP server. Returns an empty string if something is wrong.
294
295         * maxsendspeed: Pass a speed in bytes per seconds. If an upload exceeds this
296           speed on cumulative average during the transfer, the transfer will pause to
297           keep the average rate less than or equal to the parameter value.
298
299         * maxrecvspeed: Pass a speed in bytes per second. If a download exceeds this
300           speed on cumulative average during the transfer, the transfer will pause to
301           keep the average rate less than or equal to the parameter value.
302
303     * New command for multi handles 'configure', so far the is only one option to set:
304
305         * pipelining: Pass a 1 to enable or 0 to disable. Enabling pipelining on a multi
306           handle will make it attempt to perform HTTP Pipelining as far as possible for
307           transfers using this handle. This means that if you add a second request that
308           can use an already existing connection, the second request will be "piped" on
309           the same connection rather than being executed in parallel.
310
311 Version 0.15.3 released 17-April-06
312
313     * I updated the autoconf scripts to TEA 3.5, this seems to prevent
314       the warnings about how the headers files couldn't be compiled,
315       but it may have (re)introduced other bugs.
316
317     * Removed feature: TclCurl no longer supports Gopher, it probably
318       didn't work anyway.
319
320     * New configure options:
321
322         * localport: Sets the local port number of the socket used for
323           the connection. This can be used in combination with '-interface'
324           and you are recommended to use 'localportrange' as well when this
325           is set.
326
327         * localportrange: Number of attempts TclCurl should do to find a
328           working local port number. It starts with the given 'localport'
329           and adds one to the number for each retry.
330
331 Version 0.15.1 released 10-January-06
332
333     * New configure options:
334
335         * ftpskippasvip: If set to a non-zero value, it instructs TclCurl
336           not to use the IP address the server suggests in its 227-response
337           to TclCurl's PASV command when TclCurl connects the data connection.
338           Instead TclCurl will re-use the same IP address it already uses for
339           the control connection. But it will use the port number from the
340           227-response.
341
342         * ftpfilemethod: It allows three values:
343
344               * multicwd: the default, TclCurl will do a single CWD operation
345                 for each path part in the given URL. For deep hierarchies this
346                 means very many commands. This is how RFC1738 says it should
347                 be done.
348
349               * nocwd: no CWD at all is done, TclCurl will do SIZE, RETR, STOR
350                 etc and give a full path to the server.
351
352               * singlecwd: make one CWD with the full target directory and then
353                 operate on the file "normally".
354
355           The support for this options is still experimental, comments whether
356           the methods work or don't with different methods are welcome.
357
358           Likewise, the options, or their names, may change in future releases,
359           so they are not yet documented elsewhere.
360
361      * Bug fix: The Windows packages had defective 'doc' directories. Thanks to
362        Alex Hisen for letting me know.
363
364 Version 0.14.1 released 4-September-05
365
366     * New configure options:
367
368         * ingnorecontentlength: Ignore the Content-Length header. This is
369           useful for Apache 1.x (and similar servers) which will report
370           incorrect content length for files over 2 gigabytes.
371
372         * cookielist: Pass a string with a cookie. The cookie can be
373           either in Netscape / Mozilla format or just regular HTTP-style
374           header (Set-Cookie: ...) format.
375
376           '$curlHandle getinfo cookielist' will return a list of all
377           cookies TclCurl knows (expired ones, too).
378
379         * When posting data, you can use the new 'filecontent' option to
380           read a file and use its contents as data.
381
382     * Bug fix: The code to post data was filled with memory leaks, I hope
383       I have fixed them all.
384
385 Version 0.14.0 released 3-June-05
386
387     * BEHAVIOUR CHANGE: To set the version SSL/TLS to use with
388       '-sslversion' you can know use the values:
389
390         * default
391             The default action. When libcurl built with OpenSSL, this will
392             attempt to figure out the remote SSL protocol version.
393             Unfortunately there are a lot of ancient and broken servers in
394             use which cannot handle this technique and will fail to
395             connect. When libcurl is built with GnuTLS, this will mean SSLv3.
396
397         * tlsv1
398             Force TLSv1
399
400         * sslv2
401             Force SSLv2
402
403         * sslv3
404             Force SSLv3
405
406     * Bug fix: A report by Melissa Millard made me realize that the
407       options 'httpauth', 'proxyauth', 'ipresolve', 'ftpssl' and
408       'ftpsslauth' have, probably, never worked. They should now.
409
410     * I updated 'configure.in' and 'Makefile.in' to the latest versions
411       in Tcl's sample extension, unfortunately that's likely to introduce
412       some bugs, so, please, report any problems.
413
414 Version 0.13.2 released 16-April-05
415
416     * New features:
417
418         * New configure options:
419
420              * ftpaccount: When an FTP server asks for "account data"
421                after user name and password has been provided.
422
423              * sourceurl: When set, it enables a FTP third party transfer.
424
425              * sourcequote: Exactly like '-quote', but for the source host.
426
427         * The following options are now obsolete 'sourcehost', 'sourcepath',
428           'sourceport' and 'pasvhost'.
429
430         * curl::versioninfo will indicate if there is support for
431           SSPI.
432
433         * More information can be obtained using 'curl::getinfo':
434
435               * numconnects: to get the number of new connections
436                 TclCurl had to create to achieve the previous transfer.
437
438               * sslengines: returns a list of the OpenSSL crypto-engines
439                 supported.
440
441               * httpconnectcode: returns the last received proxy
442                 response code to a CONNECT request
443
444     * Bug fix:
445
446         * Fixed the "-sourcepostquote" option.
447
448         * Daniel A. Steffen fixed a bug with parallel builds.
449
450 Version 0.12.2 released 18-October-04
451
452     * New features:
453
454         * You can now share dns and cookie information among TclCurl
455           handles, please check the docs for details.
456
457         * New configure option: 'ftpsslauth', you may need this option
458           because of servers like BSDFTPD-SSL from won't work properly
459           when "AUTH SSL" is issued but require "AUTH TLS" instead.
460
461         * Added three new commands to the 'curl' namespace:
462
463             * curl::easystrerror   errorCode
464
465             * curl::sharestrerror  errorCode
466
467             * curl::multistrerror  errorCode
468
469           All three will return a string explaining what the given error
470           number means.
471
472     * Bug fix:
473
474         * Ralph Mitchell reported that the 'cookiejar' option wouldn't
475           work in the latest version, it should now.
476
477 Version 0.12.1 released 30-September-04
478
479     * New features:
480
481         * Third party ftp support, you can now transfer a file between
482           two different ftp servers. Check the 'ftp options' in the docs
483           page for details.
484
485         * A new command for curl handles 'reset' which re-initializes all
486           options previously set on a specified handle to the default values.
487
488           This puts back the handle to the same state as it was in when it
489           was just created with curl::init.
490
491           It does not change the following information kept in the handle:
492           live connections, the Session ID cache, the DNS cache, the cookies
493           and shares.
494
495         * Hooked the multi interface to Tcl's event loop, so you can have
496           fire-and-forget transfers:
497
498                 set multiHandle [curl::multiinit]
499                 set easyHandle  [curl::init]
500
501                 $easyHandle  configure -file home.tar.gz                  \
502                         -url http://127.0.0.1/~andres/HomePage.tar.gz
503
504                 $multiHandle addhandle $easyHandle
505                 $multiHandle auto -command "CleanUp $multiHandle $easyHandle"
506
507           This support is experimental, so any comments are welcome.
508
509           Thanks to Eric Boudaillier who answered my question about how to
510           do it.
511
512         * New ssl data types have been added to 'debugproc'.
513
514         * In case of error when setting post data, the error will include a
515           code about the nature of the error.
516
517     * Bug fix:
518
519         * The 'autoreferer' option should now work.
520
521 Version 0.12.0 released 09-July-04
522
523     * New configure options:
524
525         * '-port': Pass the number specifying what remote port to connect to,
526           instead of the one specified in the URL or the default port for the
527           used protocol.
528
529         * '-tcpnodelay': To specify whether the TCP_NODELAY option should be
530            set or cleared.
531
532            Setting this option will disable TCP's Nagle algorithm. The purpose
533            of this algorithm is to try to minimize the number of small packets
534            on the network.
535
536         * '-autoreferer': When enabled, TclCurl will automatically set the
537           'Referer:' field in requests where it follows a 'Location:' redirect.
538
539     * Bug fix:
540
541         * Thanks to Stefano Federici I noticed that the 'ftpssl' option didn't
542           work.
543
544 Version 0.11.0 released 04-febrary-04
545
546
547     * New configure options:
548
549         * 'ftpssl': You can use ftps:// URLs to explicitly switch on SSL/TSL
550           for the control connection and the data connection.
551
552           Alternatively you can set this option to one of these values:
553
554               * 'nope': Do not attempt to use SSL
555
556               * 'try': Try using SSL, proceed anyway otherwise.
557
558               * 'control': Use SSL for the control conecction or fail.
559
560               * 'all': Use SSL for all communication or fail.
561
562         * 'netrcfile': Pass a string containing the full path name to the
563           file you want to use as .netrc file. For the option to work, you
564           have to set the 'netrc' option to 'required'. If this option is
565           omitted, and 'netrc' is set, TclCurl will attempt to find the a
566           .netrc file in the current user's home directory.
567
568     * Bug fix: Fixed the 'netrc' option.
569
570 Version 0.10.8 released 29-december-03
571
572     * New 'configure' options:
573
574       * 'ftpresponsetimeout': Causes TclCurl to set a timeout period
575         on the amount of time that the server is allowed to take in
576         order to generate a response message for a command before the
577         session is considered hung.
578
579       * 'ipresolve': Allows an application to select what kind of
580         IP addresses to use when resolving host names. This is only
581         interesting when using host names that resolve addresses
582         using more than one version of IP.
583
584       * 'maxfilesize': Allows you to specify the maximum size
585         of a file to download.
586
587     * New 'getinfo' options:
588
589       * 'httpauthavail': Returns a list with the authentication method(s)
590         available.
591
592       * 'proxyauthavail': Returns a list with the authentication method(s)
593         available for your proxy athentication.
594
595     * Misc:
596
597       * 'curl::versioninfo' will now say if there is support for
598         asynchronus DNS and SPNEGO.
599
600       * The 'httpcode' for 'getinfo' is now called 'responsecode'
601         since it will now work with FTP transfers. The old option
602         name, while deprecated, will continue to work.
603
604     * Bug fixes:
605
606       * TclCurl still thought it was in version 0.10.4.
607
608       * Fixed the 'httpauth' option.
609
610       * The configure scripts would sometimes use the cURL in
611         '/usr/bin' instead of the one in '/usr/local/bin' despite
612         the '--with-curlprefix' tag.
613
614 Version 0.10.7 released 03-September-03
615
616   * New configure options:
617
618     * 'ftpcreatemissingdirs': If set to non-zero, TclCurl
619       will attempt to create any remote directory that it
620       fails to CWD into. CWD is the command that changes
621       working directory.
622
623     * 'httpauth': Set to the authentication method you want,
624       the available ones are:
625
626         * 'basic': HTTP Basic authentication. This is the
627           default choice, and the only method that is in
628           widespread use and supported virtually everywhere.
629           It sends the user name and password over the network
630           in plain text, easily captured by others.
631
632         * 'digest': HTTP Digest authentication. Digest
633            authentication is a more secure way to do
634            authentication over public networks than the
635            regular old-fashioned Basic method.
636
637         * 'gssnegotiate': HTTP GSS-Negotiate authentication.
638            The GSS-Negotiate method was designed by Microsoft
639            and is used in their web aplications. It is primarily
640            meant as a support for Kerberos5 authentication
641            but may be also used along with another authenti-
642            cation methods.
643
644         * 'ntlm': HTTP NTLM authentication. A proprietary
645           protocol invented and used by Microsoft.
646
647         * 'any':TclCurl will automaticaly select the one it
648           finds most secure.
649
650         * 'anysafe': It may use anything but basic, TclCurl
651           will automaticly select the one it finds most secure.
652
653
654     * 'command': Executes a Tcl command after the transfer
655       is done. So far it only works in blocking transfers
656       which is pretty much useless.
657
658 Version 0.10.5 released 21-May-03
659
660   * New configure option:
661
662     * 'ftpuseeptr': Set to non-zero, to tell TclCurl to use the EPRT
663       (and LPRT) command when doing active FTP downloads (which is
664       enabled by 'ftpport'). Using EPRT means that it will first attempt
665       to use EPRT and then LPRT before using PORT, if you pass zero to
666       this option, it will not try using EPRT or LPRT, only plain PORT
667
668   * Bug fixes:
669
670     * The multi handles couldn't store the data of more than two
671      easy handles.
672
673     * Using the 'progressproc' option in Windows would crash Tcl.
674
675     * The '$multiHandle active' command wasn't returning anything.
676
677   * Misc:
678
679     * Updated ssl in Windows binaries to version 0.9.7b.
680
681     * Changed the way the http reponse header is dealt with in
682      the 'headervar' option. Now the whole header is put into
683      foo(http).
684
685      ************** POTENTIAL INCOMPATIBILITY **************
686
687 Version 0.10.4 released 31-March-03
688
689   * New features:
690
691     * Added 'getinfo' features to the 'curl::transfer' command.
692
693      You can now do things like:
694
695        curl::transfer -url http://www.curl.com   \
696            -infohttpcode   httpCode              \
697            -infocontenttype contentType          \
698
699        puts "Http code: $httpCode"
700        puts "Content type: $contentType"
701
702     * New configure option: -unrestrictedauth, a non-zero parameter
703       tells the extension it can continue to send authentication
704       (user+password) when following locations, even when hostname
705       changed. Note that this is meaningful only when setting
706       -followlocation
707
708     * The makefile now has an 'uninstall' target.
709
710     * The Windows packages are now zlib enabled.
711
712     * Added a 'packages' directory with a makefile to create the
713       Windows packages and the spec file for rpm.
714
715   * Bug fix:
716
717     * The configure script will no longer choke with the version
718       string of cURL's prereleases.
719
720   * Misc
721
722     * If there is an error, the 'curl::transfer' command will now
723       return the code of the error, without the 'Couldn't perform
724       transfer' message.
725
726      ************** POTENTIAL INCOMPATIBILITY **************
727
728     * So that they have the same name in Windows and Linux, I have
729       changed the name of the certificate file in Windows to
730       'curl-ca-bundle.crt' and it will placed in the 'Windows'
731       directory.
732
733      ************** POTENTIAL INCOMPATIBILITY **************
734
735     * Alex Khassin suggested using fully qualified in 'tclcurl.tcl'
736       names to prevent problems with namespaces.
737
738 Version 0.10.3 released 30-January-03
739
740   * New configure option:
741
742     * 'http200alieases': To pass a list of aliases to be treated as valid
743        HTTP 200 responses.
744
745   * Bug fixes:
746
747     * When using '-headervar' in Windows you could end up with carriage
748       returns in the name of the header.
749
750     * Julian let me know that TclCurl would crash when used in a thread
751       enabled Tcl.
752
753   * Enhancements:
754
755     * Since compiling TclCurl in Windows is a real pain, I will provide
756       more packages for it, thread and ssl enabled.
757
758     * Alex Khassin has written instructions on how to get TclCurl to work
759       with AOLSever.
760
761 Version 0.10.1 released 14-October-02
762
763   * New configure options:
764
765     * 'proxytype': Allows you to set type of the proxy. Available options
766       are 'http' and 'socks5', with the HTTP one being default.
767
768     * 'encoding': TclCurl can now request compressed contents using the
769       'deflate' method.
770
771     * 'buffersize': To set prefered size for the receive buffer in TclCurl,
772       so that the write callback is called more often with smaller chunks.
773
774     * 'nosignal': Tells TclCurl not use any functions that install signal
775       handlers or any functions that cause signals to be sent to the process.
776
777   * New command:
778
779     * 'curl::versioninfo': Returns information about various run-time
780       features in TclCurl.
781
782   * Bug fixes:
783
784     * Fixed to 'buffer' option to post data.
785
786     * Asif Haswarey reported that '--with-curlinclude' wouldn't work.
787
788     * The multi interface examples suddenly stopped working, they
789       should now.
790
791 Version 0.9.8 released 25-June-02
792
793   * Support for libcurl's multi interface, the main features are:
794
795     * Enable a "pull" interface. The application that uses TclCurl
796       decides where and when to get/send data.
797
798     * Enable multiple simultaneous transfers in the same thread
799       without making it complicated for the application.
800
801     * Keep Tk GUIs 'alive' while transfers are taking place.
802
803   * New 'httppost' options
804
805     * 'bufferName' and 'buffer', the contents of buffer will be sent
806        to the server as if they were a file whose name is in bufferName,
807        please check the 'httpBufferPost.tcl' example.
808
809   * New 'getinfo' options
810
811     * redirectime: Returns the total time, in seconds, it took for all
812       redirection steps including name lookup, connect, pretransfer and
813       transfer before the final transaction was started, it returns the
814       complete execution time for multiple redirections.
815
816     * redirectcount: Returns the total number of redirections that were
817       actually followed.
818
819 Version 0.9.6 released 30-April-02
820
821   * New configure options:
822
823     * dnscachetimeout, to set the timeout in seconds for keeping the name resolves
824       in memory.
825
826     * dnsuseglobalcache, if set to '1' the DNS cache will be shared among
827       curl handles.
828
829     * debugproc, to set a procedure that will receive the debug data
830       produced by the 'verbose' option.
831
832
833   * Jonathan Matthew found and fixed a seg fault when you used
834     the 'httpheader' option twice with the same handle.
835
836
837   * The configure scripts saw more work in this release:
838
839     * I merged the latest changes to the TEA sample extension by
840       Jeff Hobbs.
841
842     * Suresh K. Sastry found and fixed an incompatibility with Solaris.
843
844     * And I hope I have not forgotten any 'DESTDIR' this time.
845
846 Version 0.9.5 released 01-April-2002
847
848   * I have adapted the configure scripts to the new TEA scripts released by
849     Jeff Hobbs, for example, now it will compile 'out of the box' for freeBSD
850     systems (well, you may need to use '--with-curlprefix' and '--with-curlinclude')
851
852   * New configure option:
853
854     * prequote: use it to pass a list of ftp commands to execute *just before*
855       the transfer.
856
857   * New getinfo option:
858
859     * contenttype: if the servers bothers to tell you, this will return the type
860       of the downloadad object.
861
862   * Bug fix: 'curl::transfer' will return '0' if the transfer was successful.
863                      *** POTENTIAL INCOMPATIBILITY ***
864
865 Version 0.9.3 released 29-Jan-2002
866
867   * Bug fix: There should no more seg faults because of trailing options
868     in configure commands.
869
870   * Bug fix: Binary transfer weren't done right in Windows, thanks to
871     Peter Waltenberg and Darren Blee for the report.
872
873   * TclCurl now supports OpenSSL engines, which allow you to keep your private
874     key stored in external hardware.
875
876         In order to manage this there are a few new configure options:
877
878             * sslcerttype: Set SSL cert type (PEM/DER).
879
880             * sslkey: Set SSL private key (file).
881
882             * sslkeytype: Set SSL key type (PEM/DER/ENG).
883
884             * sslkeypasswd: Set the passphrase for your private key.
885
886             * sslengine: Set the name of the crypto engine.
887
888             * sslenginedefault: Set the default engine.
889
890   * You can now add a set of headers for a particular part in a
891     multipart/form-post using the 'contentheader' option.
892
893   * It is now possible to execute commands in ftp servers without
894     transfering files, you have to set 'nobody' to '1' and 'header' to
895     '0'.