TIdTCPClient.Connect's timeout doesn't seem to work!
I've narrowed it down to one annoying little area:
// Id_WSAEBADF (9) on Linux, Id_WSAENOTSOCK (10038) on Windows
E: Exception do begin
FExceptionMessage := E.Message;
if E is EIdSocketError then begin
FLastSocketError := EIdSocketError(E).LastError;
// Necessary as caller checks this
Why 'Terminate' here?
Then in IdIOHandlerSocket:
if Terminated then begin
ATimeout := 0;
It seems that for some reason, the connect thread is terminated prematurely
which nulls any connection timeout.
Why is the timeout there included if it is cancelled? - Or am I
misunderstanding it's purpose? (if I am, please explain!)