]> git.kaiwu.me - njs.git/commitdiff
HTTP: added r.internal property.
authorDmitry Volyntsev <xeioex@nginx.com>
Thu, 25 Aug 2022 23:57:28 +0000 (16:57 -0700)
committerDmitry Volyntsev <xeioex@nginx.com>
Thu, 25 Aug 2022 23:57:28 +0000 (16:57 -0700)
nginx/ngx_http_js_module.c

index 76c39839a98be2f38a8375c636f496f6b7b70169..9a1f977e565a18d65bb6968a302d69a3ba6992f2 100644 (file)
@@ -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)