haproxy/reg-tests/lua/set_var.lua
Tim Duesterhus 4e172c93f9 MEDIUM: lua: Add ifexist parameter to set_var
As discussed in GitHub issue #624 Lua scripts should not use
variables that are never going to be read, because the memory
for variable names is never going to be freed.

Add an optional `ifexist` parameter to the `set_var` function
that allows a Lua developer to set variables that are going to
be ignored if the variable name was not used elsewhere before.

Usually this mean that there is no `var()` sample fetch for the
variable in question within the configuration.
2020-05-25 08:12:35 +02:00

26 lines
693 B
Lua

core.register_service("set_var", "http", function(applet)
local var_name = applet.headers["var"][0]
local result = applet:set_var(var_name, "value")
if result then
applet:set_status(202)
else
applet:set_status(400)
end
applet:add_header("echo", applet:get_var(var_name) or "(nil)")
applet:start_response()
applet:send("")
end)
core.register_service("set_var_ifexist", "http", function(applet)
local var_name = applet.headers["var"][0]
local result = applet:set_var(var_name, "value", true)
if result then
applet:set_status(202)
else
applet:set_status(400)
end
applet:add_header("echo", applet:get_var(var_name) or "(nil)")
applet:start_response()
applet:send("")
end)