Browse Source
Merge branch 'PHP-8.5'
* PHP-8.5:
Treat accept failing with SOCK_EAGAIN as success in CLI web server
pull/19733/merge
Ilija Tovilo
1 day ago
No known key found for this signature in database
GPG Key ID: 115CEA7A713E12E9
1 changed files with
5 additions and
3 deletions
-
sapi/cli/php_cli_server.c
|
|
@ -2712,14 +2712,16 @@ static zend_result php_cli_server_do_event_for_each_fd_callback(void *_params, p |
|
|
|
struct sockaddr *sa = pemalloc(server->socklen, 1); |
|
|
|
client_sock = accept(server->server_sock, sa, &socklen); |
|
|
|
if (!ZEND_VALID_SOCKET(client_sock)) { |
|
|
|
int err = php_socket_errno(); |
|
|
|
if (err != SOCK_EAGAIN && php_cli_server_log_level >= PHP_CLI_SERVER_LOG_ERROR) { |
|
|
|
pefree(sa, 1); |
|
|
|
if (php_socket_errno() == SOCK_EAGAIN) { |
|
|
|
return SUCCESS; |
|
|
|
} |
|
|
|
if (php_cli_server_log_level >= PHP_CLI_SERVER_LOG_ERROR) { |
|
|
|
char *errstr = php_socket_strerror(php_socket_errno(), NULL, 0); |
|
|
|
php_cli_server_logf(PHP_CLI_SERVER_LOG_ERROR, |
|
|
|
"Failed to accept a client (reason: %s)", errstr); |
|
|
|
efree(errstr); |
|
|
|
} |
|
|
|
pefree(sa, 1); |
|
|
|
return FAILURE; |
|
|
|
} |
|
|
|
if (SUCCESS != php_set_sock_blocking(client_sock, 0)) { |
|
|
|