]> git.kaiwu.me - njs.git/commitdiff
Stream: introduced "stream" property.
authorDmitry Volyntsev <xeioex@nginx.com>
Fri, 26 Feb 2021 17:45:56 +0000 (17:45 +0000)
committerDmitry Volyntsev <xeioex@nginx.com>
Fri, 26 Feb 2021 17:45:56 +0000 (17:45 +0000)
Is an alias to $status variable.

nginx/ngx_js.c
nginx/ngx_js.h
nginx/ngx_stream_js_module.c

index e87b8252b1c33c39e017c1c5327f664af3188cb0..64db0478f2350f727c54d7358712eb15c51ea7b2 100644 (file)
@@ -185,6 +185,27 @@ ngx_js_ext_string(njs_vm_t *vm, njs_object_prop_t *prop, njs_value_t *value,
 }
 
 
+njs_int_t
+ngx_js_ext_uint(njs_vm_t *vm, njs_object_prop_t *prop, njs_value_t *value,
+    njs_value_t *setval, njs_value_t *retval)
+{
+    char        *p;
+    ngx_uint_t   field;
+
+    p = njs_vm_external(vm, value);
+    if (p == NULL) {
+        njs_value_undefined_set(retval);
+        return NJS_DECLINED;
+    }
+
+    field = *(ngx_uint_t *) (p + njs_vm_prop_magic32(prop));
+
+    njs_value_number_set(retval, field);
+
+    return NJS_OK;
+}
+
+
 njs_int_t
 ngx_js_ext_constant(njs_vm_t *vm, njs_object_prop_t *prop,
     njs_value_t *value, njs_value_t *setval, njs_value_t *retval)
index bc80515efd2b463b397b58655cfe5e8d2e184413..395c0a120acc602902ddc2c297708a3a3dfe18a9 100644 (file)
@@ -57,6 +57,8 @@ njs_int_t ngx_js_ext_log(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs,
 
 njs_int_t ngx_js_ext_string(njs_vm_t *vm, njs_object_prop_t *prop,
     njs_value_t *value, njs_value_t *setval, njs_value_t *retval);
+njs_int_t ngx_js_ext_uint(njs_vm_t *vm, njs_object_prop_t *prop,
+    njs_value_t *value, njs_value_t *setval, njs_value_t *retval);
 njs_int_t ngx_js_ext_constant(njs_vm_t *vm, njs_object_prop_t *prop,
     njs_value_t *value, njs_value_t *setval, njs_value_t *retval);
 njs_int_t ngx_js_ext_boolean(njs_vm_t *vm, njs_object_prop_t *prop,
index 99ebfd4c4e4490a11f2a95c9989cc72e1399bc3e..f729edf0979b3eca599d4193d55692fd8070422c 100644 (file)
@@ -224,6 +224,16 @@ static njs_external_t  ngx_stream_js_ext_session[] = {
         }
     },
 
+    {
+        .flags = NJS_EXTERN_PROPERTY,
+        .name.string = njs_str("status"),
+        .enumerable = 1,
+        .u.property = {
+            .handler = ngx_js_ext_uint,
+            .magic32 = offsetof(ngx_stream_session_t, status),
+        }
+    },
+
     {
         .flags = NJS_EXTERN_PROPERTY,
         .name.string = njs_str("remoteAddress"),