Update TIdIcmpClient to not require admin rights when possible

TIdIcmpClient currently requires admin rights, due to its use of a RAW socket. On Windows, can use IcmpSendEcho...(), Icmp6SendEcho...(), and other related function. On OSX/iOS, can use ICMP over...

Id #26012 | Release: None | Updated: Feb 28 at 8:56 PM by gambit47 | Created: Feb 28 at 8:56 PM by gambit47

TIdMappedPortUDP deadlock

When TIdMappedPortUDP receives a UDP message, it uses a TIdUDPClient to send the message to the specified MappedHost/MappedPort. However, it then calls TIdUDPClient.ReceiveBuffer() expecting a res...

Id #25984 | Release: None | Updated: Feb 13 at 10:42 PM by gambit47 | Created: Feb 13 at 10:42 PM by gambit47

Update base64 decoding to ignore illegal characters

RFC 2045 specifically states that a conformant base64 decoder must ignore characters that are not defined in the base64 alphabet. For example, the following decodes fine in Outlook and other decod...

Id #25928 | Release: None | Updated: Jan 19 at 10:30 PM by gambit47 | Created: Jan 19 at 10:30 PM by gambit47

TIdMessage cannot decode the body of an email that uses cp1026

TIdMessage cannot decode the following email because charset cp1026 causes TIdIOHandler.ReadLn() to return string values that are not consistent with the email RFCs for syntax elements like LFs and...

Id #25900 | Release: None | Updated: Jan 2 at 10:08 PM by gambit47 | Created: Jan 2 at 10:08 PM by gambit47

TIdCmdTCPClient needs to trigger OnDisconnect or OnStatus when disconnected

TIdCmdTCPClient uses an internal reading thread, and that thread does not trigger the OnDisconnect or OnStatus event when the thread terminates, such as due to an abnormal disconnect.

Id #25874 | Release: None | Updated: Dec 15, 2014 at 11:02 PM by gambit47 | Created: Dec 15, 2014 at 11:02 PM by gambit47

TIdTelnet needs to trigger OnDisconnect or OnStatus when disconnected

TIdTelnet uses an internal reading thread, and that thread does not trigger the OnDisconnect or OnStatus event when the thread terminates, such as due to an abnormal disconnect.

Id #25873 | Release: None | Updated: Dec 15, 2014 at 11:01 PM by gambit47 | Created: Dec 15, 2014 at 11:01 PM by gambit47

TIdVCard timestamp handling is broken

TIdVCard is based on RFC 2425 and 2426, but they describe different formats for dates and times. The ParseDateTimeStamp() function in IdVCard.pas does not handle all of the possible formats.

Id #25855 | Release: None | Updated: Feb 5 at 10:00 PM by gambit47 | Created: Dec 5, 2014 at 3:11 AM by gambit47

Content-Transfer-Encoding descrepency in TIdMessageCoderMIME.ReadBody()

RFC 2045 Section 6.1 states: "'Content-Transfer-Encoding: 7BIT' is assumed if the Content-Transfer-Encoding header field is not present." However, RFC 2045 Section 6.4 states: "Any entity with an...

Id #25848 | Release: None | Updated: Dec 2, 2014 at 10:05 PM by gambit47 | Created: Dec 2, 2014 at 10:05 PM by gambit47

Add support for date/time parameter in IMAP APPEND command

The APPEND command supports an optional date/time parameter to set the mailbox's internal date/time for the appended email, which is separate from the email's Date header. When that parameter is n...

Id #25844 | Release: None | Updated: Dec 24, 2014 at 10:42 PM by gambit47 | Created: Dec 2, 2014 at 12:26 AM by gambit47

Update TIdIMAP4 to support retreiving multiple message in a range

None of the retrieve functions expose the fact that IMAP supports fetching multiple messages or message ranges. It would be useful to be able to get multiple messages in a range (based on sequence ...

Id #25707 | Release: None | Updated: Nov 17, 2014 at 7:01 AM by jessicabrown | Created: Sep 2, 2014 at 8:36 PM by gambit47