Chilkat v9.3.1 Release Notes

Chilkat v9.3.1 is in the process of being released this week. The release notes (below) detail the changes, fixes, new features, etc. regarding the new version.

  1. All
    Added a free supporting CkDateTime object for date/time functionality. The use of SYSTEMTIME will become deprecated in favor of methods that instead return a CkDateTime object. More information about this will be added to www.example-code.com, as well as the reference documentation.
  2. (Compression)
    Added the “zlib” compression algorithm to the Chilkat.Compression / CkCompression class. This is the same as “deflate”, but includes the zlib header.
  3. (Certificate)
    The Rfc822Name string property will return all subject alternative names (if more than one exists) in comma-separated list.
  4. (Crypt)
    Added “Q”, “B”, “url_oauth”, “url_rfc1738”, “url_rfc2396”, “url_rfc3986” to the list of available encoding/decoding algorithms (i.e. the Chilkat.Crypt2.EncodingMode property).
  5. (CkString)
    Extended CkString so that the AppendEncoded and GetDecoded methods recognize and use any of the encoding algorithms available in the Chilkat.Crypt2.EncodingMode property.
  6. (HTTP)
    Fixed SynchronousRequest method so that it correctly sets the FinalRedirectUrl and WasRedirected properties when auto-following redirects.
  7. (HTTP ActiveX)
    A memory leak in the SynchronousRequest method was fixed. The memory leak only occurred in the ActiveX build.
  8. (FTP2)
    Fixed minor problem relating to bandwidth throttling (only occurred in some cases).
  9. (SSH)
    The handling of SSH/SFTP re-key events fixed for F-Secure SSH servers (and possibly other types of SSH servers). A typical behavior of some servers is to send a re-key message after 1GB has been transferred between client and server.
  10. (Email)
    Fixed a problem such that when the UnpackUseRelPaths was set to false (0) and the unpack directory contains space character, the generated HTML file was incorrect.
  11. (Email ActiveX)
    Fixed problem where the CreateMdn/CreateDsn methods in ActiveX always returned NULL.
  12. (HTTP)
    Regarding the S3_ListBucketObjects method: The bucket name may now be qualified with URL-encoded params. For example, to list
    the objects in a bucket named “ChilkatABC” with max-keys = 2000 and marker = “xyz”, do this:

    xmlStr = http.S3_ListBucketObjects("ChilkatABC?max-keys=2000&marker=xyz")
    

    The S3_ListBucketObjects method recognized all params listed in the AWS documentation for listing objects in a bucket: delimiter, marker, max-keys, and prefix. See Amazon’s AWS online documentation for more information.

  13. (Zip)
    Fixed the QuickAppend method. The problem only occurred in non-Windows implementations.
  14. (XMP)
    Added the GetProperty method:

    Xml *Xmp::GetProperty(Xml *xml, String *propName)

    This was added to provide the ability to handle “Property Qualifiers”. (see http://www.aiim.org/documents/standards/xmpspecification.pdf )

    Property Qualifiers
    Any individual property value may have other properties attached to it; these attached
    properties are called property qualifiers. They are in effect “properties of properties”; they can
    provide additional information about the property value. For example, a digital resource
    representing a musical production might have one or more authors, specified using the
    dc:creator property, which is an array (see the figure below). Each array value might have a
    property qualifier called role, which could take a value of “composer” or “lyricist” or
    possibly other values.

    NOTE: At this time, only simple properties may have qualifiers, and the qualifiers themselves
    must be simple values (not structures or arrays). This is because of limitations in early
    versions of the Adobe XMP Toolkit.

    To handle the situation, a new method named GetProperty was added. It returns the Xml node for the property. The Chilkat XML API can then be used to get the attributes.

  15. (HTTP)
    The ProxyPartialUrl property is deprecated. It is no longer needed and has no effect.
  16. (HTTP)
    Fixed a problem with using HTTPS via an HTTP proxy.
  17. (Socket)
    Added the following new property and method. These are for when an SSL/TLS connection is accepted, and your application wishes to examine the client-side certificates. To say it another way, your application is behaving as the SSL/TLS server, and it is accepting a connection from an SSL/TLS client and wishes to examine the client-side certs.

    New property:   int NumReceivedClientCerts
    New method:    Chilkat.Cert *GetReceivedClientCert(int index)
    

    A few notes:

    1. The client certs are obtained from the connected socket (after the connection is accepted), not the socket that is accepting connections.
    2. Both the actual certificate as well as the certs in the chain of authentication are included, assuming the certs in the chain were included in the certificates sent from the client to the server during the handshake. Typically they are included.
  18. (Socket)
    Added AES 256 and AES 128 to the server-side list of supported encryption algorithms. The default encryption algorithm chosen by the server (if supported by the client) is now AES 256. (The client-side of the SSL/TLS implementation already supported AES 128 and AES 256, and AES 256 is already the 1st choice of encryption algorithm to be chosen if supported by the server.) The Chilkat SSL/TLS implementation will by-default automatically choose the most secure encryption method available that is also implemented by the connecting peer.
  19. (Mime)
    Fixed a memory leak in MIME ActiveX’s AppendPart method.
  20. (FTP2)
    Added ProxyMethod #9 for certain types of FTP proxies that behave as follows: If interactively connecting, the proxy server prompts for user-input in this order: ProxyLogin, ProxyPassword, FtpLogin, and finally FtpPassword.
  21. (HTTP, Socket)
    Asynchronous HTTP and Socket functionality was added to the IOS / MACOSX libs.
  22. (HTTP)
    Fixed a problem such that if an Amazon S3 upload was followed by a download on same connection, then the download failed.
  23. (Zip)
    Fixed a problem with the QuickAppend method. If the zip to be appended existed but was 0 bytes (empty) then it did not work.
  24. (Ftp2)
    Added two new methods: ConnectOnly and LoginAfterConnectOnly.
    The existing “Connect” method both establishes the connection AND authenticates.
    This was most certainly a poor design decision early-on (about 10 years ago). The first problem with it is this: When it fails it’s impossible to tell why it failed. Was it unable to connect, or did it connect and then fail the authentication? This was fixed by providing the ConnectFailReason property to provide the exact reason for failure. However, one problem remained. A client would not be able to connect via SSL/TLS, examine the servers certificate, and then only authenticate if the cert is valid.

    The ConnectOnly will establish the connection and do nothing else. This allows your application to fetch the server’s SSL cert via the GetSslServerCert method. If the cert is verified to be OK, then then LoginAfterConnectOnly may be called to authenticate. The combination of calling ConnectOnly followed by LoginAfterConnectOnly is equivalent to calling the Connect method.

  25. (CkString)
    Added three new integer properties to the ActiveX: NumChars, SizeUtf8, and SizeAnsi. SizeUtf8 is the size in bytes of the string when encoded in utf-8. SizeAnsi is the size in bytes when encoded in the ANSI charset of the local computer.
Tags :