Version 0.10.5 released 21-May-03

    * New configure option:

        * 'ftpuseeptr': Set to non-zero, to tell TclCurl to use the EPRT
           (and LPRT) command when doing active FTP downloads (which is
           enabled by 'ftpport'). Using EPRT means that it will first attempt
           to use EPRT and then LPRT before using PORT, if you pass zero to
           this option, it will not try using EPRT or LPRT, only plain PORT

    * Bug fixes:

        * The multi handles couldn't store the data of more than two
          easy handles.

        * Using the 'progressproc' option in Windows would crash Tcl.

        * The '$multiHandle active' command wasn't returning anything.

    * Misc:

        * Updated ssl in Windows binaries to version 0.9.7b.

        * Changed the way the http reponse header is dealt with in
          the 'headervar' option. Now the whole header is put into
          foo(http).

          ************** POTENTIAL INCOMPATIBILITY **************


Version 0.10.4 released 31-March-03

    * New features:

        * Added 'getinfo' features to the 'curl::transfer' command.

          You can now do things like:

              curl::transfer -url http://www.curl.com     \
                      -infohttpcode     httpCode          \
                      -infocontenttype  contentType       \

              puts "Http code: $httpCode"
              puts "Content type: $contentType"

        * New configure option: -unrestrictedauth, a non-zero parameter
          tells the extension it can continue to send authentication
          (user+password) when following locations, even when hostname
          changed. Note that this is meaningful only when setting
          -followlocation

        * The makefile now has an 'uninstall' target.

        * The Windows packages are now zlib enabled.

        * Added a 'packages' directory with a makefile to create the
          Windows packages and the spec file for rpm.

    * Bug fix:
    
        * The configure script will no longer choke with the version
          string of cURL's prereleases.
    
    * Misc

        * If there is an error, the 'curl::transfer' command will now
          return the code of the error, without the 'Couldn't perform
          transfer' message.

          ************** POTENTIAL INCOMPATIBILITY **************

        * So that they have the same name in Windows and Linux, I have
          changed the name of the certificate file in Windows to 
          'curl-ca-bundle.crt' and it will placed in the 'Windows'
          directory.

          ************** POTENTIAL INCOMPATIBILITY **************

        * Alex Khassin suggested using fully qualified in 'tclcurl.tcl'
          names to prevent problems with namespaces.


Version 0.10.3 released 30-January-03

    * 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 handshake, 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

