Node.js: fixed "httpVersion" variable format

According to the Node.js documenation this variable
should only include numbering scheme.

Thanks to @dbit-xia.

Closes: https://github.com/nginx/unit/issues/1085
This commit is contained in:
Andrei Zeliankou
2024-01-25 12:49:47 +00:00
committed by andrey-zelenkov
parent ba56e50ee7
commit 6452ca111c
3 changed files with 15 additions and 2 deletions

View File

@@ -40,6 +40,13 @@ with Next.js.
</para> </para>
</change> </change>
<change type="bugfix">
<para>
ServerRequest.httpVersion variable format in Node.js module.
</para>
</change>
</changes> </changes>

View File

@@ -581,6 +581,7 @@ Unit::get_server_object()
void void
Unit::create_headers(nxt_unit_request_info_t *req, napi_value request) Unit::create_headers(nxt_unit_request_info_t *req, napi_value request)
{ {
char *p;
uint32_t i; uint32_t i;
napi_value headers, raw_headers; napi_value headers, raw_headers;
napi_status status; napi_status status;
@@ -602,7 +603,12 @@ Unit::create_headers(nxt_unit_request_info_t *req, napi_value request)
set_named_property(request, "headers", headers); set_named_property(request, "headers", headers);
set_named_property(request, "rawHeaders", raw_headers); set_named_property(request, "rawHeaders", raw_headers);
set_named_property(request, "httpVersion", r->version, r->version_length);
// trim the "HTTP/" protocol prefix
p = (char *) nxt_unit_sptr_get(&r->version);
p += 5;
set_named_property(request, "httpVersion", create_string_latin1(p, 3));
set_named_property(request, "method", r->method, r->method_length); set_named_property(request, "method", r->method, r->method_length);
set_named_property(request, "url", r->target, r->target_length); set_named_property(request, "url", r->target, r->target_length);

View File

@@ -80,7 +80,7 @@ def test_node_application_variables(date_to_sec_epoch, sec_epoch):
'Request-Method': 'POST', 'Request-Method': 'POST',
'Request-Uri': '/', 'Request-Uri': '/',
'Http-Host': 'localhost', 'Http-Host': 'localhost',
'Server-Protocol': 'HTTP/1.1', 'Server-Protocol': '1.1',
'Custom-Header': 'blah', 'Custom-Header': 'blah',
}, 'headers' }, 'headers'
assert resp['body'] == body, 'body' assert resp['body'] == body, 'body'