Version 0.10.3 released 30-January-04 * New configure option: * 'http200alieases': To pass a list of aliases to be treated as valid HTTP 200 responses. * Bug fixes: * When using '-headervar' in Windows you could end up with carriage returns in the name of the header. * Julian let me know that TclCurl would crash when used in a thread enabled Tcl. * Enhancements: * Since compiling TclCurl in Windows is a real pain, I will provide more packages for it, thread and ssl enabled. * Alex Khassin has written instructions on how to get TclCurl to work with AOLSever. Version 0.10.1 released 14-October-02 * New configure options: * 'proxytype': Allows you to set type of the proxy. Available options are 'http' and 'socks5', with the HTTP one being default. * 'encoding': TclCurl can now request compressed contents using the 'deflate' method. * 'buffersize': To set prefered size for the receive buffer in TclCurl, so that the write callback is called more often with smaller chunks. * 'nosignal': Tells TclCurl not use any functions that install signal handlers or any functions that cause signals to be sent to the process. * New command: * 'curl::versioninfo': Returns information about various run-time features in TclCurl. * Bug fixes: * Fixed to 'buffer' option to post data. * Asif Haswarey reported that '--with-curlinclude' wouldn't work. * The multi interface examples suddenly stopped working, they should now. Version 0.9.8 released 25-June-02 * Support for libcurl's multi interface, the main features are: * Enable a "pull" interface. The application that uses TclCurl decides where and when to get/send data. * Enable multiple simultaneous transfers in the same thread without making it complicated for the application. * Keep Tk GUIs 'alive' while transfers are taking place. * New 'httppost' options * 'bufferName' and 'buffer', the contents of buffer will be sent to the server as if they were a file whose name is in bufferName, please check the 'httpBufferPost.tcl' example. * New 'getinfo' options * redirectime: Returns the total time, in seconds, it took for all redirection steps including name lookup, connect, pretransfer and transfer before the final transaction was started, it returns the complete execution time for multiple redirections. * redirectcount: Returns the total number of redirections that were actually followed. Version 0.9.6 released 30-April-02 * New configure options: * dnscachetimeout, to set the timeout in seconds for keeping the name resolves in memory. * dnsuseglobalcache, if set to '1' the DNS cache will be shared among curl handles. * debugproc, to set a procedure that will receive the debug data produced by the 'verbose' option. * Jonathan Matthew found and fixed a seg fault when you used the 'httpheader' option twice with the same handle. * The configure scripts saw more work in this release: * I merged the latest changes to the TEA sample extension by Jeff Hobbs. * Suresh K. Sastry found and fixed an incompatibility with Solaris. * And I hope I have not forgotten any 'DESTDIR' this time. Version 0.9.5 released 01-April-2002 * I have adapted the configure scripts to the new TEA scripts released by Jeff Hobbs, for example, now it will compile 'out of the box' for freeBSD systems (well, you may need to use '--with-curlprefix' and 'with-curlinclude') * New configure option: * prequote: use it to pass a list of ftp commands to execute *just before* the transfer. * New getinfo option: * contenttype: if the servers bothers to tell you, this will return the type of the downloadad object. * Bug fix: 'curl::transfer' will return '0' if the transfer was successful. *** POTENTIAL INCOMPATIBILITY *** Version 0.9.3 released 29-Jan-2002 * Bug fix: There should no more seg faults because of trailing options in configure commands. * Bug fix: Binary transfer weren't done right in Windows, thanks to Peter Waltenberg and Darren Blee for the report. * TclCurl now supports OpenSSL engines, which allow you to keep your private key stored in external hardware. In order to manage this there are a few new configure options: * sslcerttype: Set SSL cert type (PEM/DER). * sslkey: Set SSL private key (file). * sslkeytype: Set SSL key type (PEM/DER/ENG). * sslkeypasswd: Set the passphrase for your private key. * sslengine: Set the name of the crypto engine. * sslenginedefault: Set the default engine. * You can now add a set of headers for a particular part in a multipart/form-post using the 'contentheader' option. * It is now possible to execute commands in ftp servers without transfering files, you have to set 'nobody' to '1' and 'header' to '0'. Version 0.9.2 released 10-Dec-2001 * A port to Windows, using Mingw over a Cygwin environment. * The 'perform' command now returns the exit code form 'curl_easy_perform' * New configure option: * ftpuseepvs: Set to one to tell TclCurl to use the EPSV command when doing passive FTP downloads (which is always does by default). Using EPSV means that it will first attempt to use EPSV before using PASV, but if you pass a zero to this option, it will not try using EPSV, only plain PASV. * Changed configure option: * httpversion: Set to one of the values decribed below, they force TclCurl to use the specific http versions. It should only be used if you really MUST do that because of a silly remote server. * none: We don't care about what version the library uses. TclCurl will use whatever it thinks fit. * 1.0: Enforce HTTP 1.0 requests. * 1.1: Enforce HTTP 1.1 requests. * The 'configure' command will now also return the value given for the invalid option. Version 0.9 released 05-Nov-2001 * New command: 'curlHandle duphandle', returns a new curl handle that duplicates the original one. * New configure options: * cookiejar: Pass a file name in which TclCurl will dump all internally known cookies when 'cleanup' is called. If no cookies are known, no file will be created. Specify "-" to have the cookies written to stdout. * sslcipherlist: Pass a string holding the list of ciphers to use for the SSL connection. The list must be syntactly correct, it consists of one or more cipher strings separated by colons. Commas or spaces are also acceptable separators but colons are normally used, , - and + can be used as operators. Valid examples of cipher lists include 'RC4-SHA', 'SHA1+DES', 'TLSv1' and 'DEFAULT'. The default list is normally set when you compile OpenSSL. You will find more details about cipher lists on this URL: http://www.openssl.org/docs/apps/ciphers.html * httpversion: Use this options to request TclCurl to use HTTP 1.0 requests instead of the default version (1.1). It should only be used if you really MUST do that because of a silly remote server. * Changed configure options: * The 'http' option to set the data for a POST, has now a different syntax, check the docs for details. ** POTENCIAL INCOMPATIBILITY ** * The 'failonerror' option, no longer returns an error if the HTTP return code is below 400. ** POTENCIAL INCOMPATIBILITY ** * Changed the options to the 'timecondition' configure option to lower case. ** POTENCIAL INCOMPATIBILITY ** * Changed the options to the 'closepolicy' configure option to lower case. ** POTENCIAL INCOMPATIBILITY ** * Misc * The makefile will now change 'init.tcl' so that the directory where TclCurl is going to be installed will be included in the 'auto_path' variable. * libcurl, and therefore TclCurl too, now closes connections that report transfer failures. Version 0.8.0 released * New command: 'curl::transfer' it takes the same arguments as 'curl::configure' and takes care of all the transfer details, so, for example, instead of doing: set curlHandle [curl::init] $curlHandle configure -url http://curl.haxx.se -file index.html $curlHandle perform $curlHandle cleanup You can now simply do: curl::transfer -url http://curl.haxx.se -file index.html This command is limited as you can't use it if you want persistant connetions and you can't use the 'getinfo' command with the transfer. * New configure options: * writeproc Use it to set a Tcl procedure that will be invoked by TclCurl as soon as there is received data that needs to be written down. * readproc Sets a Tcl procedure to be called by TclCurl as soon as it needs to read data in order to send it to the peer. * httpget If set to non-zero forces the HTTP request to get back to GET. Only really usable if POST, PUT or a custom request have been used previously with the same curl handle. * sslverifyhost Set to non-zero if we should verify the Common name from the peer certificate in the SSL hand­shake, set 1 to check existence, 2 to ensure that it matches the provided hostname. * Bug fix: * Using TclCurl to upload a file should not cause any more seg faults. * INCOMPATIBILITIES WITH OTHER VERSIONS * The options to the 'curl::configure' and 'getinfo' commands are now all lowercase as usual in Tcl commands. Version 0.7.0 released * Added the option '-vernum' to 'curl::curlConfig' it returns version information about the installed libcurl. * By default 'noProgress' will be set to '1'. *** POTENTIAL INCOMPATIBILITY *** Your scripts may not behave the same * The 'mute' option no longer does anything. *** POTENTIAL INCOMPATIBILITY *** Your scripts may not behave the same * Fixed the bug by which TclCurl would return two many possible options after using a wrong one. * Created the 'configure' command. *** POTENTIAL INCOMPATIBILITY *** Even though the 'setopt' command will be supported indefinintely, some of the options, the ones that needed lists as parameters like HTTPPOST or QUOTE have changed, please look up the tests cases to for an example. * TclCurl will no longer install the 'tclcurl.h' file. * It is now possible to remove the CURLOPT_FILE, CURLOPT_INFILE and CURLOPT_STDERR options between transfers in a persistant connection. Version 0.6.1 released. * Trying to set a HTTPPOST would provoke a seg fault. * Prevented segfault when saving to a file without the right permissions or reading for a file that does not exists. * Added the CURLOPT_CANCELTRANSVAR option. * Added the CURLOPT_PROGRESSPROC option. * Added the CURLOPT_BODYVAR option to put the body of a request into a Tcl variable. * Added support for the 'CURLOPT_HEADERFUNCTION' option through 'CURLOPT_HEADERVAR'. * tclcurl.tcl: Created this file to host the curl::curlConfig procedure. * tests/getinfo.tcl: Added the option CURLOPT_FILETIME so CURLINFO_FILETIME would work. First release 0.5