memset(sock, 0, sizeof(php_netstream_data_t));
sock->is_blocked = 1;
+
+#if !defined(PHP_WIN32) && (defined(O_NONBLOCK) || defined(O_NDELAY))
+ if (socket >= 0 && socket < 3) {
+ /* mini-hack: if we are opening stdin, stdout or stderr,
+ * we need to check to see if they are currently in
+ * blocking or non-blocking mode. */
+ int flags = fcntl(socket, F_GETFL);
+
+#ifdef O_NONBLOCK
+ sock->is_blocked = !(flags & O_NONBLOCK);
+#else
+ sock->is_blocked = !(flags & O_NDELAY);
+#endif
+ }
+#endif
+
sock->timeout.tv_sec = FG(default_socket_timeout);
sock->timeout.tv_usec = 0;
sock->socket = socket;