details: https://hg.nginx.org/njs/rev/43e35b05fd1b branches: changeset: 1965:43e35b05fd1b user: Vadim Zhestikov <v.zhesti...@f5.com> date: Tue Sep 27 10:56:54 2022 -0700 description: Modules: js_merge_conf is moved to shared library.
diffstat: nginx/ngx_http_js_module.c | 88 +------------------------------------------- nginx/ngx_js.c | 87 +++++++++++++++++++++++++++++++++++++++++++ nginx/ngx_js.h | 21 +++++++++- nginx/ngx_stream_js_module.c | 89 +------------------------------------------- 4 files changed, 109 insertions(+), 176 deletions(-) diffs (374 lines): diff -r b92fa931a0f2 -r 43e35b05fd1b nginx/ngx_http_js_module.c --- a/nginx/ngx_http_js_module.c Tue Sep 27 09:32:56 2022 -0700 +++ b/nginx/ngx_http_js_module.c Tue Sep 27 10:56:54 2022 -0700 @@ -19,15 +19,6 @@ typedef struct { ngx_str_t header_filter; ngx_str_t body_filter; ngx_uint_t buffer_type; - -#if (NGX_HTTP_SSL) - ngx_ssl_t *ssl; - ngx_str_t ssl_ciphers; - ngx_uint_t ssl_protocols; - ngx_flag_t ssl_verify; - ngx_int_t ssl_verify_depth; - ngx_str_t ssl_trusted_certificate; -#endif } ngx_http_js_loc_conf_t; @@ -260,9 +251,6 @@ static void *ngx_http_js_create_loc_conf static char *ngx_http_js_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child); -#if (NGX_HTTP_SSL) -static char * ngx_http_js_set_ssl(ngx_conf_t *cf, ngx_http_js_loc_conf_t *jlcf); -#endif static ngx_ssl_t *ngx_http_js_ssl(njs_vm_t *vm, ngx_http_request_t *r); static ngx_flag_t ngx_http_js_ssl_verify(njs_vm_t *vm, ngx_http_request_t *r); @@ -4419,84 +4407,10 @@ ngx_http_js_merge_loc_conf(ngx_conf_t *c ngx_conf_merge_uint_value(conf->buffer_type, prev->buffer_type, NGX_JS_STRING); - ngx_conf_merge_msec_value(conf->timeout, prev->timeout, 60000); - ngx_conf_merge_size_value(conf->buffer_size, prev->buffer_size, 16384); - ngx_conf_merge_size_value(conf->max_response_body_size, - prev->max_response_body_size, 1048576); - - if (ngx_js_merge_vm(cf, (ngx_js_conf_t *) conf, (ngx_js_conf_t *) prev, - ngx_http_js_init_conf_vm) - != NGX_OK) - { - return NGX_CONF_ERROR; - } - -#if (NGX_HTTP_SSL) - ngx_conf_merge_str_value(conf->ssl_ciphers, prev->ssl_ciphers, "DEFAULT"); - - ngx_conf_merge_bitmask_value(conf->ssl_protocols, prev->ssl_protocols, - (NGX_CONF_BITMASK_SET|NGX_SSL_TLSv1 - |NGX_SSL_TLSv1_1|NGX_SSL_TLSv1_2)); - - ngx_conf_merge_value(conf->ssl_verify, prev->ssl_verify, 1); - ngx_conf_merge_value(conf->ssl_verify_depth, prev->ssl_verify_depth, 100); - - ngx_conf_merge_str_value(conf->ssl_trusted_certificate, - prev->ssl_trusted_certificate, ""); - - return ngx_http_js_set_ssl(cf, conf); -#else - return NGX_CONF_OK; -#endif + return ngx_js_merge_conf(cf, parent, child, ngx_http_js_init_conf_vm); } -#if (NGX_HTTP_SSL) - -static char * -ngx_http_js_set_ssl(ngx_conf_t *cf, ngx_http_js_loc_conf_t *jlcf) -{ - ngx_ssl_t *ssl; - ngx_pool_cleanup_t *cln; - - ssl = ngx_pcalloc(cf->pool, sizeof(ngx_ssl_t)); - if (ssl == NULL) { - return NGX_CONF_ERROR; - } - - jlcf->ssl = ssl; - ssl->log = cf->log; - - if (ngx_ssl_create(ssl, jlcf->ssl_protocols, NULL) != NGX_OK) { - return NGX_CONF_ERROR; - } - - cln = ngx_pool_cleanup_add(cf->pool, 0); - if (cln == NULL) { - ngx_ssl_cleanup_ctx(ssl); - return NGX_CONF_ERROR; - } - - cln->handler = ngx_ssl_cleanup_ctx; - cln->data = ssl; - - if (ngx_ssl_ciphers(NULL, ssl, &jlcf->ssl_ciphers, 0) != NGX_OK) { - return NGX_CONF_ERROR; - } - - if (ngx_ssl_trusted_certificate(cf, ssl, &jlcf->ssl_trusted_certificate, - jlcf->ssl_verify_depth) - != NGX_OK) - { - return NGX_CONF_ERROR; - } - - return NGX_CONF_OK; -} - -#endif - - static ngx_ssl_t * ngx_http_js_ssl(njs_vm_t *vm, ngx_http_request_t *r) { diff -r b92fa931a0f2 -r 43e35b05fd1b nginx/ngx_js.c --- a/nginx/ngx_js.c Tue Sep 27 09:32:56 2022 -0700 +++ b/nginx/ngx_js.c Tue Sep 27 10:56:54 2022 -0700 @@ -1039,3 +1039,90 @@ ngx_js_create_conf(ngx_conf_t *cf, size_ return conf; } + + +#if defined(NGX_HTTP_SSL) || defined(NGX_STREAM_SSL) + +static char * +ngx_js_set_ssl(ngx_conf_t *cf, ngx_js_conf_t *conf) +{ + ngx_ssl_t *ssl; + ngx_pool_cleanup_t *cln; + + ssl = ngx_pcalloc(cf->pool, sizeof(ngx_ssl_t)); + if (ssl == NULL) { + return NGX_CONF_ERROR; + } + + conf->ssl = ssl; + ssl->log = cf->log; + + if (ngx_ssl_create(ssl, conf->ssl_protocols, NULL) != NGX_OK) { + return NGX_CONF_ERROR; + } + + cln = ngx_pool_cleanup_add(cf->pool, 0); + if (cln == NULL) { + ngx_ssl_cleanup_ctx(ssl); + return NGX_CONF_ERROR; + } + + cln->handler = ngx_ssl_cleanup_ctx; + cln->data = ssl; + + if (ngx_ssl_ciphers(NULL, ssl, &conf->ssl_ciphers, 0) != NGX_OK) { + return NGX_CONF_ERROR; + } + + if (ngx_ssl_trusted_certificate(cf, ssl, &conf->ssl_trusted_certificate, + conf->ssl_verify_depth) + != NGX_OK) + { + return NGX_CONF_ERROR; + } + + return NGX_CONF_OK; +} + +#endif + + +char * +ngx_js_merge_conf(ngx_conf_t *cf, void *parent, void *child, + ngx_int_t (*init_vm)(ngx_conf_t *cf, ngx_js_conf_t *conf)) +{ + ngx_js_conf_t *prev = parent; + ngx_js_conf_t *conf = child; + + ngx_conf_merge_msec_value(conf->timeout, prev->timeout, 60000); + ngx_conf_merge_size_value(conf->buffer_size, prev->buffer_size, 16384); + ngx_conf_merge_size_value(conf->max_response_body_size, + prev->max_response_body_size, 1048576); + + if (ngx_js_merge_vm(cf, (ngx_js_conf_t *) conf, (ngx_js_conf_t *) prev, + init_vm) + != NGX_OK) + { + return NGX_CONF_ERROR; + } + +#if defined(NGX_HTTP_SSL) || defined(NGX_STREAM_SSL) + ngx_conf_merge_str_value(conf->ssl_ciphers, prev->ssl_ciphers, + "DEFAULT"); + + ngx_conf_merge_bitmask_value(conf->ssl_protocols, prev->ssl_protocols, + (NGX_CONF_BITMASK_SET|NGX_SSL_TLSv1 + |NGX_SSL_TLSv1_1|NGX_SSL_TLSv1_2)); + + ngx_conf_merge_value(conf->ssl_verify, prev->ssl_verify, 1); + ngx_conf_merge_value(conf->ssl_verify_depth, prev->ssl_verify_depth, + 100); + + ngx_conf_merge_str_value(conf->ssl_trusted_certificate, + prev->ssl_trusted_certificate, ""); + + return ngx_js_set_ssl(cf, conf); +#else + return NGX_CONF_OK; +#endif +} diff -r b92fa931a0f2 -r 43e35b05fd1b nginx/ngx_js.h --- a/nginx/ngx_js.h Tue Sep 27 09:32:56 2022 -0700 +++ b/nginx/ngx_js.h Tue Sep 27 10:56:54 2022 -0700 @@ -50,7 +50,7 @@ typedef struct { } ngx_js_named_path_t; -#define NGX_JS_COMMON_CONF \ +#define _NGX_JS_COMMON_CONF \ njs_vm_t *vm; \ ngx_array_t *imports; \ ngx_array_t *paths; \ @@ -62,6 +62,23 @@ typedef struct { size_t max_response_body_size; \ ngx_msec_t timeout + +#if defined(NGX_HTTP_SSL) || defined(NGX_STREAM_SSL) +#define NGX_JS_COMMON_CONF \ + _NGX_JS_COMMON_CONF; \ + \ + ngx_ssl_t *ssl; \ + ngx_str_t ssl_ciphers; \ + ngx_uint_t ssl_protocols; \ + ngx_flag_t ssl_verify; \ + ngx_int_t ssl_verify_depth; \ + ngx_str_t ssl_trusted_certificate + +#else +#define NGX_JS_COMMON_CONF _NGX_JS_COMMON_CONF +#endif + + typedef struct { NGX_JS_COMMON_CONF; } ngx_js_conf_t; @@ -113,6 +130,8 @@ ngx_int_t ngx_js_init_conf_vm(ngx_conf_t njs_vm_opt_t *options, ngx_int_t (*externals_init)(ngx_conf_t *cf, ngx_js_conf_t *conf)); ngx_js_conf_t *ngx_js_create_conf(ngx_conf_t *cf, size_t size); +char * ngx_js_merge_conf(ngx_conf_t *cf, void *parent, void *child, + ngx_int_t (*init_vm)(ngx_conf_t *cf, ngx_js_conf_t *conf)); 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); diff -r b92fa931a0f2 -r 43e35b05fd1b nginx/ngx_stream_js_module.c --- a/nginx/ngx_stream_js_module.c Tue Sep 27 09:32:56 2022 -0700 +++ b/nginx/ngx_stream_js_module.c Tue Sep 27 10:56:54 2022 -0700 @@ -18,15 +18,6 @@ typedef struct { ngx_str_t access; ngx_str_t preread; ngx_str_t filter; - -#if (NGX_STREAM_SSL) - ngx_ssl_t *ssl; - ngx_str_t ssl_ciphers; - ngx_flag_t ssl_verify; - ngx_uint_t ssl_protocols; - ngx_int_t ssl_verify_depth; - ngx_str_t ssl_trusted_certificate; -#endif } ngx_stream_js_srv_conf_t; @@ -133,10 +124,6 @@ static char *ngx_stream_js_merge_srv_con void *child); static ngx_int_t ngx_stream_js_init(ngx_conf_t *cf); -#if (NGX_STREAM_SSL) -static char * ngx_stream_js_set_ssl(ngx_conf_t *cf, - ngx_stream_js_srv_conf_t *jscf); -#endif static ngx_ssl_t *ngx_stream_js_ssl(njs_vm_t *vm, ngx_stream_session_t *s); static ngx_flag_t ngx_stream_js_ssl_verify(njs_vm_t *vm, ngx_stream_session_t *s); @@ -1847,35 +1834,7 @@ ngx_stream_js_merge_srv_conf(ngx_conf_t ngx_conf_merge_str_value(conf->preread, prev->preread, ""); ngx_conf_merge_str_value(conf->filter, prev->filter, ""); - ngx_conf_merge_msec_value(conf->timeout, prev->timeout, 60000); - ngx_conf_merge_size_value(conf->buffer_size, prev->buffer_size, 16384); - ngx_conf_merge_size_value(conf->max_response_body_size, - prev->max_response_body_size, 1048576); - - if (ngx_js_merge_vm(cf, (ngx_js_conf_t *) conf, (ngx_js_conf_t *) prev, - ngx_stream_js_init_conf_vm) - != NGX_OK) - { - return NGX_CONF_ERROR; - } - -#if (NGX_STREAM_SSL) - ngx_conf_merge_str_value(conf->ssl_ciphers, prev->ssl_ciphers, "DEFAULT"); - - ngx_conf_merge_bitmask_value(conf->ssl_protocols, prev->ssl_protocols, - (NGX_CONF_BITMASK_SET|NGX_SSL_TLSv1 - |NGX_SSL_TLSv1_1|NGX_SSL_TLSv1_2)); - - ngx_conf_merge_value(conf->ssl_verify, prev->ssl_verify, 1); - ngx_conf_merge_value(conf->ssl_verify_depth, prev->ssl_verify_depth, 100); - - ngx_conf_merge_str_value(conf->ssl_trusted_certificate, - prev->ssl_trusted_certificate, ""); - - return ngx_stream_js_set_ssl(cf, conf); -#else - return NGX_CONF_OK; -#endif + return ngx_js_merge_conf(cf, parent, child, ngx_stream_js_init_conf_vm); } @@ -1908,52 +1867,6 @@ ngx_stream_js_init(ngx_conf_t *cf) } -#if (NGX_STREAM_SSL) - -static char * -ngx_stream_js_set_ssl(ngx_conf_t *cf, ngx_stream_js_srv_conf_t *jscf) -{ - ngx_ssl_t *ssl; - ngx_pool_cleanup_t *cln; - - ssl = ngx_pcalloc(cf->pool, sizeof(ngx_ssl_t)); - if (ssl == NULL) { - return NGX_CONF_ERROR; - } - - jscf->ssl = ssl; - ssl->log = cf->log; - - if (ngx_ssl_create(ssl, jscf->ssl_protocols, NULL) != NGX_OK) { - return NGX_CONF_ERROR; - } - - cln = ngx_pool_cleanup_add(cf->pool, 0); - if (cln == NULL) { - ngx_ssl_cleanup_ctx(ssl); - return NGX_CONF_ERROR; - } - - cln->handler = ngx_ssl_cleanup_ctx; - cln->data = ssl; - - if (ngx_ssl_ciphers(NULL, ssl, &jscf->ssl_ciphers, 0) != NGX_OK) { - return NGX_CONF_ERROR; - } - - if (ngx_ssl_trusted_certificate(cf, ssl, &jscf->ssl_trusted_certificate, - jscf->ssl_verify_depth) - != NGX_OK) - { - return NGX_CONF_ERROR; - } - - return NGX_CONF_OK; -} - -#endif - - static ngx_ssl_t * ngx_stream_js_ssl(njs_vm_t *vm, ngx_stream_session_t *s) { _______________________________________________ nginx-devel mailing list -- nginx-devel@nginx.org To unsubscribe send an email to nginx-devel-le...@nginx.org