Update TIdIOHandler to pass its ConnectTimeout value all the way to TIdStack.Connect() to get the timeout logic out of TIdIOHandler.ConnectClient(). This way, TIdStackWindows can be updated to use WSA...() functions when available (ie, WSAConnectByName() or WSAConnectByList(), which both have a timeout parameter), and thus avoid having to use the TIdConnectThread class to abort the connection after the timeout elapsed. Other TIdStack... classes can continue using TIdConnectThread when suitable platform-specific techniques are not available.
Update TIdIOHandler to pass its
ConnectTimeoutvalue all the way toTIdStack.Connect()to get the timeout logic out ofTIdIOHandler.ConnectClient(). This way,TIdStackWindowscan be updated to useWSA...()functions when available (ie,WSAConnectByName()orWSAConnectByList(), which both have atimeoutparameter), and thus avoid having to use theTIdConnectThreadclass to abort the connection after the timeout elapsed. OtherTIdStack...classes can continue usingTIdConnectThreadwhen suitable platform-specific techniques are not available.