From 51326759b5b5bebc960d7b89ab92a24c55639ffc Mon Sep 17 00:00:00 2001 From: Dmitry Volyntsev Date: Wed, 3 Sep 2025 22:44:04 -0700 Subject: [PATCH] Modules: simplified access to nginx values from JS engines. --- nginx/ngx_http_js_module.c | 87 +++++------------------------------- nginx/ngx_js.h | 76 ++++++++++++++++--------------- nginx/ngx_js_fetch.c | 21 +++++---- nginx/ngx_js_http.c | 6 +-- nginx/ngx_js_http.h | 2 +- nginx/ngx_qjs_fetch.c | 11 ++--- nginx/ngx_stream_js_module.c | 86 +++++------------------------------ 7 files changed, 83 insertions(+), 206 deletions(-) diff --git a/nginx/ngx_http_js_module.c b/nginx/ngx_http_js_module.c index 286a0a78..736635cd 100644 --- a/nginx/ngx_http_js_module.c +++ b/nginx/ngx_http_js_module.c @@ -358,10 +358,8 @@ static void ngx_http_qjs_periodic_finalizer(JSRuntime *rt, JSValue val); static ngx_pool_t *ngx_http_js_pool(ngx_http_request_t *r); static ngx_resolver_t *ngx_http_js_resolver(ngx_http_request_t *r); static ngx_msec_t ngx_http_js_resolver_timeout(ngx_http_request_t *r); -static ngx_msec_t ngx_http_js_fetch_timeout(ngx_http_request_t *r); -static size_t ngx_http_js_buffer_size(ngx_http_request_t *r); -static size_t ngx_http_js_max_response_buffer_size(ngx_http_request_t *r); static void ngx_http_js_event_finalize(ngx_http_request_t *r, ngx_int_t rc); +static ngx_js_loc_conf_t *ngx_http_js_loc_conf(ngx_http_request_t *r); static ngx_js_ctx_t *ngx_http_js_ctx(ngx_http_request_t *r); static void ngx_http_js_periodic_handler(ngx_event_t *ev); @@ -391,9 +389,6 @@ static void *ngx_http_js_create_loc_conf(ngx_conf_t *cf); static char *ngx_http_js_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child); -static ngx_ssl_t *ngx_http_js_ssl(ngx_http_request_t *r); -static ngx_flag_t ngx_http_js_ssl_verify(ngx_http_request_t *r); - static ngx_int_t ngx_http_js_parse_unsafe_uri(ngx_http_request_t *r, njs_str_t *uri, njs_str_t *args); @@ -972,13 +967,9 @@ static uintptr_t ngx_http_js_uptr[] = { (uintptr_t) ngx_http_js_resolver, (uintptr_t) ngx_http_js_resolver_timeout, (uintptr_t) ngx_http_js_event_finalize, - (uintptr_t) ngx_http_js_ssl, - (uintptr_t) ngx_http_js_ssl_verify, - (uintptr_t) ngx_http_js_fetch_timeout, - (uintptr_t) ngx_http_js_buffer_size, - (uintptr_t) ngx_http_js_max_response_buffer_size, - (uintptr_t) 0 /* main_conf ptr */, + (uintptr_t) ngx_http_js_loc_conf, (uintptr_t) ngx_http_js_ctx, + (uintptr_t) 0 /* main_conf ptr */, }; @@ -4666,39 +4657,6 @@ ngx_http_js_resolver_timeout(ngx_http_request_t *r) } -static ngx_msec_t -ngx_http_js_fetch_timeout(ngx_http_request_t *r) -{ - ngx_http_js_loc_conf_t *jlcf; - - jlcf = ngx_http_get_module_loc_conf(r, ngx_http_js_module); - - return jlcf->timeout; -} - - -static size_t -ngx_http_js_buffer_size(ngx_http_request_t *r) -{ - ngx_http_js_loc_conf_t *jlcf; - - jlcf = ngx_http_get_module_loc_conf(r, ngx_http_js_module); - - return jlcf->buffer_size; -} - - -static size_t -ngx_http_js_max_response_buffer_size(ngx_http_request_t *r) -{ - ngx_http_js_loc_conf_t *jlcf; - - jlcf = ngx_http_get_module_loc_conf(r, ngx_http_js_module); - - return jlcf->max_response_body_size; -} - - static void ngx_http_js_event_finalize(ngx_http_request_t *r, ngx_int_t rc) { @@ -4721,6 +4679,13 @@ ngx_http_js_event_finalize(ngx_http_request_t *r, ngx_int_t rc) } +static ngx_js_loc_conf_t * +ngx_http_js_loc_conf(ngx_http_request_t *r) +{ + return ngx_http_get_module_loc_conf(r, ngx_http_js_module); +} + + static ngx_js_ctx_t * ngx_http_js_ctx(ngx_http_request_t *r) { @@ -7724,7 +7689,7 @@ ngx_http_js_init_conf_vm(ngx_conf_t *cf, ngx_js_loc_conf_t *conf) options.engine = conf->type; jmcf = ngx_http_conf_get_module_main_conf(cf, ngx_http_js_module); - ngx_http_js_uptr[NGX_JS_MAIN_CONF_INDEX] = (uintptr_t) jmcf; + ngx_http_js_uptr[NGX_JS_EXTERNAL_MAIN_CONF] = (uintptr_t) jmcf; if (conf->type == NGX_ENGINE_NJS) { options.u.njs.metas = &ngx_http_js_metas; @@ -8236,36 +8201,6 @@ ngx_http_js_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child) } -static ngx_ssl_t * -ngx_http_js_ssl(ngx_http_request_t *r) -{ -#if (NGX_HTTP_SSL) - ngx_http_js_loc_conf_t *jlcf; - - jlcf = ngx_http_get_module_loc_conf(r, ngx_http_js_module); - - return jlcf->ssl; -#else - return NULL; -#endif -} - - -static ngx_flag_t -ngx_http_js_ssl_verify(ngx_http_request_t *r) -{ -#if (NGX_HTTP_SSL) - ngx_http_js_loc_conf_t *jlcf; - - jlcf = ngx_http_get_module_loc_conf(r, ngx_http_js_module); - - return jlcf->ssl_verify; -#else - return 0; -#endif -} - - static ngx_int_t ngx_http_js_parse_unsafe_uri(ngx_http_request_t *r, njs_str_t *uri, njs_str_t *args) diff --git a/nginx/ngx_js.h b/nginx/ngx_js.h index 032bd415..257227e5 100644 --- a/nginx/ngx_js.h +++ b/nginx/ngx_js.h @@ -80,9 +80,7 @@ typedef ngx_pool_t *(*ngx_external_pool_pt)(njs_external_ptr_t e); typedef void (*ngx_js_event_finalize_pt)(njs_external_ptr_t e, ngx_int_t rc); typedef ngx_resolver_t *(*ngx_external_resolver_pt)(njs_external_ptr_t e); typedef ngx_msec_t (*ngx_external_timeout_pt)(njs_external_ptr_t e); -typedef ngx_flag_t (*ngx_external_flag_pt)(njs_external_ptr_t e); -typedef ngx_flag_t (*ngx_external_size_pt)(njs_external_ptr_t e); -typedef ngx_ssl_t *(*ngx_external_ssl_pt)(njs_external_ptr_t e); +typedef ngx_js_loc_conf_t *(*ngx_js_external_loc_conf_pt)(njs_external_ptr_t e); typedef ngx_js_ctx_t *(*ngx_js_external_ctx_pt)(njs_external_ptr_t e); @@ -272,31 +270,35 @@ struct ngx_engine_s { }; +enum { + NGX_JS_EXTERNAL_CONNECTION = 0, + NGX_JS_EXTERNAL_POOL, + NGX_JS_EXTERNAL_RESOLVER, + NGX_JS_EXTERNAL_RESOLVER_TIMEOUT, + NGX_JS_EXTERNAL_EVENT_FINALIZE, + NGX_JS_EXTERNAL_LOC_CONF, + NGX_JS_EXTERNAL_CTX, + NGX_JS_EXTERNAL_MAIN_CONF, +}; + #define ngx_external_connection(vm, e) \ - (*((ngx_connection_t **) ((u_char *) (e) + njs_vm_meta(vm, 0)))) + (*((ngx_connection_t **) \ + ((u_char *) (e) + njs_vm_meta(vm, NGX_JS_EXTERNAL_CONNECTION)))) #define ngx_external_pool(vm, e) \ - ((ngx_external_pool_pt) njs_vm_meta(vm, 1))(e) + ((ngx_external_pool_pt) njs_vm_meta(vm, NGX_JS_EXTERNAL_POOL))(e) #define ngx_external_resolver(vm, e) \ - ((ngx_external_resolver_pt) njs_vm_meta(vm, 2))(e) + ((ngx_external_resolver_pt) njs_vm_meta(vm, NGX_JS_EXTERNAL_RESOLVER))(e) #define ngx_external_resolver_timeout(vm, e) \ - ((ngx_external_timeout_pt) njs_vm_meta(vm, 3))(e) + ((ngx_external_timeout_pt) \ + njs_vm_meta(vm, NGX_JS_EXTERNAL_RESOLVER_TIMEOUT))(e) #define ngx_external_event_finalize(vm) \ - ((ngx_js_event_finalize_pt) njs_vm_meta(vm, 4)) -#define ngx_external_ssl(vm, e) \ - ((ngx_external_ssl_pt) njs_vm_meta(vm, 5))(e) -#define ngx_external_ssl_verify(vm, e) \ - ((ngx_external_flag_pt) njs_vm_meta(vm, 6))(e) -#define ngx_external_fetch_timeout(vm, e) \ - ((ngx_external_timeout_pt) njs_vm_meta(vm, 7))(e) -#define ngx_external_buffer_size(vm, e) \ - ((ngx_external_size_pt) njs_vm_meta(vm, 8))(e) -#define ngx_external_max_response_buffer_size(vm, e) \ - ((ngx_external_size_pt) njs_vm_meta(vm, 9))(e) -#define NGX_JS_MAIN_CONF_INDEX 10 -#define ngx_main_conf(vm) \ - ((ngx_js_main_conf_t *) njs_vm_meta(vm, NGX_JS_MAIN_CONF_INDEX)) + ((ngx_js_event_finalize_pt) njs_vm_meta(vm, NGX_JS_EXTERNAL_EVENT_FINALIZE)) +#define ngx_external_loc_conf(vm, e) \ + ((ngx_js_external_loc_conf_pt) njs_vm_meta(vm, NGX_JS_EXTERNAL_LOC_CONF))(e) #define ngx_external_ctx(vm, e) \ - ((ngx_js_external_ctx_pt) njs_vm_meta(vm, 11))(e) + ((ngx_js_external_ctx_pt) njs_vm_meta(vm, NGX_JS_EXTERNAL_CTX))(e) +#define ngx_main_conf(vm) \ + ((ngx_js_main_conf_t *) njs_vm_meta(vm, NGX_JS_EXTERNAL_MAIN_CONF)) #define ngx_js_prop(vm, type, value, start, len) \ @@ -367,29 +369,33 @@ JSValue ngx_qjs_ext_fetch(JSContext *cx, JSValueConst this_val, int argc, #define ngx_qjs_meta(cx, i) \ ((uintptr_t *) JS_GetRuntimeOpaque(JS_GetRuntime(cx)))[i] #define ngx_qjs_external_connection(cx, e) \ - (*((ngx_connection_t **) ((u_char *) (e) + ngx_qjs_meta(cx, 0)))) + (*((ngx_connection_t **) \ + ((u_char *) (e) + ngx_qjs_meta(cx, NGX_JS_EXTERNAL_CONNECTION)))) #define ngx_qjs_external_pool(cx, e) \ - ((ngx_external_pool_pt) ngx_qjs_meta(cx, 1))(e) + ((ngx_external_pool_pt) ngx_qjs_meta(cx, NGX_JS_EXTERNAL_POOL))(e) #define ngx_qjs_external_resolver(cx, e) \ - ((ngx_external_resolver_pt) ngx_qjs_meta(cx, 2))(e) + ((ngx_external_resolver_pt) ngx_qjs_meta(cx, NGX_JS_EXTERNAL_RESOLVER))(e) #define ngx_qjs_external_resolver_timeout(cx, e) \ - ((ngx_external_timeout_pt) ngx_qjs_meta(cx, 3))(e) + ((ngx_external_timeout_pt) \ + ngx_qjs_meta(cx, NGX_JS_EXTERNAL_RESOLVER_TIMEOUT))(e) #define ngx_qjs_external_event_finalize(cx) \ - ((ngx_js_event_finalize_pt) ngx_qjs_meta(cx, 4)) + ((ngx_js_event_finalize_pt) ngx_qjs_meta(cx, NGX_JS_EXTERNAL_EVENT_FINALIZE)) +#define ngx_qjs_external_loc_conf(cx, e) \ + ((ngx_js_external_loc_conf_pt) ngx_qjs_meta(cx, NGX_JS_EXTERNAL_LOC_CONF))(e) #define ngx_qjs_external_ssl(cx, e) \ - ((ngx_external_ssl_pt) ngx_qjs_meta(cx, 5))(e) + (ngx_qjs_external_loc_conf(cx, e)->ssl) #define ngx_qjs_external_ssl_verify(cx, e) \ - ((ngx_external_flag_pt) ngx_qjs_meta(cx, 6))(e) + (ngx_qjs_external_loc_conf(cx, e)->ssl_verify) #define ngx_qjs_external_fetch_timeout(cx, e) \ - ((ngx_external_timeout_pt) ngx_qjs_meta(cx, 7))(e) + (ngx_qjs_external_loc_conf(cx, e)->timeout) #define ngx_qjs_external_buffer_size(cx, e) \ - ((ngx_external_size_pt) ngx_qjs_meta(cx, 8))(e) + (ngx_qjs_external_loc_conf(cx, e)->buffer_size) #define ngx_qjs_external_max_response_buffer_size(cx, e) \ - ((ngx_external_size_pt) ngx_qjs_meta(cx, 9))(e) -#define ngx_qjs_main_conf(cx) \ - ((ngx_js_main_conf_t *) ngx_qjs_meta(cx, NGX_JS_MAIN_CONF_INDEX)) + (ngx_qjs_external_loc_conf(cx, e)->max_response_body_size) #define ngx_qjs_external_ctx(cx, e) \ - ((ngx_js_external_ctx_pt) ngx_qjs_meta(cx, 11))(e) + ((ngx_js_external_ctx_pt) ngx_qjs_meta(cx, NGX_JS_EXTERNAL_CTX))(e) +#define ngx_qjs_main_conf(cx) \ + ((ngx_js_main_conf_t *) ngx_qjs_meta(cx, NGX_JS_EXTERNAL_MAIN_CONF)) extern qjs_module_t qjs_webcrypto_module; extern qjs_module_t qjs_xml_module; diff --git a/nginx/ngx_js_fetch.c b/nginx/ngx_js_fetch.c index faa38aab..1c74bde6 100644 --- a/nginx/ngx_js_fetch.c +++ b/nginx/ngx_js_fetch.c @@ -40,7 +40,7 @@ static njs_int_t ngx_js_headers_inherit(njs_vm_t *vm, ngx_js_headers_t *headers, static njs_int_t ngx_js_headers_fill(njs_vm_t *vm, ngx_js_headers_t *headers, njs_value_t *init); static ngx_js_fetch_t *ngx_js_fetch_alloc(njs_vm_t *vm, ngx_pool_t *pool, - ngx_log_t *log); + ngx_log_t *log, ngx_js_loc_conf_t *conf); static void ngx_js_fetch_error(ngx_js_http_t *http, const char *err); static void ngx_js_fetch_destructor(ngx_js_event_t *event); static njs_int_t ngx_js_fetch_promissified_result(njs_vm_t *vm, @@ -537,7 +537,8 @@ ngx_js_ext_fetch(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs, c = ngx_external_connection(vm, external); pool = ngx_external_pool(vm, external); - fetch = ngx_js_fetch_alloc(vm, pool, c->log); + fetch = ngx_js_fetch_alloc(vm, pool, c->log, + ngx_external_loc_conf(vm, external)); if (fetch == NULL) { return NJS_ERROR; } @@ -550,15 +551,13 @@ ngx_js_ext_fetch(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs, } http->response.url = request.url; - http->timeout = ngx_external_fetch_timeout(vm, external); - http->buffer_size = ngx_external_buffer_size(vm, external); - http->max_response_body_size = - ngx_external_max_response_buffer_size(vm, external); + http->buffer_size = http->conf->buffer_size; + http->max_response_body_size = http->conf->max_response_body_size; #if (NGX_SSL) if (u.default_port == 443) { - http->ssl = ngx_external_ssl(vm, external); - http->ssl_verify = ngx_external_ssl_verify(vm, external); + http->ssl = http->conf->ssl; + http->ssl_verify = http->conf->ssl_verify; } #endif @@ -1134,7 +1133,8 @@ ngx_js_headers_fill(njs_vm_t *vm, ngx_js_headers_t *headers, njs_value_t *init) static ngx_js_fetch_t * -ngx_js_fetch_alloc(njs_vm_t *vm, ngx_pool_t *pool, ngx_log_t *log) +ngx_js_fetch_alloc(njs_vm_t *vm, ngx_pool_t *pool, ngx_log_t *log, + ngx_js_loc_conf_t *conf) { njs_int_t ret; ngx_js_ctx_t *ctx; @@ -1152,8 +1152,7 @@ ngx_js_fetch_alloc(njs_vm_t *vm, ngx_pool_t *pool, ngx_log_t *log) http->pool = pool; http->log = log; - - http->timeout = 10000; + http->conf = conf; http->http_parse.content_length_n = -1; diff --git a/nginx/ngx_js_http.c b/nginx/ngx_js_http.c index 4555a7ac..92e7b94b 100644 --- a/nginx/ngx_js_http.c +++ b/nginx/ngx_js_http.c @@ -255,8 +255,8 @@ ngx_js_http_connect(ngx_js_http_t *http) http->process = ngx_js_http_process_status_line; - ngx_add_timer(http->peer.connection->read, http->timeout); - ngx_add_timer(http->peer.connection->write, http->timeout); + ngx_add_timer(http->peer.connection->read, http->conf->timeout); + ngx_add_timer(http->peer.connection->write, http->conf->timeout); #if (NGX_SSL) if (http->ssl != NULL && http->peer.connection->ssl == NULL) { @@ -522,7 +522,7 @@ ngx_js_http_write_handler(ngx_event_t *wev) } if (!wev->timer_set) { - ngx_add_timer(wev, http->timeout); + ngx_add_timer(wev, http->conf->timeout); } } diff --git a/nginx/ngx_js_http.h b/nginx/ngx_js_http.h index 63d0f035..027d0b21 100644 --- a/nginx/ngx_js_http.h +++ b/nginx/ngx_js_http.h @@ -114,8 +114,8 @@ struct ngx_js_http_s { in_port_t port; ngx_peer_connection_t peer; - ngx_msec_t timeout; + ngx_js_loc_conf_t *conf; ngx_int_t buffer_size; ngx_int_t max_response_body_size; diff --git a/nginx/ngx_qjs_fetch.c b/nginx/ngx_qjs_fetch.c index 46b54eab..f855e099 100644 --- a/nginx/ngx_qjs_fetch.c +++ b/nginx/ngx_qjs_fetch.c @@ -39,7 +39,7 @@ static ngx_int_t ngx_qjs_headers_inherit(JSContext *cx, static ngx_int_t ngx_qjs_headers_fill(JSContext *cx, ngx_js_headers_t *headers, JSValue init); static ngx_qjs_fetch_t *ngx_qjs_fetch_alloc(JSContext *cx, ngx_pool_t *pool, - ngx_log_t *log); + ngx_log_t *log, ngx_js_loc_conf_t *conf); static void ngx_qjs_fetch_error(ngx_js_http_t *http, const char *err); static void ngx_qjs_fetch_destructor(ngx_qjs_event_t *event); static void ngx_qjs_fetch_done(ngx_qjs_fetch_t *fetch, JSValue retval, @@ -257,7 +257,8 @@ ngx_qjs_ext_fetch(JSContext *cx, JSValueConst this_val, int argc, c = ngx_qjs_external_connection(cx, external); pool = ngx_qjs_external_pool(cx, external); - fetch = ngx_qjs_fetch_alloc(cx, pool, c->log); + fetch = ngx_qjs_fetch_alloc(cx, pool, c->log, + ngx_qjs_external_loc_conf(cx, external)); if (fetch == NULL) { return JS_ThrowOutOfMemory(cx); } @@ -271,7 +272,6 @@ ngx_qjs_ext_fetch(JSContext *cx, JSValueConst this_val, int argc, http = &fetch->http; http->response.url = request.url; - http->timeout = ngx_qjs_external_fetch_timeout(cx, external); http->buffer_size = ngx_qjs_external_buffer_size(cx, external); http->max_response_body_size = ngx_qjs_external_max_response_buffer_size(cx, external); @@ -1193,7 +1193,8 @@ fail: static ngx_qjs_fetch_t * -ngx_qjs_fetch_alloc(JSContext *cx, ngx_pool_t *pool, ngx_log_t *log) +ngx_qjs_fetch_alloc(JSContext *cx, ngx_pool_t *pool, ngx_log_t *log, + ngx_js_loc_conf_t *conf) { ngx_js_ctx_t *ctx; ngx_js_http_t *http; @@ -1210,7 +1211,7 @@ ngx_qjs_fetch_alloc(JSContext *cx, ngx_pool_t *pool, ngx_log_t *log) http->pool = pool; http->log = log; - http->timeout = 10000; + http->conf = conf; http->http_parse.content_length_n = -1; diff --git a/nginx/ngx_stream_js_module.c b/nginx/ngx_stream_js_module.c index 5ccc08a2..1257abb5 100644 --- a/nginx/ngx_stream_js_module.c +++ b/nginx/ngx_stream_js_module.c @@ -194,10 +194,8 @@ static void ngx_stream_qjs_periodic_finalizer(JSRuntime *rt, JSValue val); static ngx_pool_t *ngx_stream_js_pool(ngx_stream_session_t *s); static ngx_resolver_t *ngx_stream_js_resolver(ngx_stream_session_t *s); static ngx_msec_t ngx_stream_js_resolver_timeout(ngx_stream_session_t *s); -static ngx_msec_t ngx_stream_js_fetch_timeout(ngx_stream_session_t *s); -static size_t ngx_stream_js_buffer_size(ngx_stream_session_t *s); -static size_t ngx_stream_js_max_response_buffer_size(ngx_stream_session_t *s); static void ngx_stream_js_event_finalize(ngx_stream_session_t *s, ngx_int_t rc); +static ngx_js_loc_conf_t *ngx_stream_js_srv_conf(ngx_stream_session_t *s); static ngx_js_ctx_t *ngx_stream_js_ctx(ngx_stream_session_t *s); static void ngx_stream_js_periodic_handler(ngx_event_t *ev); @@ -225,8 +223,6 @@ static char *ngx_stream_js_merge_srv_conf(ngx_conf_t *cf, void *parent, static char *ngx_stream_js_shared_dict_zone(ngx_conf_t *cf, ngx_command_t *cmd, void *conf); -static ngx_ssl_t *ngx_stream_js_ssl(ngx_stream_session_t *s); -static ngx_flag_t ngx_stream_js_ssl_verify(ngx_stream_session_t *s); static ngx_conf_bitmask_t ngx_stream_js_engines[] = { { ngx_string("njs"), NGX_ENGINE_NJS }, @@ -710,13 +706,9 @@ static uintptr_t ngx_stream_js_uptr[] = { (uintptr_t) ngx_stream_js_resolver, (uintptr_t) ngx_stream_js_resolver_timeout, (uintptr_t) ngx_stream_js_event_finalize, - (uintptr_t) ngx_stream_js_ssl, - (uintptr_t) ngx_stream_js_ssl_verify, - (uintptr_t) ngx_stream_js_fetch_timeout, - (uintptr_t) ngx_stream_js_buffer_size, - (uintptr_t) ngx_stream_js_max_response_buffer_size, - (uintptr_t) 0 /* main_conf ptr */, + (uintptr_t) ngx_stream_js_srv_conf, (uintptr_t) ngx_stream_js_ctx, + (uintptr_t) 0 /* main_conf ptr */, }; @@ -1891,39 +1883,6 @@ ngx_stream_js_resolver_timeout(ngx_stream_session_t *s) } -static ngx_msec_t -ngx_stream_js_fetch_timeout(ngx_stream_session_t *s) -{ - ngx_stream_js_srv_conf_t *jscf; - - jscf = ngx_stream_get_module_srv_conf(s, ngx_stream_js_module); - - return jscf->timeout; -} - - -static size_t -ngx_stream_js_buffer_size(ngx_stream_session_t *s) -{ - ngx_stream_js_srv_conf_t *jscf; - - jscf = ngx_stream_get_module_srv_conf(s, ngx_stream_js_module); - - return jscf->buffer_size; -} - - -static size_t -ngx_stream_js_max_response_buffer_size(ngx_stream_session_t *s) -{ - ngx_stream_js_srv_conf_t *jscf; - - jscf = ngx_stream_get_module_srv_conf(s, ngx_stream_js_module); - - return jscf->max_response_body_size; -} - - static void ngx_stream_js_event_finalize(ngx_stream_session_t *s, ngx_int_t rc) { @@ -1946,6 +1905,13 @@ ngx_stream_js_event_finalize(ngx_stream_session_t *s, ngx_int_t rc) } +static ngx_js_loc_conf_t * +ngx_stream_js_srv_conf(ngx_stream_session_t *s) +{ + return ngx_stream_get_module_srv_conf(s, ngx_stream_js_module); +} + + static ngx_js_ctx_t * ngx_stream_js_ctx(ngx_stream_session_t *s) { @@ -3025,7 +2991,7 @@ ngx_stream_js_init_conf_vm(ngx_conf_t *cf, ngx_js_loc_conf_t *conf) options.engine = conf->type; jmcf = ngx_stream_conf_get_module_main_conf(cf, ngx_stream_js_module); - ngx_stream_js_uptr[NGX_JS_MAIN_CONF_INDEX] = (uintptr_t) jmcf; + ngx_stream_js_uptr[NGX_JS_EXTERNAL_MAIN_CONF] = (uintptr_t) jmcf; if (conf->type == NGX_ENGINE_NJS) { options.u.njs.metas = &ngx_stream_js_metas; @@ -3716,33 +3682,3 @@ ngx_stream_js_init(ngx_conf_t *cf) return NGX_OK; } - - -static ngx_ssl_t * -ngx_stream_js_ssl(ngx_stream_session_t *s) -{ -#if (NGX_STREAM_SSL) - ngx_stream_js_srv_conf_t *jscf; - - jscf = ngx_stream_get_module_srv_conf(s, ngx_stream_js_module); - - return jscf->ssl; -#else - return NULL; -#endif -} - - -static ngx_flag_t -ngx_stream_js_ssl_verify(ngx_stream_session_t *s) -{ -#if (NGX_STREAM_SSL) - ngx_stream_js_srv_conf_t *jscf; - - jscf = ngx_stream_get_module_srv_conf(s, ngx_stream_js_module); - - return jscf->ssl_verify; -#else - return 0; -#endif -} -- 2.47.3