Changelog

New TIdIMAP4.SearchMailBox() options

Posted on

skHeader and skKeyword were previously declared in the TIdIMAP4SearchKey enum, but were ignored by the (UID)SearchMailBox() methods. They have now been implemented. In the case of skHeader, a new FieldName member has been added to TIdIMAP4SearchRec to specify the desired header name. Use the existing Text member to specify the desired header value.

Changelog

New HTTPS functionality for TIdHTTP

Posted on

Starting with SVN revision 5224 (and finalized in revision 5226), TIdHTTP now has new functionality that allows it to auto-create an internal default SSLIOHandler object when requesting an HTTPS url if no IOHandler has been assigned yet. If you need to customize the SSLVersions used, or specify certificates/keys, or use status/password event handlers, then you […]

Changelog

POP3 changes for mailbox sizes > 2GB

Posted on

TIdPOP3 and TIdPOP3Server have been updated to support mailbox sizes larger than 2 GB. The TIdPOP3.RetrieveMailBoxSize() and TIdPOP3Server.RetrieveStats() methods now return MailBoxSize values using Int64 instead of Integer. The TIdPOP3Server.OnStat event handler now receives its oSize parameter value using Int64 instead of Integer. As these are interface changes, you will have to update your code […]

Changelog

New HPPEMITs to solve SetPort() linker errors in C++

Posted on

New HPPEMIT statements have been added to the following Indy components to address “Unresolved external SetPort(A/W)” linker errors in C++Builder: TIdDNSResolver TIdIOHandler TIdIPMCastBase TIdTCPClientCustom TIdUDPBase TIdUDPClient The linker errors are due to name mangling mismatches between the compiler and linker, which are caused by the “#define SetPort …” macro in the Win32 API winspool.h header […]

Changelog

Indy 10.6.1, 64-bit Tick Counters

Posted on

To support 64-bit tick counters that do not wrap back to 0 every 49.7 days, the following support functions have been added to the IdGlobal unit: Ticks64() GetTickDiff64() GetElapsedTicks() GetElapsedTicks64() The following 32-bit functions have been marked as deprecated: Ticks() GetTickDiff() A new TIdTicks data type has been added, which maps to UInt64 on compilers […]

Changelog

New Platform types for Windows

Posted on

FreePascal 2.4.0+ supports a UnicodeString type that is similar to the UnicodeString type in Delphi 2009+. However, unlike Delphi, FreePascal does not map its String type to UnicodeString by default. You have to use the {$MODE DelphiUnicode} or {$MODESWITCH UnicodeStrings} directive to enable that mapping. Indy assumed that String/(P)Char maps to UnicodeString/(P)WideChar when UNICODE is […]

Changelog

Logic change to UUE/XXE decoders

Posted on

When decoding UUE/XXE encoded data, an encoded line of data may be shorter than it is supposed to be if the line originally ended with a space character. For instance, Outlook Express is known for omitting trailing space characters when encoding data. Some online UUE/XXE decoders handle missing space characters OK, but Indy did not. […]

Changelog

New {$WARN} wrapper .inc files added

Posted on

Several new .inc files have been added to Indy’s source: IdSymbolDeprecatedOff.inc IdSymbolDeprecatedOn.inc IdSymbolPlatformOff.inc IdSymbolPlatformOn.inc IdUnitPlatformOff.inc IdUnitPlatformOn.inc IdDeprecatedImplBugOff.inc IdDeprecatedImplBugOn.inc For example: Before: {$IFDEF HAS_SYMBOL_PLATFORM} {$WARN SYMBOL_PLATFORM OFF} {$ENDIF} TIdThreadPriority = TThreadPriority; {$IFDEF HAS_SYMBOL_PLATFORM} {$WARN SYMBOL_PLATFORM ON} {$ENDIF} {$IFDEF HAS_DEPRECATED} {$WARN SYMBOL_DEPRECATED OFF} {$ENDIF} GIdIPv6FuncsAvailable := False; {$IFDEF HAS_DEPRECATED} {$IFDEF HAS_DIRECTIVE_WARN_DEFAULT} {$WARN SYMBOL_DEPRECATED DEFAULT} {$ELSE} {$WARN SYMBOL_DEPRECATED […]

Changelog

New EIdInternetPermissionNeeded exception added for Android

Posted on

When TIdStack raises an exception for certain socket errors on Android, it now checks if the calling app has “android.permission.INTERNET” granted, and if not then raises a new EIdInternetPermissionNeeded exception type (which derives from EIdSocketError). Typically, a Delphi Android app has INTERNET permission enabled by default when compiled for debug mode, but disabled by default […]