Changelog

New packages for RAD Studio 10.2 Tokyo

Posted on

After more than a year since RAD Studio 10.2 Tokyo was released, I have now finally checked in Indy package files for 10.2. Note: I do not have Tokyo installed at this time, so I have not enabled Linux as a target platform in Indy’s runtime packages. If you want to compile Indy for use […]

Changelog

Behavioral change to HTTPS handling in TIdHTTPServer

Posted on

Before: When an SSLIOHandler component is assigned to the TIdHTTPServer.IOHandler property, TIdHTTPServer would automatically activate SSL/TLS for all new client connections, unless a TIdHTTPServer.OnQuerySSLPort event handler returned False for the port that the client connected to (such as port 80). Now: The default HTTPS port is 443, so when an SSLIOHandler component is assigned, TIdHTTPServer […]

Changelog

Changes for how OpenSSL is loaded on *Nix platforms

Posted on

Two changes have been made to the IdSSLOpenSSLHeaders unit in how OpenSSL lib files are dynamically loaded on *Nix platforms. – Many *Nix systems have unversioned libcrypto/libssl symbolic links that point to specific OpenSSL versions. This way, as new OpenSSL versions are installed, the symlinks can be updated without app code needing to be updated […]

Changelog

TIdHTTPServer changes

Posted on

In no particular order: If a client sends an ‘Authorization’ request header that is not processed, TIdHTTPServer now sends an HTTP 401 response instead of closing the socket connection. When sending a response to a client, TIdHTTPResponseInfo.SetHeaders() now sets ‘WWW-Authenticate’ and ‘Proxy-Authenticate’ headers if the TIdHTTPResponseInfo.WWWAuthenticate and/or TIdHTTPResponseInfo.ProxyAuthenticate properties are not empty. Previously, these properties […]

Changelog

Changes to TIdNotify

Posted on

When TIdNotify.Notify() is invoked by code in the main UI thread, it now respects the TIdNotify.MainThreadUsesNotify property again. Many years ago (prior to mid-2010), whenever TIdNotify.Notify() was invoked by code in the main UI thread, if the TIdNotify.MainThreadUsesNotify property was True then Notify() would use an internal worker thread to queue the notification for delayed […]

Changelog

Small change to TIdURI

Posted on

TIdURI.PathEncode() and TIdURI.ParamsEncode() no longer encode ‘%HH’ hex sequences as ‘%25HH’. The motivation for this is if you have content that is already percent-encoded with ‘%HH’ sequences in it, like “application/x-www-form-urlencoded” data, then it should be left alone and not double-encoded.

Changelog

TIdDNSResolver update

Posted on

A user recently encountered a problem where requesting TXT records for ‘ups.com’ on multiple DNS servers results in DNS responses that exceed DNS’s default 512-byte max UDP message size, thus truncating to 512 bytes and setting the TC (truncation) bit in the response header. A logic hole in TTextRecord.Parse() was causing TIdDNSResolver to get stuck […]

Changelog

Update to TIdHMACSHA1

Posted on

The IdFIPS unit declares function pointers that allow Indy to interface with external hashing libraries, such as OpenSSL. The TIdHashSHA1 class uses an external library if the appropriate SHA-1 function pointers have been assigned. Otherwise, it uses its own native implementation. However, the TIdHMACSHA1 class was ignoring that feature, relying solely on an external SHA-1 […]