summaryrefslogtreecommitdiffhomepage
path: root/src/nxt_http_static.c
diff options
context:
space:
mode:
authorZhidao HONG <z.hong@f5.com>2022-11-20 23:15:01 +0800
committerZhidao HONG <z.hong@f5.com>2022-11-20 23:15:01 +0800
commit4735931ace321752c387dae04c8b217ef22897ee (patch)
treebb1a7a030094721d25683f999e828e7fab71c1f9 /src/nxt_http_static.c
parent0c9f417affcef25b2ede5aaf0967eb411a247e33 (diff)
downloadunit-4735931ace321752c387dae04c8b217ef22897ee.tar.gz
unit-4735931ace321752c387dae04c8b217ef22897ee.tar.bz2
Var: separating nxt_tstr_t from nxt_var_t.
It's for the introduction of njs support. For each option that supports native variable and JS template literals introduced next, it's unified as template string. No functional changes.
Diffstat (limited to 'src/nxt_http_static.c')
-rw-r--r--src/nxt_http_static.c52
1 files changed, 28 insertions, 24 deletions
diff --git a/src/nxt_http_static.c b/src/nxt_http_static.c
index 0507e038..7143ecd3 100644
--- a/src/nxt_http_static.c
+++ b/src/nxt_http_static.c
@@ -8,7 +8,7 @@
typedef struct {
- nxt_var_t *var;
+ nxt_tstr_t *tstr;
#if (NXT_HAVE_OPENAT2)
u_char *fname;
#endif
@@ -21,7 +21,7 @@ typedef struct {
nxt_http_static_share_t *shares;
nxt_str_t index;
#if (NXT_HAVE_OPENAT2)
- nxt_var_t *chroot;
+ nxt_tstr_t *chroot;
nxt_uint_t resolve;
#endif
nxt_http_route_rule_t *types;
@@ -48,7 +48,7 @@ static nxt_http_action_t *nxt_http_static(nxt_task_t *task,
static void nxt_http_static_iterate(nxt_task_t *task, nxt_http_request_t *r,
nxt_http_static_ctx_t *ctx);
static void nxt_http_static_send_ready(nxt_task_t *task, void *obj, void *data);
-static void nxt_http_static_var_error(nxt_task_t *task, void *obj, void *data);
+static void nxt_http_static_send_error(nxt_task_t *task, void *obj, void *data);
static void nxt_http_static_next(nxt_task_t *task, nxt_http_request_t *r,
nxt_http_static_ctx_t *ctx, nxt_http_status_t status);
#if (NXT_HAVE_OPENAT2)
@@ -77,7 +77,7 @@ nxt_http_static_init(nxt_task_t *task, nxt_router_temp_conf_t *tmcf,
uint32_t i;
nxt_mp_t *mp;
nxt_str_t str, *ret;
- nxt_var_t *var;
+ nxt_tstr_t *tstr;
nxt_conf_value_t *cv;
nxt_router_conf_t *rtcf;
nxt_http_static_conf_t *conf;
@@ -104,13 +104,13 @@ nxt_http_static_init(nxt_task_t *task, nxt_router_temp_conf_t *tmcf,
cv = nxt_conf_get_array_element_or_itself(acf->share, i);
nxt_conf_get_string(cv, &str);
- var = nxt_var_compile(&str, mp, rtcf->var_fields, NXT_VAR_STRZ);
- if (nxt_slow_path(var == NULL)) {
+ tstr = nxt_tstr_compile(rtcf->tstr_state, &str, NXT_TSTR_STRZ);
+ if (nxt_slow_path(tstr == NULL)) {
return NXT_ERROR;
}
- conf->shares[i].var = var;
- conf->shares[i].is_const = nxt_var_is_const(var);
+ conf->shares[i].tstr = tstr;
+ conf->shares[i].is_const = nxt_tstr_is_const(tstr);
}
if (acf->index == NULL) {
@@ -130,20 +130,20 @@ nxt_http_static_init(nxt_task_t *task, nxt_router_temp_conf_t *tmcf,
nxt_str_t chr, shr;
nxt_bool_t is_const;
- conf->chroot = nxt_var_compile(&acf->chroot, mp, rtcf->var_fields,
- NXT_VAR_STRZ);
+ conf->chroot = nxt_tstr_compile(rtcf->tstr_state, &acf->chroot,
+ NXT_TSTR_STRZ);
if (nxt_slow_path(conf->chroot == NULL)) {
return NXT_ERROR;
}
- is_const = nxt_var_is_const(conf->chroot);
+ is_const = nxt_tstr_is_const(conf->chroot);
for (i = 0; i < conf->nshares; i++) {
conf->shares[i].is_const &= is_const;
if (conf->shares[i].is_const) {
- nxt_var_raw(conf->chroot, &chr);
- nxt_var_raw(conf->shares[i].var, &shr);
+ nxt_tstr_str(conf->chroot, &chr);
+ nxt_tstr_str(conf->shares[i].tstr, &shr);
conf->shares[i].fname = nxt_http_static_chroot_match(chr.start,
shr.start);
@@ -229,6 +229,7 @@ nxt_http_static_iterate(nxt_task_t *task, nxt_http_request_t *r,
nxt_http_static_ctx_t *ctx)
{
nxt_int_t ret;
+ nxt_router_conf_t *rtcf;
nxt_http_static_conf_t *conf;
nxt_http_static_share_t *share;
@@ -240,14 +241,14 @@ nxt_http_static_iterate(nxt_task_t *task, nxt_http_request_t *r,
nxt_str_t shr;
nxt_str_t idx;
- nxt_var_raw(share->var, &shr);
+ nxt_tstr_str(share->tstr, &shr);
idx = conf->index;
#if (NXT_HAVE_OPENAT2)
nxt_str_t chr;
if (conf->chroot != NULL) {
- nxt_var_raw(conf->chroot, &chr);
+ nxt_tstr_str(conf->chroot, &chr);
} else {
nxt_str_set(&chr, "");
@@ -261,34 +262,37 @@ nxt_http_static_iterate(nxt_task_t *task, nxt_http_request_t *r,
#endif /* NXT_DEBUG */
if (share->is_const) {
- nxt_var_raw(share->var, &ctx->share);
+ nxt_tstr_str(share->tstr, &ctx->share);
#if (NXT_HAVE_OPENAT2)
if (conf->chroot != NULL && ctx->share_idx == 0) {
- nxt_var_raw(conf->chroot, &ctx->chroot);
+ nxt_tstr_str(conf->chroot, &ctx->chroot);
}
#endif
nxt_http_static_send_ready(task, r, ctx);
} else {
- ret = nxt_var_query_init(&r->var_query, r, r->mem_pool);
+ rtcf = r->conf->socket_conf->router_conf;
+
+ ret = nxt_tstr_query_init(&r->tstr_query, rtcf->tstr_state,
+ &r->var_cache, 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);
+ nxt_tstr_query(task, r->tstr_query, share->tstr, &ctx->share);
#if (NXT_HAVE_OPENAT2)
if (conf->chroot != NULL && ctx->share_idx == 0) {
- nxt_var_query(task, r->var_query, conf->chroot, &ctx->chroot);
+ nxt_tstr_query(task, r->tstr_query, conf->chroot, &ctx->chroot);
}
#endif
- nxt_var_query_resolve(task, r->var_query, ctx,
- nxt_http_static_send_ready,
- nxt_http_static_var_error);
+ nxt_tstr_query_resolve(task, r->tstr_query, ctx,
+ nxt_http_static_send_ready,
+ nxt_http_static_send_error);
}
}
@@ -658,7 +662,7 @@ fail:
static void
-nxt_http_static_var_error(nxt_task_t *task, void *obj, void *data)
+nxt_http_static_send_error(nxt_task_t *task, void *obj, void *data)
{
nxt_http_request_t *r;