From 5e6bf497871df0041cc9f21822d8e027f23ee133 Mon Sep 17 00:00:00 2001 From: Dmitry Volyntsev Date: Thu, 25 Aug 2022 16:57:28 -0700 Subject: [PATCH] HTTP: added r.internal property. --- nginx/ngx_http_js_module.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/nginx/ngx_http_js_module.c b/nginx/ngx_http_js_module.c index 76c39839..9a1f977e 100644 --- a/nginx/ngx_http_js_module.c +++ b/nginx/ngx_http_js_module.c @@ -174,6 +174,9 @@ static njs_int_t ngx_http_js_ext_internal_redirect(njs_vm_t *vm, static njs_int_t ngx_http_js_ext_get_http_version(njs_vm_t *vm, njs_object_prop_t *prop, njs_value_t *value, njs_value_t *setval, njs_value_t *retval); +static njs_int_t ngx_http_js_ext_internal(njs_vm_t *vm, + njs_object_prop_t *prop, njs_value_t *value, njs_value_t *setval, + njs_value_t *retval); static njs_int_t ngx_http_js_ext_get_remote_address(njs_vm_t *vm, njs_object_prop_t *prop, njs_value_t *value, njs_value_t *setval, njs_value_t *retval); @@ -533,6 +536,15 @@ static njs_external_t ngx_http_js_ext_request[] = { } }, + { + .flags = NJS_EXTERN_PROPERTY, + .name.string = njs_str("internal"), + .enumerable = 1, + .u.property = { + .handler = ngx_http_js_ext_internal, + } + }, + { .flags = NJS_EXTERN_METHOD, .name.string = njs_str("internalRedirect"), @@ -2503,6 +2515,24 @@ ngx_http_js_ext_get_http_version(njs_vm_t *vm, njs_object_prop_t *prop, } +static njs_int_t +ngx_http_js_ext_internal(njs_vm_t *vm, njs_object_prop_t *prop, + njs_value_t *value, njs_value_t *setval, njs_value_t *retval) +{ + ngx_http_request_t *r; + + r = njs_vm_external(vm, ngx_http_js_request_proto_id, value); + if (r == NULL) { + njs_value_undefined_set(retval); + return NJS_DECLINED; + } + + njs_value_boolean_set(retval, r->internal); + + return NJS_OK; +} + + static njs_int_t ngx_http_js_ext_get_remote_address(njs_vm_t *vm, njs_object_prop_t *prop, njs_value_t *value, njs_value_t *setval, njs_value_t *retval) -- 2.47.3