2.4 History

    Please read the history bottom-up. Note that the history might list some
    features that were implemented in beta versions and removed later but are
    still mentioned here. This history is a log of the programmer so that he
    can look up what has been done/tried/modified. Things that were implemented
    and removed later are marked with [VOID].

    Version 2.0   (29-Apr-23)
    - Change: Updated documentation
    - Change: Updated inbuilt CA certificates to the latest ones from Mozilla (January 10th, 2023)
    - New [macOS]: Added build for the macOS ARM64 platform which is supported since Hollywood 10
    - New [Linux/x64]: Added separate build for OpenSSL 3 for use with more recent Linux distros
    - Fix: Memory access fault when SFTP authentification failed (reported by Petteri Valli)
    - Fix [Android]: curl's verbose output is now visible in LogCat
    - New [Android]: libssh2 is now supported on Android as well which makes it possible to use the SCP and
      SFTP protocols (among others) with hURL
    - Change [Amiga]: hURL uses the system's root CA certificates now (MOSSYS:Data/SSL/curl-ca-bundle.crt on
      MorphOS and AmiSSL:Certs on the other platforms)
    - New: Added easy:Upkeep() method to perform connection upkeep checks
    - New: Added support for curl's MIME interface; this supersedes the old form interface which is still
      supported by hURL; use easy:MIME() to create a new MIME object and then you can use the following
      methods to work with the MIME object: mime:AddPart(), mime:Easy(), mime:Free(), mimepart:Subparts(),
      mimepart:Data(), mimepart:FileData(), mimepart:Headers(), mimepart:Name(), mimepart:Filename(),
      mimepart:Type() mimepart:Encoder(), mimepart:Free(); after you have initialized your MIME object, you
      can pass it to #CURLOPT_MIMEPOST
    - New: Added support for curl's URL interface; you can use hurl.URL() to construct a URL object and
      then use the following methods to configure the URL object: url:SetFragment(), url:SetHost()
      url:SetOptions(), url:SetPassword(), url:SetPath(), url:SetPort(), url:SetQuery(), url:SetScheme(),
      url:SetURL(), url:SetUser(), url:SetZoneID(), url:GetFragment(), url:GetHost(), url:GetOptions(),
      url:GetPassword(), url:GetPath(), url:GetPort(), url:GetQuery(), url:GetScheme(), url:GetURL(),
      url:GetUser(), url:GetZoneID(), url:Dup(), url:Free(); after you have initialized your URL object
      you can pass it to #CURLOPT_CURLU
    - New: Added #CURLINFO_TOTAL_TIME_T, #CURLINFO_NAMELOOKUP_TIME_T, #CURLINFO_CONNECT_TIME_T,
      #CURLINFO_PRETRANSFER_TIME_T, #CURLINFO_STARTTRANSFER_TIME_T, #CURLINFO_REDIRECT_TIME_T, 
      #CURLINFO_APPCONNECT_TIME_T, #CURLINFO_RETRY_AFTER, #CURLINFO_EFFECTIVE_METHOD, #CURLINFO_PROXY_ERROR,
      #CURLINFO_REFERER, #CURLINFO_CAINFO, #CURLINFO_CAPATH for use with easy:GetInfo()
    - New: Added support for #CURLMOPT_MAX_CONCURRENT_STREAMS for multi objects
    - New: Added support for #CURLOPT_SSH_COMPRESSION, #CURLOPT_TIMEVALUE_LARGE, #CURLOPT_MAXAGE_CONN,
      #CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS, #CURLOPT_HAPROXYPROTOCOL, #CURLOPT_DNS_SHUFFLE_ADDRESSES,
      #CURLOPT_TLS13_CIPHERS, #CURLOPT_DISALLOW_USERNAME_IN_URL, #CURLOPT_DOH_URL, #CURLOPT_UPLOAD_BUFFERSIZE,
      #CURLOPT_UPKEEP_INTERVAL_MS, #CURLOPT_HTTP09_ALLOWED, #CURLOPT_ALTSVC_CTRL, #CURLOPT_ALTSVC, 
      #CURLOPT_SASL_AUTHZID, #CURLOPT_MAIL_RCPT_ALLOWFAILS, #CURLOPT_SSLCERT_BLOB, #CURLOPT_SSLKEY_BLOB,
      #CURLOPT_PROXY_SSLCERT_BLOB, #CURLOPT_PROXY_SSLKEY_BLOB, #CURLOPT_ISSUERCERT_BLOB, 
      #CURLOPT_PROXY_ISSUERCERT, #CURLOPT_PROXY_ISSUERCERT_BLOB, #CURLOPT_SSL_EC_CURVES, #CURLOPT_HSTS_CTRL,
      #CURLOPT_HSTS, #CURLOPT_AWS_SIGV4, #CURLOPT_DOH_SSL_VERIFYPEER, #CURLOPT_DOH_SSL_VERIFYHOST,
      #CURLOPT_DOH_SSL_VERIFYSTATUS, #CURLOPT_CAINFO_BLOB, #CURLOPT_PROXYINFO_CAINFO_BLOB,
      #CURLOPT_MAXLIFETIME_CONN, #CURLOPT_MIME_OPTIONS, #CURLOPT_PROTOCOLS_STR, #CURLOPT_REDIR_PROTOCOLS_STR,
      #CURLOPT_WS_OPTIONS, #CURLOPT_CA_CACHE_TIMEOUT, #CURLOPT_QUICK_EXIT, #CURLOPT_MIMEPOST, #CURLOPT_CURLU,
      #CURLOPT_RESOLVER_START_FUNCTION, #CURLOPT_TRAILERFUNCTION, #CURLOPT_HSTSREADFUNCTION, 
      #CURLOPT_HSTSWRITEFUNCTION, #CURLOPT_PREREQFUNCTION, #CURLOPT_SSH_HOSTKEYFUNCTION; you can set/unset
      these options either using the generic easy:SetOpt() and easy:UnsetOpt() methods or using the specific
      methods like easy:SetOpt_SSH_Compression() or by passing the options in the argument table when creating
      easy handles using hurl.Easy()
    - New [AROS]: Added AROS version of hURL; this requires AmiSSL4 because AmiSSL5 isn't available on AROS yet
    - New [OS3/OS4]: hURL uses AmiSSL 5 instead of AmiSSL 4 now
    - New: Updated to curl 8.0.1 and libssh2 1.10.0
    - Change [MorphOS]: hURL on MorphOS doesn't use AmiSSL any longer but MorphOS' native implementation of
      OpenSSL 3 (openssl3.library); this means that hURL requires MorphOS 3.16 or better now
    - Fix: DownloadFile()'s "PostType" tag wasn't supported by hURL (reported by Petteri Valli)
    - Fix: The "Encoded" tag of the DownloadFile() and UploadFile() commands wasn't handled correctly by hURL
      (reported by Petteri Valli)
    - Fix: The "Fail404" tag of DownloadFile() was ignored by hURL (reported by Anbjorn Myren)

    Version 1.2   (20-Nov-21)
    - Change: Updated documentation
    - Change: Updated inbuilt CA certificates to the latest ones from Mozilla (October 26th, 2021)
    - New: Added some examples for doing some common jobs using the lowlevel interface
    - New [x64-linux/arm-linux]: Added separate builds for OpenSSL 1.1.1 for use on newer Linux versions
      that don't come with OpenSSL 1.0.2 any longer (reported by Niels Schapke)
    - New [Doc]: Added examples for #CURLOPT_HTTPHEADER, #CURLOPT_READFUNCTION and #CURLOPT_WRITEFUNCTION
      (requested by Michael Rupp)
    - New: Added support for Hollywood 9.0's new custom protocol interface; this means that Hollywood's 
      DownloadFile() and UploadFile() commands will now support for all protocols that hURL supports as
      well; this should make things much easier for beginners who are struggling to get started with
      using hURL's functions directly
      
    Version 1.1   (21-Dec-20)
    - Change: Updated documentation
    - Change: Amiga installer will now also copy the plugins for all platforms to Hollywood's linker plugins
      directory so that they can be easily linked to executables (suggested by kas1e)
    - Change: Updated inbuilt CA certificates to the latest ones from Mozilla (December 8th, 2020)
    - New: multi:InfoRead() returns a fourth value now; this return value will contain the easy handle
      that has previously been added to the multi handle (requested by Amile)
    - New: Added support for SFTP and SCP; although hURL 1.0 claimed those to be supported they didn't
      work because hURL was compiled without libssh2; hURL 1.1 now contains libssh2 so SFTP and SCP will
      work as well (reported by Petteri Valli)
    - Fix: All options of type CURLOPT_XXX_LARGE (e.g. CURLOPT_RESUME_FROM_LARGE) were broken on pretty
      much all platforms except 64-bit Windows (reported by Petteri Valli)
    - Fix [MorphOS]: Fixed hURL to be compatible with the 68k version of AmiSSL (reported by Juan Carlos
      Herran Martin and Petteri Valli)
       
    Version 1.0   (31-Mar-19)
    - First Release


Show TOC