SocketTools Library Edition 9.3

ANSI (MBCS) applications can now use Unicode host names and file names.
March 13, 2018 - 11:41
New Version


  • The ANSI versions of functions in the SocketTools Library Edition will accept UTF-8 encoded host names and local file names. This will enable ANSI (MBCS) applications to use Unicode host names and file names if needed. (MBCS = Multi Byte Character Set).
  • Improved support for Unicode and Internationalized Domain Names (IDNs) for all networking components.
  • Updated to support TLS 1.2 on Windows Embedded POSReady 2009, Windows XP SP3 and Windows Server 2008 SP2 if update KB4019276 has been installed on the system.
  • If an FTP server advertises support for UTF-8, the client will always send the OPTS UTF8 ON command when a connection is established. The default encoding for all client sessions will be UTF-8, rather than being undefined.
  • If an FTP server advertises support for the MLST and MLSD commands, they will be preferred as the default method of requesting file information instead of using the STAT and LIST commands.
  • The initial FTP server result code and welcome message are preserved with a successful connection, providing more consistent behavior across different types of servers.
  • The contents of a directory returned by the Unicode version of the FtpGetFileList function will always convert UTF-8 encoded filenames to UTF-16, rather than return them in their encoded form.
  • Corrected a problem where enumerating HTTP headers could cause the application to return invalid data if the header value contained UTF-8 encoded characters.
  • Assigning the URL property in the FtpClient and HttpClient components to an empty string will explicitly clear the current host name and port number, and will reset security options to their default values.
  • The base domain name for a host will be queried when resolving DNS mail exchange (MX) records if the specified host name does not have any records defined.
  • Additional checks are made against domain names to protect against IDN homograph attacks and intentionally malformed names that use Unicode.
  • Added the functions DnsNormalizeHostName and DnsHostNameToUnicode to assist with processing internationalized domain names.
  • Updated the MIME components to be more tolerant of email messages that are imported with certain malformed headers, rather than failing to load them.
  • Additional checks are made to ensure the validity of certificates that are used to accept or establish secure connections.


  • Corrected a problem in the FTP and HTTP components and libraries where the GetFile and PutFile methods would fail if the local filename contained Unicode characters that were not defined for the current locale.
  • Corrected a problem where the PostJson and PostXml methods in the HttpClient component could fail if the XML or JSON data included non-ASCII characters.
  • Corrected an issue with the FTP server component that could cause a file handle to be left open after computing a CRC or MD5 value for a local file.
  • Corrected an issue with HTTP requests to a host that used internationalized domain names (IDNs) that would result in a 400 (bad command) error being returned by the server.
  • Corrected an issue that could result in an unhandled exception being thrown or an invalid host name being returned if MX records for a host contained very long domain names.
  • Corrected an issue where host names or file names that contained certain Unicode characters were not accepted even though the names were valid.
  • Corrected an issue that could cause the FTP and HTTP server components to throw an unhandled exception if a client aborted a secure connection during the TLS handshake.
  • Corrected an issue where the FTP client components could generate too many progress event notifications over a short period of time during large file transfers. Depending on how the event handler was implemented, this could have a negative impact on the user interface until after the transfer completed.
  • Corrected an issue where certain malformed MBCS or UTF-8 encoded file names could cause an internal buffer overrun that would result in a general protection fault or unexpected behavior.
  • Corrected an issue with the HTTP server component that could cause an invalid error to be returned under certain circumstances when a virtual path was specified by the client.
  • Corrected an issue where the Unicode versions of the compression related methods in the encoding components and libraries would not accept file names with non-Latin1 characters.
  • Corrected an issue where specifying an invalid certificate, or an invalid password provided for a certificate file, would not generate the correct error during the initial connection process.
SocketTools Library Edition

SocketTools Library Edition

Internet communications libraries for C/C++, Delphi, and Visual Basic.

Got a Question?

Live Chat with our Catalyst Development Corporation licensing specialists now.