From 1e6892bc7d180f499d8eff8bfb8e5e8a410ab14e Mon Sep 17 00:00:00 2001 From: Dmitry Volyntsev Date: Wed, 21 Mar 2018 17:33:12 +0300 Subject: [PATCH] http req.response() method. --- nginx/ngx_http_js_module.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/nginx/ngx_http_js_module.c b/nginx/ngx_http_js_module.c index 0e707682..367edb7d 100644 --- a/nginx/ngx_http_js_module.c +++ b/nginx/ngx_http_js_module.c @@ -105,6 +105,8 @@ static njs_ret_t ngx_http_js_ext_next_arg(njs_vm_t *vm, njs_value_t *value, void *obj, void *next); static njs_ret_t ngx_http_js_ext_get_variable(njs_vm_t *vm, njs_value_t *value, void *obj, uintptr_t data); +static njs_ret_t ngx_http_js_ext_get_response(njs_vm_t *vm, njs_value_t *value, + void *obj, uintptr_t data); static njs_host_event_t ngx_http_js_set_timer(njs_external_ptr_t external, uint64_t delay, njs_vm_event_t vm_event); @@ -367,6 +369,18 @@ static njs_external_t ngx_http_js_ext_request[] = { NULL, NULL, 0 }, + + { nxt_string("response"), + NJS_EXTERN_PROPERTY, + NULL, + 0, + ngx_http_js_ext_get_response, + NULL, + NULL, + NULL, + NULL, + NULL, + 0 }, }; @@ -1293,6 +1307,23 @@ ngx_http_js_ext_get_variable(njs_vm_t *vm, njs_value_t *value, void *obj, } +static njs_ret_t +ngx_http_js_ext_get_response(njs_vm_t *vm, njs_value_t *value, void *obj, + uintptr_t data) +{ + ngx_http_js_ctx_t *ctx; + ngx_http_request_t *r; + + r = (ngx_http_request_t *) obj; + + ctx = ngx_http_get_module_ctx(r, ngx_http_js_module); + + njs_vm_retval_set(ctx->vm, &ctx->args[1]); + + return NJS_OK; +} + + static njs_host_event_t ngx_http_js_set_timer(njs_external_ptr_t external, uint64_t delay, njs_vm_event_t vm_event) -- 2.47.3