Description:
------------
STREAM_CLIENT_ASYNC_CONNECT is not working due to two small bugs in the same line of code ...
First STREAM_XPORT_OP_CONNECT_ASYNC is tested instead of STREAM_XPORT_CONNECT_ASYNC, and the return value of php_stream_xport_connect is non-zero (it's 1 actually) for a non blocking pending connect().
Line 142 of main/streams/transports.c reads :
if (0 != php_stream_xport_connect(stream, name, namelen,
flags & STREAM_XPORT_OP_CONNECT_ASYNC ? 1 : 0,
timeout, &error_text, error_code TSRMLS_CC)) {
but it works well when I replace it with :
if (0 > php_stream_xport_connect(stream, name, namelen,
flags & STREAM_XPORT_CONNECT_ASYNC ? 1 : 0,
timeout, &error_text, error_code TSRMLS_CC)) {