On Tue, May 24, 2011 at 3:10 PM, Justin Erenkrantz
<jus...@erenkrantz.com> wrote:
>> Either Serf should detect the right error, or Apr should implement a real
>> poll handler on Windows (available since Windows Vista) which should provide
>> more error information.

Well...that's exactly what APR 1.4.x did - but WSAPoll() doesn't seem
to allow for reporting non-blocking connect failures.  There are
plenty of MSDN forum posts about this not working.  I managed to get a
VS2008 build env up on Windows 7.  When I connect to a non-existent
port, nothing ever gets reported back from the apr_pollset_poll()
call.  The connect() call (correctly) returns EINPROGRESS, so serf has
no way of knowing anything is wrong.

I've posted separately to the APR list - this is an APR issue and is a
regression only in APR 1.4.x+ (which added WSAPoll() support) - not a
Serf issue.  Serf is asking for all of the correct flags, but Windows
Vista+ has no way of indicating that the connect() failed via this new
interface.  (As such, this is a new issue - APR 1.3.x and earlier
wouldn't have had this issue as they use select().)

For older Windows platforms using select(), the fix I committed
earlier should still work....but, I'll still try to confirm locally.
-- justin

Reply via email to