I do not know why you think my new change allows me to detect soft failures. The only change I made is to change this:
status = select(m_sock_fd+1, NULL, &WriteSet, NULL, &tv); to this: status = select(m_sock_fd+1, NULL, &WriteSet, &ErrorSet, &tv); Are you saying that for a soft failure, Windows will still put the socket in the ErrorSet? Thanks On Mon, Aug 24, 2009 at 8:14 PM, David Schwartz <dav...@webmaster.com>wrote: > > Md Lazreg wrote: > > > It is possible that the previous Windows behavior is correct but that > > is not the behavior I want. > > I think you are incorrect about that. > > > I want the same behavior as UNIX which in my opinion is what my clients > > would want. My clients can connect to a set of servers in a raw, if one > > is not available for whatever reason I want them to move to the next one > > instead of having to wait the whole timeout before trying the next > server. > > I agree. But that's not what your code does now. What your code does is > stops trying the first server. What you want it to do is start trying the > second server. > > Here's probably what you want: > > 1) Start trying to connect to the first server. > > 2) Wait a short amount of time to see if we have a connection. > > 3) If we have a connection, we are done. We succeed. > > 4) If we don't have a connection, add another attempt to another server, if > possible. > > 5) If all connection possibilities have failed, stop. We fail. > > 6) Go to step 2. > > Note that this does not require the change you made, which allows you to > detect soft failures. If you get a soft failure, there is no reason to > abort > the attempt -- it still might succeed. And why would you want to wait 60 > seconds or so if a server is not responding at all if you have another > server you could try? > > > Thanks for your help. > > You're welcome. I'm glad you got it working the way you think you want it. > But I don't think it's working the way you should want it. There is no rush > to abort a connection attempt that might ultimately succeed, no matter how > unlikely. Just don't wait for it -- keep going, and if it fails, no loss. > If > it succeeds later, you still win. > > DS > > > ______________________________________________________________________ > OpenSSL Project http://www.openssl.org > User Support Mailing List openssl-users@openssl.org > Automated List Manager majord...@openssl.org >