summaryrefslogtreecommitdiff
path: root/sapi/cli/php_cli_server.c
diff options
context:
space:
mode:
authorAnatol Belski <ab@php.net>2017-11-14 20:03:02 +0100
committerAnatol Belski <ab@php.net>2017-11-14 20:03:02 +0100
commit85021602ba731a322b53b30fcecf20a26a4eb424 (patch)
tree345cbccf7d631292ca524b5f08587f71360dc5a7 /sapi/cli/php_cli_server.c
parent3dbe8dd16fb018dccf1ae7fc8c34cd73354698d9 (diff)
parenta5206bc690bb9874e3a5c22fa635d5809b4004d3 (diff)
downloadphp-git-85021602ba731a322b53b30fcecf20a26a4eb424.tar.gz
Merge branch 'PHP-7.0' into PHP-7.1
* PHP-7.0: Update NEWS Fix bug 60471 by correctly identifying unused speculative preconnections
Diffstat (limited to 'sapi/cli/php_cli_server.c')
-rw-r--r--sapi/cli/php_cli_server.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/sapi/cli/php_cli_server.c b/sapi/cli/php_cli_server.c
index e918a686a1..1f9e5abe4f 100644
--- a/sapi/cli/php_cli_server.c
+++ b/sapi/cli/php_cli_server.c
@@ -214,6 +214,8 @@ static php_cli_server_http_response_status_code_pair template_map[] = {
static int php_cli_output_is_tty = OUTPUT_NOT_CHECKED;
#endif
+static const char php_cli_server_request_error_unexpected_eof[] = "Unexpected EOF";
+
static size_t php_cli_server_client_send_through(php_cli_server_client *client, const char *str, size_t str_len);
static php_cli_server_chunk *php_cli_server_chunk_heap_new_self_contained(size_t len);
static void php_cli_server_buffer_append(php_cli_server_buffer *buffer, php_cli_server_chunk *chunk);
@@ -1761,7 +1763,7 @@ static int php_cli_server_client_read_request(php_cli_server_client *client, cha
*errstr = php_socket_strerror(err, NULL, 0);
return -1;
} else if (nbytes_read == 0) {
- *errstr = estrdup("Unexpected EOF");
+ *errstr = estrdup(php_cli_server_request_error_unexpected_eof);
return -1;
}
client->parser.data = client;
@@ -1898,7 +1900,7 @@ static void php_cli_server_client_dtor(php_cli_server_client *client) /* {{{ */
static void php_cli_server_close_connection(php_cli_server *server, php_cli_server_client *client) /* {{{ */
{
-#ifdef DEBUG
+#if PHP_DEBUG
php_cli_server_logf("%s Closing", client->addr_str);
#endif
zend_hash_index_del(&server->clients, client->sock);
@@ -2387,7 +2389,13 @@ static int php_cli_server_recv_event_read_request(php_cli_server *server, php_cl
char *errstr = NULL;
int status = php_cli_server_client_read_request(client, &errstr);
if (status < 0) {
- php_cli_server_logf("%s Invalid request (%s)", client->addr_str, errstr);
+ if (strcmp(errstr, php_cli_server_request_error_unexpected_eof) == 0 && client->parser.state == s_start_req) {
+#if PHP_DEBUG
+ php_cli_server_logf("%s Closed without sending a request; it was probably just an unused speculative preconnection", client->addr_str);
+#endif
+ } else {
+ php_cli_server_logf("%s Invalid request (%s)", client->addr_str, errstr);
+ }
efree(errstr);
php_cli_server_close_connection(server, client);
return FAILURE;
@@ -2471,7 +2479,7 @@ static int php_cli_server_do_event_for_each_fd_callback(void *_params, php_socke
closesocket(client_sock);
return SUCCESS;
}
-#ifdef DEBUG
+#if PHP_DEBUG
php_cli_server_logf("%s Accepted", client->addr_str);
#endif
zend_hash_index_update_ptr(&server->clients, client_sock, client);