From 2a5d19fa9cb4d4fa9ba2051a4af72d131a6b0092 Mon Sep 17 00:00:00 2001 From: Niklas Keller Date: Sun, 24 Mar 2019 19:39:25 +0100 Subject: [PATCH 1/4] Fix CLI server date format Fix the date format to be compliant with https://tools.ietf.org/html/rfc7231#section-7.1.1.2 --- sapi/cli/php_cli_server.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sapi/cli/php_cli_server.c b/sapi/cli/php_cli_server.c index 198afc8a6b016..b051b6568695e 100644 --- a/sapi/cli/php_cli_server.c +++ b/sapi/cli/php_cli_server.c @@ -356,10 +356,10 @@ static void append_essential_headers(smart_str* buffer, php_cli_server_client *c } if (!gettimeofday(&tv, NULL)) { - zend_string *dt = php_format_date("r", 1, tv.tv_sec, 1); + zend_string *dt = php_format_date("D, d M Y H:i:s", 1, tv.tv_sec, 1); smart_str_appendl_ex(buffer, "Date: ", 6, persistent); smart_str_appends_ex(buffer, dt->val, persistent); - smart_str_appendl_ex(buffer, "\r\n", 2, persistent); + smart_str_appendl_ex(buffer, " GMT \r\n", 7, persistent); zend_string_release(dt); } From cde505b040e4cd7987dffc2c7ee348b7fa4f31b1 Mon Sep 17 00:00:00 2001 From: Niklas Keller Date: Sun, 24 Mar 2019 21:03:25 +0100 Subject: [PATCH 2/4] Fix date format length and use GMT time Previously, local time was used instead of GMT. --- sapi/cli/php_cli_server.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sapi/cli/php_cli_server.c b/sapi/cli/php_cli_server.c index b051b6568695e..ebbf019a3af46 100644 --- a/sapi/cli/php_cli_server.c +++ b/sapi/cli/php_cli_server.c @@ -356,7 +356,7 @@ static void append_essential_headers(smart_str* buffer, php_cli_server_client *c } if (!gettimeofday(&tv, NULL)) { - zend_string *dt = php_format_date("D, d M Y H:i:s", 1, tv.tv_sec, 1); + zend_string *dt = php_format_date("D, d M Y H:i:s", 14, tv.tv_sec, 0); smart_str_appendl_ex(buffer, "Date: ", 6, persistent); smart_str_appends_ex(buffer, dt->val, persistent); smart_str_appendl_ex(buffer, " GMT \r\n", 7, persistent); From 5408fb373478cc40dc490351bc69df70ba5064d0 Mon Sep 17 00:00:00 2001 From: Niklas Keller Date: Sun, 24 Mar 2019 21:06:33 +0100 Subject: [PATCH 3/4] Remove extra whitespace --- sapi/cli/php_cli_server.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sapi/cli/php_cli_server.c b/sapi/cli/php_cli_server.c index ebbf019a3af46..1f60df2b115de 100644 --- a/sapi/cli/php_cli_server.c +++ b/sapi/cli/php_cli_server.c @@ -359,7 +359,7 @@ static void append_essential_headers(smart_str* buffer, php_cli_server_client *c zend_string *dt = php_format_date("D, d M Y H:i:s", 14, tv.tv_sec, 0); smart_str_appendl_ex(buffer, "Date: ", 6, persistent); smart_str_appends_ex(buffer, dt->val, persistent); - smart_str_appendl_ex(buffer, " GMT \r\n", 7, persistent); + smart_str_appendl_ex(buffer, " GMT\r\n", 6, persistent); zend_string_release(dt); } From 41120ea6cedea0f028ff1d81ca31774276b936a2 Mon Sep 17 00:00:00 2001 From: Niklas Keller Date: Mon, 25 Mar 2019 20:38:40 +0100 Subject: [PATCH 4/4] Simplify string appends in php_cli_server.c --- sapi/cli/php_cli_server.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/sapi/cli/php_cli_server.c b/sapi/cli/php_cli_server.c index 1f60df2b115de..cdcd93ac72c7e 100644 --- a/sapi/cli/php_cli_server.c +++ b/sapi/cli/php_cli_server.c @@ -349,17 +349,16 @@ static void append_essential_headers(smart_str* buffer, php_cli_server_client *c struct timeval tv = {0}; if (NULL != (val = zend_hash_str_find_ptr(&client->request.headers, "host", sizeof("host")-1))) { - smart_str_appendl_ex(buffer, "Host", sizeof("Host") - 1, persistent); - smart_str_appendl_ex(buffer, ": ", sizeof(": ") - 1, persistent); + smart_str_appends_ex(buffer, "Host: ", persistent); smart_str_appends_ex(buffer, val, persistent); - smart_str_appendl_ex(buffer, "\r\n", 2, persistent); + smart_str_appends_ex(buffer, "\r\n", persistent); } if (!gettimeofday(&tv, NULL)) { - zend_string *dt = php_format_date("D, d M Y H:i:s", 14, tv.tv_sec, 0); - smart_str_appendl_ex(buffer, "Date: ", 6, persistent); + zend_string *dt = php_format_date("D, d M Y H:i:s", sizeof("D, d M Y H:i:s") - 1, tv.tv_sec, 0); + smart_str_appends_ex(buffer, "Date: ", persistent); smart_str_appends_ex(buffer, dt->val, persistent); - smart_str_appendl_ex(buffer, " GMT\r\n", 6, persistent); + smart_str_appends_ex(buffer, " GMT\r\n", persistent); zend_string_release(dt); }