summaryrefslogtreecommitdiffhomepage
path: root/src/nxt_var.c
diff options
context:
space:
mode:
authorZhidao HONG <z.hong@f5.com>2021-09-07 21:13:44 +0800
committerZhidao HONG <z.hong@f5.com>2021-09-07 21:13:44 +0800
commita336928e1027af92d0c9bb2ccb369a3f9b53abae (patch)
tree24062e6f2e2fafbc665851797f5ec9b64c68b150 /src/nxt_var.c
parent9c1894bf7791d44c6ebd9a5637ccde10bc5da29c (diff)
downloadunit-a336928e1027af92d0c9bb2ccb369a3f9b53abae.tar.gz
unit-a336928e1027af92d0c9bb2ccb369a3f9b53abae.tar.bz2
Router: refactored variable pass.
Since the "pass" option supports both strings and variables, a generic nxt_var_t structure can be used in the configuration phase, and the "name" field in actions is redundant. No functional changes.
Diffstat (limited to 'src/nxt_var.c')
-rw-r--r--src/nxt_var.c20
1 files changed, 17 insertions, 3 deletions
diff --git a/src/nxt_var.c b/src/nxt_var.c
index c9ab5b8a..d26d4f15 100644
--- a/src/nxt_var.c
+++ b/src/nxt_var.c
@@ -90,6 +90,21 @@ static uint32_t nxt_var_count;
static nxt_var_handler_t *nxt_var_index;
+void
+nxt_var_raw(nxt_var_t *var, nxt_str_t *str)
+{
+ str->length = var->length;
+ str->start = nxt_var_raw_start(var);
+}
+
+
+nxt_bool_t
+nxt_var_is_const(nxt_var_t *var)
+{
+ return (var->vars == 0);
+}
+
+
static nxt_int_t
nxt_var_hash_test(nxt_lvlhsh_query_t *lhq, void *data)
{
@@ -439,9 +454,8 @@ nxt_var_query(nxt_task_t *task, nxt_var_query_t *query, nxt_var_t *var,
nxt_var_sub_t *subs;
nxt_var_value_t *val;
- if (var->vars == 0) {
- str->length = var->length;
- str->start = nxt_var_raw_start(var);
+ if (nxt_var_is_const(var)) {
+ nxt_var_raw(var, str);
return;
}