[php-src] PR #23880: Fix GH-23879: Do not report AcceptFailed on non-blocking accept timeout
| From: | lazerg | Date: | Thu, 24 Sep 2026 08:11:41 +0000 |
| Subject: | [php-src] PR #23880: Fix GH-23879: Do not report AcceptFailed on non-blocking accept timeout | ||
| Groups: | php.git-pulls | ||
| Request: | Send a blank email to git-pulls+get-38761@lists.php.net to get a copy of this message | ||
Pull Request: https://github.com/php/php-src/pull/23880
Author: lazerg
On a non-blocking listener,
stream_socket_accept() with no client waiting went down the
same path as a real failure and raised AcceptFailed ("Connection timed out").
That makes the usual "accept until empty" drain loop throw in
StreamErrorMode::Exception, and the only way to tell it apart from something like fd
exhaustion was the message text.
The TCP and TLS transports now treat a poll timeout or EAGAIN on a non-blocking
listener as "nothing to accept" and return success without a client, so
stream_socket_accept() returns false without reporting an error. Blocking
listeners still report the timeout as before. PHP_TIMEOUT_ERROR_VALUE moved from
network.c to php_network.h so the transports can check for it.
Fixes GH-23879