Ryan Bloom <[EMAIL PROTECTED]> writes:
> The problem is that the second connect() call is failing with an
> EALREADYCONNECTED.
> The correct way to detect an error from connect, according to Single Unix, is
> to do a poll
> or select. If select/poll return with an error or they timeout, the connect
> failed. If they return
> successfully, then the connect has succeeded.
On what platform is it failing with EALREADYCONNECTED? I can't
readily reproduce this problem. (not disagreeing, just would like to
play with it myself)
A patch to look for an error in a different manner must retrieve the
saved error from TCP. You gotta get the ECONNREFUSED or ENETUNREACH
back to the app.
(Actually, when I did this code I did look around for examples.
I guess I looked at a bad one :) )
By the way... Stevens doesn't check for exception on the socket, just
readability and writability, then he calls getsockopt(,SOL_SOCKET,
SO_ERROR,) to retrieve the saved error from TCP.)
--
Jeff Trawick | [EMAIL PROTECTED] | PGP public key at web site:
http://www.geocities.com/SiliconValley/Park/9289/
Born in Roswell... married an alien...