[njs] Modules: simplified access to nginx values from JS engines.
noreply at nginx.com
noreply at nginx.com
Tue Sep 16 23:08:02 UTC 2025
details: https://github.com/nginx/njs/commit/51326759b5b5bebc960d7b89ab92a24c55639ffc
branches: master
commit: 51326759b5b5bebc960d7b89ab92a24c55639ffc
user: Dmitry Volyntsev <xeioex at nginx.com>
date: Wed, 3 Sep 2025 22:44:04 -0700
description:
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
-}
More information about the nginx-devel
mailing list