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 […]

Changelog

TIdDNSResolver update

Posted on

A user recently needed to query a DNS server for DNAME records, but found that TIdDNSResolver did not parse DNAME answers at all. The QueryResult collection would hold generic TResultRecord objects that did not have their RecType property assigned properly, so it would default to 0, which just happens to be qtA. So, a new […]

Changelog

Charset handling for BASIC authentication

Posted on

When TIdHTTP is using BASIC authentication with an HTTP server or HTTP proxy, it now supports the “charset” attribute defined in RFC 7617 for the “WWW-Authenticate” and “Proxy-Authenticate” challenge headers. If the server requests a “charset”, TIdBasicAuthentication will now use that charset when encoding its username/password values.

Changelog

Client-side SNI support added to TIdSSLIOHandlerSocketOpenSSL

Posted on

Client-side support for the TLS SNI extension has been added to TIdSSLIOHandlerSocketOpenSSL. When TIdSSLIOHandlerSocketOpenSSL is making an outbound TLS connection, it now calls SSL_set_tlsext_host_name() to enable SNI. This extension is used on servers that host multiple hostnames on the same IP address. Use of this extension allows the server to know which hostname a client […]

Changelog

New TIdIMAP4 methods to add more support for GMail IMAP extensions

Posted on

Some additional support for Gmail IMAP extensions has been added to TIdIMAP4. Previously, the TIdIMAP4FetchDataItem enum was updated in preparation for allowing Gmail’s X-GM-MSGID, X-GM-THRID, and X-GM-LABELS values to be retreived from emails using FETCH commands, however no methods of TIdIMAP4 had been implemented yet to support those extended commands. The TIdIMAP4.ParseLastCmdResult() method has now […]

Changelog

New TIdHTTP flags and OnChunkReceived event

Posted on

Three new flag have been added to the TIdHTTP.HTTPOptions property: hoNoParseXmlCharset: when receiving an XML response with an “application/…” Content-Type, the TIdHTTP.Response.Charset property will be set to the charset declared in the XML’s prolog, unless this flag is enabled, in which case TIdHTTP.Response.Charset will be set to the charset specified in the HTTP response’s Content-Type […]

Changelog

OpenSSL changes

Posted on

A user reported a problem where Indy was not able to load OpenSSL on Ubuntu Server 15.04. The reason turned out to be because Ubuntu’s version of OpenSSL 1.x does not export the following three functions, which Indy’s IdSSLOpenSSLHeaders.Load() function deemed to be “critical” and would fail if they are not exported: SSLv2_method SSLv2_server_method SSLv2_client_method […]