[PATCH v7 09/14] nxt_http_static_iterate(): generalize code
Alejandro Colomar
alx.manpages at gmail.com
Tue Feb 15 15:25:19 UTC 2022
Separate into separate blocks of code the initialization of the
var query, and the final action, to allow for a simpler patch that
allows using variables for the 'index'.
Add a nxt_bool_t shr_is_const variable to allow for a similar
idx_is_const, and improve readability.
Signed-off-by: Alejandro Colomar <alx.manpages at gmail.com>
Cc: Nginx Unit <unit at nginx.org>
Cc: "Valentin V. Bartenev" <vbart at nginx.com>
Cc: Zhidao HONG <z.hong at f5.com>
Cc: Igor Sysoev <igor at sysoev.ru>
Cc: Oisin Canty <o.canty at f5.com>
Cc: Andrei Zeliankou <zelenkov at nginx.com>
Cc: Maxim Romanov <m.romanov at f5.com>
---
src/nxt_http_static.c | 28 ++++++++++++++++++----------
1 file changed, 18 insertions(+), 10 deletions(-)
diff --git a/src/nxt_http_static.c b/src/nxt_http_static.c
index 0327861..2528b95 100644
--- a/src/nxt_http_static.c
+++ b/src/nxt_http_static.c
@@ -226,6 +226,7 @@ nxt_http_static_iterate(nxt_task_t *task, nxt_http_request_t *r,
nxt_int_t ret;
nxt_http_static_conf_t *conf;
nxt_http_static_share_t *share;
+ nxt_bool_t shr_is_const;
conf = ctx->action->u.conf;
@@ -255,9 +256,19 @@ nxt_http_static_iterate(nxt_task_t *task, nxt_http_request_t *r,
#endif
#endif /* NXT_DEBUG */
+ shr_is_const = share->is_const;
+
+ if (!shr_is_const) {
+ ret = nxt_var_query_init(&r->var_query, r, r->mem_pool);
+ if (nxt_slow_path(ret != NXT_OK)) {
+ nxt_http_request_error(task, r, NXT_HTTP_INTERNAL_SERVER_ERROR);
+ return;
+ }
+ }
+
ctx->index = conf->index;
- if (share->is_const) {
+ if (shr_is_const) {
nxt_var_raw(share->var, &ctx->share);
#if (NXT_HAVE_OPENAT2)
@@ -266,15 +277,7 @@ nxt_http_static_iterate(nxt_task_t *task, nxt_http_request_t *r,
}
#endif
- nxt_http_static_send_ready(task, r, ctx);
-
} else {
- ret = nxt_var_query_init(&r->var_query, r, r->mem_pool);
- if (nxt_slow_path(ret != NXT_OK)) {
- nxt_http_request_error(task, r, NXT_HTTP_INTERNAL_SERVER_ERROR);
- return;
- }
-
nxt_var_query(task, r->var_query, share->var, &ctx->share);
#if (NXT_HAVE_OPENAT2)
@@ -282,11 +285,16 @@ nxt_http_static_iterate(nxt_task_t *task, nxt_http_request_t *r,
nxt_var_query(task, r->var_query, conf->chroot, &ctx->chroot);
}
#endif
+ }
+
+ if (shr_is_const) {
+ nxt_http_static_send_ready(task, r, ctx);
+ } else {
nxt_var_query_resolve(task, r->var_query, ctx,
nxt_http_static_send_ready,
nxt_http_static_var_error);
- }
+ }
}
--
2.34.1
More information about the unit
mailing list