aboutsummaryrefslogtreecommitdiff
path: root/src/stream/ngx_stream_script.c
diff options
context:
space:
mode:
authorMaxim Dounin <mdounin@mdounin.ru>2021-05-06 02:22:09 +0300
committerMaxim Dounin <mdounin@mdounin.ru>2021-05-06 02:22:09 +0300
commitc7de65228f798c3c5391370fcd2d10032aa6eaf8 (patch)
treede6045ed738551e1ba548a25a304e4d4f062c8aa /src/stream/ngx_stream_script.c
parenta6bce8c2274c971d4d61b78e002857d1ec69a901 (diff)
downloadnginx-c7de65228f798c3c5391370fcd2d10032aa6eaf8.tar.gz
nginx-c7de65228f798c3c5391370fcd2d10032aa6eaf8.zip
Upstream: variables support in certificates.
Diffstat (limited to 'src/stream/ngx_stream_script.c')
-rw-r--r--src/stream/ngx_stream_script.c38
1 files changed, 38 insertions, 0 deletions
diff --git a/src/stream/ngx_stream_script.c b/src/stream/ngx_stream_script.c
index 76d347599..c447e152f 100644
--- a/src/stream/ngx_stream_script.c
+++ b/src/stream/ngx_stream_script.c
@@ -278,6 +278,44 @@ ngx_stream_set_complex_value_slot(ngx_conf_t *cf, ngx_command_t *cmd,
char *
+ngx_stream_set_complex_value_zero_slot(ngx_conf_t *cf, ngx_command_t *cmd,
+ void *conf)
+{
+ char *p = conf;
+
+ ngx_str_t *value;
+ ngx_stream_complex_value_t **cv;
+ ngx_stream_compile_complex_value_t ccv;
+
+ cv = (ngx_stream_complex_value_t **) (p + cmd->offset);
+
+ if (*cv != NGX_CONF_UNSET_PTR) {
+ return "is duplicate";
+ }
+
+ *cv = ngx_palloc(cf->pool, sizeof(ngx_stream_complex_value_t));
+ if (*cv == NULL) {
+ return NGX_CONF_ERROR;
+ }
+
+ value = cf->args->elts;
+
+ ngx_memzero(&ccv, sizeof(ngx_stream_compile_complex_value_t));
+
+ ccv.cf = cf;
+ ccv.value = &value[1];
+ ccv.complex_value = *cv;
+ ccv.zero = 1;
+
+ if (ngx_stream_compile_complex_value(&ccv) != NGX_OK) {
+ return NGX_CONF_ERROR;
+ }
+
+ return NGX_CONF_OK;
+}
+
+
+char *
ngx_stream_set_complex_value_size_slot(ngx_conf_t *cf, ngx_command_t *cmd,
void *conf)
{