Use the exception set in select (connect()) to early return when remote end is busy...
authorKarthik Rajagopalan <rajagopa@pauline.schrodinger.com>
Thu, 14 Jul 2011 17:36:41 +0000 (13:36 -0400)
committerSteve Hay <steve.m.hay@googlemail.com>
Mon, 15 Aug 2011 20:17:20 +0000 (21:17 +0100)
commitf1d35e3443aa8451bf47be80983076fe28626113
treed12198868746fab0e4e7f8766cbbeb6f90831466
parenta67abb3a612378541686808d03031e4055824b7d
Use the exception set in select (connect()) to early return when remote end is busy or in non existing port

For non blocking socket, it a timeout has been specified, IO::Socket internally use select(..) to
detect the result of socket connection. In situation, where remote end is busy or in non-existing port, we spend
entire timeout mentioned in select(..) call. We cannot completely differentiate if error is WSAECONNREFUSED(10061) or
WSAETIMEDOUT(10060) in this situation. If we use the exception set in select(..) call, we can do early return and also
a make a clear differentiation in error condition. This is same like what Linux handle in this situation.
dist/IO/lib/IO/Socket.pm