--- /dev/null
+varnishtest "Lua: set_var"
+#REQUIRE_OPTIONS=LUA
+
+feature ignore_unknown_macro
+
+haproxy h1 -conf {
+ global
+ lua-load ${testdir}/set_var.lua
+
+ frontend fe1
+ mode http
+ ${no-htx} option http-use-htx
+ bind "fd@${fe1}"
+
+ http-request use-service lua.set_var
+} -start
+
+client c0 -connect ${h1_fe1_sock} {
+ txreq -url "/" \
+ -hdr "Var: txn.foo"
+ rxresp
+ expect resp.status == 202
+ expect resp.http.echo == "value"
+ txreq -url "/" \
+ -hdr "Var: invalid.var"
+ rxresp
+ expect resp.status == 400
+ expect resp.http.echo == "(nil)"
+} -run
/* Store the sample in a variable. */
smp_set_owner(&smp, s->be, s->sess, s, 0);
- vars_set_by_name(name, len, &smp);
- return 0;
+ lua_pushboolean(L, vars_set_by_name(name, len, &smp) != 0);
+ return 1;
}
__LJMP static int hlua_applet_tcp_unset_var(lua_State *L)
/* Unset the variable. */
smp_set_owner(&smp, s->be, s->sess, s, 0);
- vars_unset_by_name_ifexist(name, len, &smp);
- return 0;
+ lua_pushboolean(L, vars_unset_by_name_ifexist(name, len, &smp) != 0);
+ return 1;
}
__LJMP static int hlua_applet_tcp_get_var(lua_State *L)
/* Store the sample in a variable. */
smp_set_owner(&smp, s->be, s->sess, s, 0);
- vars_set_by_name(name, len, &smp);
- return 0;
+ lua_pushboolean(L, vars_set_by_name(name, len, &smp) != 0);
+ return 1;
}
__LJMP static int hlua_applet_http_unset_var(lua_State *L)
/* Unset the variable. */
smp_set_owner(&smp, s->be, s->sess, s, 0);
- vars_unset_by_name_ifexist(name, len, &smp);
- return 0;
+ lua_pushboolean(L, vars_unset_by_name_ifexist(name, len, &smp) != 0);
+ return 1;
}
__LJMP static int hlua_applet_http_get_var(lua_State *L)
/* Store the sample in a variable. */
smp_set_owner(&smp, htxn->p, htxn->s->sess, htxn->s, htxn->dir & SMP_OPT_DIR);
- vars_set_by_name(name, len, &smp);
- return 0;
+ lua_pushboolean(L, vars_set_by_name(name, len, &smp) != 0);
+ return 1;
}
__LJMP static int hlua_unset_var(lua_State *L)
/* Unset the variable. */
smp_set_owner(&smp, htxn->p, htxn->s->sess, htxn->s, htxn->dir & SMP_OPT_DIR);
- vars_unset_by_name_ifexist(name, len, &smp);
- return 0;
+ lua_pushboolean(L, vars_unset_by_name_ifexist(name, len, &smp) != 0);
+ return 1;
}
__LJMP static int hlua_get_var(lua_State *L)